# HG changeset patch # User kent # Date 1265556958 -32400 # Node ID dfb89e32eea19a5de38168eb9dc9f2499ff872a9 # Parent 30c102343b37cb3e8b8b2e66c0be9bfe2fa6b653 added gcc.tex, conclusion.tex and some sources. writed abstraction. diff -r 30c102343b37 -r dfb89e32eea1 abstract.tex --- a/abstract.tex Sat Feb 06 18:28:43 2010 +0900 +++ b/abstract.tex Mon Feb 08 00:35:58 2010 +0900 @@ -3,32 +3,54 @@ %%TODO -システムの大規模化、複雑化という傾向は現代のソフトウェア開発プロジェク -トにおける特徴の一つである。 -この傾向は社会システムが成長する中で必然的なものとはいえるが、そのため -にシステムの設計や実装において誤りが発生する可能性も応じて高くなり、ソ -フトウェア開発における問題点の一つとして挙げられる。 - -また、多くのシステム構築にはソフトウェアとハードウェアの両方が不可欠で -ある。その受け渡しを行う組み込み開発の需要も増加傾向にある。 -ハードウェア記述にはVHDLや..などが使われるが、それらの言語は現代のソフ -トウェア開発でのオブジェクト指向やスタックとは違い、状態遷移を基本とし -ており、方向性がまったく違う。 -これらを統合し。。。でより効率的なシステム開発が可能になると考えられる -。 - -当研究室では、コードセグメントと継続を使う言語 Continuation based C を -提案している。 -この言語は上記の問題を解決するため、1) ハードウェアとスタック言語の中間 -2) 状態遷移を言語として直接記述できる 3) アセンブラに変わるコンパイル -ターゲットとして最適 4) 検証をプログラムに組み込める -という特徴を持っている。 -これにより -Continuation based Cは過去の研究においてGCCやmicro-cへの実装がなされて +本研究室では継続を基本としたプログラミング言語Continuation based +C(CbC)を開発している。この言語はCから関数やforループ制御などを除き、同 +様の動作は全て継続を用いて実現する事で、Cよりも細かい動作を可能にして いる。 -本研究では実装における問題点の洗い出しとその解決、 -またContinuation based Cを使った例としてTaskManagerの実装を紹介する。 + + +これまでCbCのコンパイラにはmicro-cをベースとしたコンパイラを用いてきた +。また、2008年の研究ではGCCでのCbCコンパイルも可能となった。しかし、 +GCCは当初の期待ほどの性能は出ず、未実装の機能もあり、また実装方法の問 +題からバグの存在も明らかになった。 + +そこで本研究ではその問題点の洗い出しと、未実装であった機能の実装を含む +その問題点の改善を行った。 + +この改善により、GCCコンパイラはCbCの機能を完全にサポートし、さらに以前 +のバージョンよりも高速化に成功した。またこれまでmicro-cでは対応してい +なかった多数のアーキテクチャへの対応が可能となった。実測評価においては +micro-cベースのコンパイラと比較し、良好な結果を得られた。 + + +%%%%% +%システムの大規模化、複雑化という傾向は現代のソフトウェア開発プロジェク +%トにおける特徴の一つである。 +%この傾向は社会システムが成長する中で必然的なものとはいえるが、そのため +%にシステムの設計や実装において誤りが発生する可能性も応じて高くなり、ソ +%フトウェア開発における問題点の一つとして挙げられる。 + +%また、多くのシステム構築にはソフトウェアとハードウェアの両方が不可欠で +%ある。その受け渡しを行う組み込み開発の需要も増加傾向にある。 +%ハードウェア記述にはVHDLや..などが使われるが、それらの言語は現代のソフ +%トウェア開発でのオブジェクト指向やスタックとは違い、状態遷移を基本とし +%ており、方向性がまったく違う。 +%これらを統合し。。。でより効率的なシステム開発が可能になると考えられる +%。 + +%当研究室では、コードセグメントと継続を使う言語 Continuation based C を +%提案している。 +%この言語は上記の問題を解決するため、1) ハードウェアとスタック言語の中間 +%2) 状態遷移を言語として直接記述できる 3) アセンブラに変わるコンパイル +%ターゲットとして最適 4) 検証をプログラムに組み込める +%という特徴を持っている。 +%これにより +%%Continuation based Cは過去の研究においてGCCやmicro-cへの実装がなされて +%いる。 + +%本研究では実装における問題点の洗い出しとその解決、 +%またContinuation based Cを使った例としてTaskManagerの実装を紹介する。 \end{abstract} diff -r 30c102343b37 -r dfb89e32eea1 cbc.tex --- a/cbc.tex Sat Feb 06 18:28:43 2010 +0900 +++ b/cbc.tex Mon Feb 08 00:35:58 2010 +0900 @@ -259,13 +259,13 @@ おり、CからCbCへの機械的な変換方法について述べている。 -\subsection{ハードウェア記述、ソフトウェアプログラミング} +%\subsection{CbCによる分散プログラミング} +%現在の分散プログラミングには様々な手法がある。ネットワークAPIを直接使 +%う方法、SOAPやMPIなどのライブラリ、Telescripに見られる言語仕様への埋め +%込みなどがあった。これらは通信に関する複雑なセマンティクスを実現する手 +%段といえる。 % TODO -\subsection{軽量継続を用いたプログラミング} -以上の研究はそれぞれ軽量継続というCbC言語の特徴を利用して進められている。 - - \section{CbCコンパイラの現状と問題点} \label{sec:cbc-problem} diff -r 30c102343b37 -r dfb89e32eea1 conclusion.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conclusion.tex Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,58 @@ +\chapter{結論} +\label{chp:conc} + +\section{まとめ} + +本研究ではContinuation based C(CbC)のGCCベースコンパイラの改善を行った。 + +CbCは軽量継続をベースとした言語で、 プログラムの分割による開発効率の向 +上や、状態遷移という特徴を元にタブロー法を用いたプログラム検証などを目 +的として設計されている。 CbC言語のコンパイラにはmicro-cとGCCの二つが用 +いられていたが、GCCにはいくつもの問題があった。 + +そこで、本研究では\ref{chp:cbc}章においてこのCbCの紹介とともに、問題点 +の洗い出しをおこなった。洗い出した問題点の中には、実用的なプログラムは +動作不能ともなりえるものも存在した。 + +\ref{chp:impl}章ではこれらの問題に対処するため、GCCベースコンパイラの +改善を行った。ここでは最初にGCCに移植した際の実装方法を再確認し、その +上で問題点の解決方法の提案、実装を行った。 + +\ref{chp:eval}章では、\ref{chp:impl}章における改善点の評価とともに、実 +用的なプログラムが動作可能になったことで、以前のコンパイラとGCCベース +のコンパイラで性能の比較を行った。 + +本研究の成果としては、 +\begin{inparaenum}[\bfseries a)] + \item 引数の順番でエラーが出ていた問題を改善し、実用的なCbCプログラ + ミングが可能になった。 + \item 上の理由により、CbCプログラムをこれまで対応していなかった様々 + なアーキテクチャで実行可能になった。 + \item fastcall最適化によりx86アーキテクチャでの動作速度が改善された。 + \item 以前のコンパイラとの比較ではx86ではあまり差が出なかったものの + 、 PowerPCでは大きな向上が見られた。 + \item リポジトリ管理方法の改善により、メンテナンス性が向上した。 +\end{inparaenum} +などが挙げられる。 + + +\section{今後の課題} +作業中 + +% TODO: + +実用的なCbCプログラムが実行可能になった事で、CbCを用いた研究もこれまで +にない応用が可能になる。 +特に、本研究室の提案するCeriumはこれまではC++を用いて実装されていたが +、現在はCbCへの移植作業が進行中である。 + +% オブジェクティブCbC +% C2CbC + + + +今後はCbCを用いた検証手法の確立、またプログラム分割のためのCからCbCへ +の変換プログラムの実装などが必要になる。 + + + diff -r 30c102343b37 -r dfb89e32eea1 evaluations.tex --- a/evaluations.tex Sat Feb 06 18:28:43 2010 +0900 +++ b/evaluations.tex Mon Feb 08 00:35:58 2010 +0900 @@ -2,16 +2,12 @@ \label{chp:eval} 本章では本研究の評価を行う。 -まず、gccでのCbCコンパイルにおける利点と欠点を考察する。 -次にgccベースのCbCコンパイラの性能評価を行う。 -最後に、\ref{chp:task}章のTaskManagerの開発を元に、CbC言語そのものの記述性、プログラミング手法などについて考察する。 - -\section{gccを使うことの利点・欠点} +\section{GCCを使うことの利点・欠点} \label{sec:merit} -これまでCbCのコンパイルに使用してきたmc(micro-c)に対し、新しくgccが -CwCのフルセットとして使用可能となった。ここでgccを用いることの利点と欠 +これまでCbCのコンパイルに使用してきたmc(micro-c)に対し、新しくGCCが +CwCのフルセットとして使用可能となった。ここでGCCを用いることの利点と欠 点について考察する。 \subsection*{アーキテクチャ} @@ -19,17 +15,17 @@ mcにおいてはPPC,x86,MIPS,ARM,SPUなど、多数のCPUアーキテクチャをサポー トしてきた。しかしあるCPUに新しく対応するには多大な時間、労力が必要と なる。 -gccは現在、既に20を越えるCPUに対応しており、またOS毎のABIの差異も吸収 -可能である。これはgccをコンパイラとすることに最大の利点である。 +GCCは現在、既に20を越えるCPUに対応しており、またOS毎のABIの差異も吸収 +可能である。これはGCCをコンパイラとすることに最大の利点である。 -またそれだけでなく、gccは新しいアーキテクチャへの対応も早い。この特徴 -は、gccがフロントエンドとバックエンドという形で言語実装とアーキテクチ +またそれだけでなく、GCCは新しいアーキテクチャへの対応も早い。この特徴 +は、GCCがフロントエンドとバックエンドという形で言語実装とアーキテクチ ャを分離していることからくる。一般的に新しいCPUアーキテクチャが開発さ -れた場合にはその開発者自身がgccにコミットすることが多いため、組み込み +れた場合にはその開発者自身がGCCにコミットすることが多いため、組み込み 用途を目的の一つとするCbCではよりその強みがます。 \subsection*{最適化の恩恵} -gccは豊富な最適化機構を備えている。 +GCCは豊富な最適化機構を備えている。 代表的な最適化だけでもループ最適化、分岐スレッディング(jump threading) 、共通式除去(common subexpression elimination)、命令スケジューリング (instruction scheduling)などがある。 @@ -38,13 +34,13 @@ あるため、共通式除去は非常に効果が高い。同様の効果は同じ式を保持する変 数を用意することでも実現できるがソースコードの修正が必要になる。 mcにはこの最適化は含まれていないため、複雑な計算式を含むプログラムにお -いてはgccの方が良いコンパイル結果を示すものと考えられる。 +いてはGCCの方が良いコンパイル結果を示すものと考えられる。 %\ref{sec:}の性能評価では最適化の効果についても測定する。 \subsection*{デバッガ} これまでCbCにはデバッガが存在しなかった。デバッガの実装には出力するア -センブラに行番号や変数名、関数名などの情報を付加する必要があるが、gcc +センブラに行番号や変数名、関数名などの情報を付加する必要があるが、GCC は標準でこれを行っている。そのためCのデバッガとして広く一般的に使われ ている gdbをそのままCbCのデバッガとして使用することが可能であり、ソフ トウェア開発の大きな助力となる。 @@ -54,7 +50,7 @@ % \subsection*{関数呼出しの名残り} -上記の利点に対し、gccであるゆえの欠点も存在する。 +上記の利点に対し、GCCであるゆえの欠点も存在する。 本研究による軽量継続制御の実装には\ref{chp:impl}章で説明したように関数 の末尾最適化を利用した。それゆえコードセグメントのアセンブラ出力の命令 @@ -62,14 +58,9 @@ 特にレジスタの少ないアーキテクチャ、x86などではそれが顕著に現れる。 mcではコードセグメントと関数は完全に別物として取り扱っており、この様な -スタック操作はコードセグメントには現れないため、このオーバヘッドがgcc +スタック操作はコードセグメントには現れないため、このオーバヘッドがGCC では不利な点である。 -% TODO: 取り除くには… - - % スタック処理が残ってしまう - % 同じくcpuに特化したコンパイルに比べると - \subsection*{互換性、ABI} %これは最後の考察に入れよう @@ -141,7 +132,7 @@ 各評価マシンの詳細は付録\ref{sec:machine-specs}に掲載する。 -%gccのコンパイルでは``-O2 -fomit-pointer''の最適化を付加して測定している。 +%GCCのコンパイルでは``-O2 -fomit-pointer''の最適化を付加して測定している。 % noreturnもON. % x86ではfastcallもON, @@ -153,7 +144,7 @@ \centering \begin{tabular}{|c|c|c|c|c|} \hline \multirow{2}{*}{ \backslashbox{CPU/OS}{コンパイラ} } - & \multicolumn{3}{c|}{gcc} & \multirow{2}{*}{mc} \\ \cline{2-4} + & \multicolumn{3}{c|}{GCC} & \multirow{2}{*}{mc} \\ \cline{2-4} &最適化なし&速度最適化&サイズ最適化& \\ \hline x86/OS X & 5.901 & 2.434 & 2.785 & 2.857 \\ \hline x86/Linux & 5.732 & 2.401 & 2.876 & 2.254 \\ \hline @@ -161,7 +152,7 @@ ppc/Linux &19.793 & 3.955 & 4.013 & 6.454 \\ \hline ppc/PS3 &39.176 & 5.874 & 6.111 &11.121 \\ \hline \end{tabular} - \caption{アーキテクチャ毎のgccとmcの速度比較(単位: 秒)} + \caption{アーキテクチャ毎のGCCとmcの速度比較(単位: 秒)} \label{tab:speed-mc-vs-gcc} \end{table} @@ -218,13 +209,6 @@ \end{table} -% ppcのが圧倒的に早い -% x86ではあまりさはでない -% 最適化が効いている -% TODO: ファイルサイズの比較 -% SPUに送るのに有利 -% コンパイルにかかる時間? - \subsection{評価結果考察} % stripするとx86はサイズに変化がない \subsubsection{速度面} @@ -290,7 +274,7 @@ {sources/divider-e.cbc} \begin{minipage}[t]{.45\textwidth} \lstinputlisting[ - caption=divider\_eのgccによる出力(ppc), + caption=divider\_eのGCCによる出力(ppc), label=code:divider-e-gcc] {sources/divider-e-gcc.asm} \end{minipage} @@ -303,7 +287,7 @@ \end{minipage} もっとも比較しやすい箇所は\verb|e-1|の処理である。 -コード\ref{code:divider-e-gcc}のgccではこれを1命令の\verb|addi 5,5,-1| +コード\ref{code:divider-e-gcc}のGCCではこれを1命令の\verb|addi 5,5,-1| で行っている。 mcではこれが\verb|mr, addi, mr|という3命令になっている 。これは変数\verb|s|の値を一度別のレジスタに移して計算するという処理で ある。この様な細かい命令の展開が速度に差が出る要因である。 @@ -383,36 +367,96 @@ -\section{CbCでのプログラミング} - +%\section{CbCでのプログラミング} % TODO: -\section{バージョン管理} +\section{メンテナンス性の向上に関する取り組み}\label{sec:mentainance} + +本研究室ではこれまでCbCコンパイラとしてmicro-cを利用していた。このコン +パイラはベースとなるmicro-cには依存せずに、ほぼ独立な開発を続けている。 + +これに対しGCCは現在も精力的に開発が続けられており、年数回のアップデー +トではバグの除去や最適化の改善などが行われている。 +そのためCbCコンパイラでもそのリリースに沿ってアップデートすることが望 +ましく、実際に今回の改善の際にも2010年1月現在での最新リリースである +4.4.2をベースとしている。 + +しかしアップデートの度に新しいソースコードを書き換えるのは無理があり、 +現実的ではない。最良の方法はGCCの正式な機能として開発リポジトリにマー +ジしてもらうことだが、現段階ではそこには至っていない。 + +そのため現在はMercurialを使ったソースコード管理を行っている。ここでは +その手法を説明する。 + +\subsection{二つのリポジトリ} +Mercurialは分散型のバージョン管理システムである。 +開発環境毎に複数のリポジトリを分散して持つすることができ、そのためそれ +ぞれのリポジトリのマージの機能に優れる。 + +CbCコンパイラの管理ではこの特徴を利用する。 +具体的にはCbC開発用に二つのリポジトリを持つ。一つは本家のGCCリリースと +まったく同一のソースをもったGCC-copyと言うリポジトリである。もう一つは +この GCC-copyからブランチする形で作成したCbConGCCというリポジトリであ +る。 +こちらがCbCに関するメインの開発環境となる。図\ref{fig:gcc-repository} +では中央と右のラインがそのリポジトリを表している。 + +\begin{figure}[htpb] + \begin{center} + \includegraphics[width=.4\textwidth]{figures/gcc-repository.eps} + \end{center} + \caption{CbCコンパイラ開発でのリポジトリ管理(左が本家のリリースタイ + ムライン、中央がGCC-copy、右がCbCの開発用リポジトリのタイムライン)} + \label{fig:gcc-repository} +\end{figure} -% TODO: version management +新しいバージョンがリリースされた際のCbConGCCでのアップデートは次の手順 +で実現できる。 +\begin{itemize} + \item GCC-copyリポジトリにて + \begin{enumerate} + \item GCC-copyリポジトリ中のファイル全てを消す(バージョン管理情 + 報以外) + \item gcc-core-4.4.3.tar.gzを展開し、全ファイルをGCC-copyに追加 + \item \verb|hg status|で追加ファイル、削除ファイルを確認 + \item コミット + \item gcc-4.4.3タグの追加 + \end{enumerate} + \item CbConGCCリポジトリにて + \begin{enumerate} + \item GCC-copyから\verb|pull|. + \item \verb|hg merge|でマージ実行 + \item 衝突のあったファイルを修正 + \item 実際にビルドしてテストファイルが動くことを確認 + \item コミット + \item cbc-4.4.3タグの追加 + \end{enumerate} +\end{itemize} + +以上でアップデートが完了する。 + +\subsection{このリポジトリ管理方法の評価} + +実際にこのリポジトリ管理方法を用いてアップデートを行った。この作業では +バージョン 4.4.0から4.4.2へのアップデートと、4.4.2から4.4.3へのアップ +デートである。 + +アップデートの際に何らかの問題が生じるのはCbConGCCリポジトリでの衝突フ +ァイルの修正だけである。4.4.3へのアップデートでは特になにも衝突するこ +とはなかったが、4.4.2ではある関数の引数が変わっており、その修正に手作 +業を要した。しかし複雑な作業はこの衝突ファイルの修正だけに抑えられる。 + +この手法を用いず、これまでの様に一つのリポジトリのみで行っていた場合に +は、本家GCCの新旧の差分をとるか、もしくは本家の旧GCCとCbCでの差分をと +り、新しく適用する必要がある。この差分の取得はdiffを使って手動で行う必 +要があるが手順は非常に複雑になり、どこに問題が生じたかも判別しにくくな +る。 + +新しいリポジトリ管理方法ではdiffを用いた複雑な作業は必要なく、作業は衝 +突したファイルのみに抑えられる。これによりソースコードアップデートに関 +するメンテナンス性の向上が実現できた。 -\section{本研究における成果} -本研究では、これまでバグが多くプログラムの動作に問題のあった GCCベース -のCbCコンパイラを、実用的なプログラムが動くレベルまで改善することがで -きた。 - -2008年の研究にて、GCCベースのCbCコンパイラは一部実装されていた。 -そして本研究により、そのコンパイラの改善が行われた。 - -\begin{itemize} - \item CwCの全機能に対応 - \item 一部バグのあったアーキテクチャに対応 - \item バージョン管理の - \item 宣言の簡略化 - \item -\end{itemize} - - - - - - diff -r 30c102343b37 -r dfb89e32eea1 everysel.sty diff -r 30c102343b37 -r dfb89e32eea1 figures/call-return.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figures/call-return.tex Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,171 @@ +% Graphic for TeX using PGF +% Title: /home/kent/WorkSpace/master-paper/figures/call-return.dia +% Creator: Dia v0.97 +% CreationDate: Tue Jan 26 13:43:36 2010 +% For: kent +% \usepackage{tikz} +% The following commands are not supported in PSTricks at present +% We define them conditionally, so when they are implemented, +% this pgf file will use them. +\ifx\du\undefined + \newlength{\du} +\fi +\setlength{\du}{15\unitlength} +\begin{tikzpicture} +\pgftransformxscale{1.000000} +\pgftransformyscale{-1.000000} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (3.000000\du,2.000000\du)--(3.000000\du,7.000000\du)--(4.000000\du,7.000000\du)--(4.000000\du,2.000000\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (3.000000\du,2.000000\du)--(3.000000\du,7.000000\du)--(4.000000\du,7.000000\du)--(4.000000\du,2.000000\du)--cycle; +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (3.000000\du,8.000000\du)--(3.000000\du,13.000000\du)--(4.000000\du,13.000000\du)--(4.000000\du,8.000000\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (3.000000\du,8.000000\du)--(3.000000\du,13.000000\du)--(4.000000\du,13.000000\du)--(4.000000\du,8.000000\du)--cycle; +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (7.000000\du,3.000000\du)--(7.000000\du,8.000000\du)--(8.000000\du,8.000000\du)--(8.000000\du,3.000000\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (7.000000\du,3.000000\du)--(7.000000\du,8.000000\du)--(8.000000\du,8.000000\du)--(8.000000\du,3.000000\du)--cycle; +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (7.000000\du,9.000000\du)--(7.000000\du,13.000000\du)--(8.000000\du,13.000000\du)--(8.000000\du,9.000000\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (7.000000\du,9.000000\du)--(7.000000\du,13.000000\du)--(8.000000\du,13.000000\du)--(8.000000\du,9.000000\du)--cycle; +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\definecolor{dialinecolor}{rgb}{1.000000, 1.000000, 1.000000} +\pgfsetfillcolor{dialinecolor} +\fill (11.000000\du,6.000000\du)--(11.000000\du,11.000000\du)--(12.000000\du,11.000000\du)--(12.000000\du,6.000000\du)--cycle; +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\draw (11.000000\du,6.000000\du)--(11.000000\du,11.000000\du)--(12.000000\du,11.000000\du)--(12.000000\du,6.000000\du)--cycle; +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\pgfpathmoveto{\pgfpoint{4.000000\du}{7.000000\du}} +\pgfpathcurveto{\pgfpoint{4.996000\du}{7.000000\du}}{\pgfpoint{5.000000\du}{1.000000\du}}{\pgfpoint{7.000000\du}{3.000000\du}} +\pgfusepath{stroke} +} +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\pgfpathmoveto{\pgfpoint{7.000000\du}{13.000000\du}} +\pgfpathcurveto{\pgfpoint{6.004000\du}{13.000000\du}}{\pgfpoint{6.000000\du}{8.000000\du}}{\pgfpoint{4.000000\du}{8.000000\du}} +\pgfusepath{stroke} +} +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\pgfpathmoveto{\pgfpoint{8.000000\du}{8.000000\du}} +\pgfpathcurveto{\pgfpoint{8.996000\du}{8.000000\du}}{\pgfpoint{9.000000\du}{4.000000\du}}{\pgfpoint{11.000000\du}{6.000000\du}} +\pgfusepath{stroke} +} +\pgfsetlinewidth{0.050000\du} +\pgfsetdash{}{0pt} +\pgfsetdash{}{0pt} +\pgfsetmiterjoin +\pgfsetbuttcap +{ +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetfillcolor{dialinecolor} +% was here!!! +\pgfsetarrowsend{stealth} +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\pgfpathmoveto{\pgfpoint{11.000000\du}{11.000000\du}} +\pgfpathcurveto{\pgfpoint{10.004000\du}{11.000000\du}}{\pgfpoint{10.000000\du}{9.000000\du}}{\pgfpoint{8.000000\du}{9.000000\du}} +\pgfusepath{stroke} +} +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (2.700000\du,1.450000\du){FuncA}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (6.750000\du,1.400000\du){FuncB}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (10.550000\du,1.450000\du){FuncC}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (3.150000\du,4.700000\du){A0}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (3.100000\du,10.700000\du){A1}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (7.150000\du,5.700000\du){B0}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (7.150000\du,6.500000\du){}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (7.150000\du,11.100000\du){B1}; +% setfont left to latex +\definecolor{dialinecolor}{rgb}{0.000000, 0.000000, 0.000000} +\pgfsetstrokecolor{dialinecolor} +\node[anchor=west] at (11.100000\du,8.700000\du){C0}; +\end{tikzpicture} diff -r 30c102343b37 -r dfb89e32eea1 figures/gcc-flow.dia Binary file figures/gcc-flow.dia has changed diff -r 30c102343b37 -r dfb89e32eea1 figures/gcc-flow.eps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figures/gcc-flow.eps Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,2037 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/kent/WorkSpace/Mercurial/master-paper/figures/gcc-flow.dia +%%Creator: Dia v0.97 +%%CreationDate: Sat Feb 6 04:15:45 2010 +%%For: kent +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 726 366 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E +/F /G /H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c +/d /e /f /g /h /i /j /k /l /m +/n /o /p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-3.450000 -17.350000 translate +%%EndProlog + + +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 8.000000 4.500000 m 8.000000 11.100000 l 20.760000 11.100000 l 20.760000 4.500000 l f +n 8.000000 5.500000 m 8.000000 5.500000 1.000000 1.000000 180.000000 270.000000 ellipse f +n 20.760000 5.500000 m 20.760000 5.500000 1.000000 1.000000 270.000000 360.000000 ellipse f +n 7.000000 5.500000 m 7.000000 10.100000 l 21.760000 10.100000 l 21.760000 5.500000 l f +n 8.000000 10.100000 m 8.000000 10.100000 1.000000 1.000000 90.000000 180.000000 ellipse f +n 20.760000 10.100000 m 20.760000 10.100000 1.000000 1.000000 0.000000 90.000000 ellipse f +0.000000 0.000000 0.000000 srgb +n 8.000000 4.500000 m 20.760000 4.500000 l s +n 8.000000 11.100000 m 20.760000 11.100000 l s +n 8.000000 5.500000 1.000000 1.000000 180.000000 270.000000 ellipse s +n 20.760000 5.500000 1.000000 1.000000 270.000000 360.000000 ellipse s +n 7.000000 5.500000 m 7.000000 10.100000 l s +n 21.760000 5.500000 m 21.760000 10.100000 l s +n 8.000000 10.100000 1.000000 1.000000 90.000000 180.000000 ellipse s +n 20.760000 10.100000 1.000000 1.000000 0.000000 90.000000 ellipse s +gsave 7.500000 5.603571 translate 0.035278 -0.035278 scale +start_ol +632 3410 moveto +4246 3410 lineto +4246 3235 lineto +4246 1698 3485 873 conicto +2724 49 1138 -122 conicto +1085 219 lineto +2486 384 3149 1062 conicto +3813 1741 3857 3055 conicto +632 3055 lineto +632 3410 lineto +end_ol grestore +gsave 8.139399 5.603571 translate 0.035278 -0.035278 scale +start_ol +987 370 moveto +3877 370 lineto +3877 3113 lineto +987 3113 lineto +987 370 lineto +987 24 moveto +598 24 lineto +598 3458 lineto +4266 3458 lineto +4266 24 lineto +987 24 lineto +end_ol grestore +gsave 8.778797 5.603571 translate 0.035278 -0.035278 scale +start_ol +890 3536 moveto +1634 3166 2378 2709 conicto +2189 2378 lineto +1479 2816 715 3205 conicto +890 3536 lineto +832 306 moveto +2252 438 3066 1128 conicto +3881 1819 4120 3094 conicto +4475 3016 lineto +3984 214 880 -58 conicto +832 306 lineto +end_ol grestore +gsave 9.418196 5.603571 translate 0.035278 -0.035278 scale +start_ol +1620 3721 moveto +1620 2301 lineto +2962 1980 4339 1464 conicto +4222 1109 lineto +2899 1615 1620 1921 conicto +1620 -238 lineto +1231 -238 lineto +1231 3721 lineto +1620 3721 lineto +end_ol grestore +gsave 10.057595 5.603571 translate 0.035278 -0.035278 scale +start_ol +696 3380 moveto +4168 3380 lineto +4168 3040 lineto +2627 3040 lineto +2627 443 lineto +4314 443 lineto +4314 102 lineto +550 102 lineto +550 443 lineto +2237 443 lineto +2237 3040 lineto +696 3040 lineto +696 3380 lineto +end_ol grestore +gsave 10.696993 5.603571 translate 0.035278 -0.035278 scale +start_ol +890 3536 moveto +1634 3166 2378 2709 conicto +2189 2378 lineto +1479 2816 715 3205 conicto +890 3536 lineto +832 306 moveto +2252 438 3066 1128 conicto +3881 1819 4120 3094 conicto +4475 3016 lineto +3984 214 880 -58 conicto +832 306 lineto +end_ol grestore +gsave 11.336392 5.603571 translate 0.035278 -0.035278 scale +start_ol +2811 3366 moveto +3098 3536 lineto +3419 3069 3614 2748 conicto +3327 2597 lineto +3074 3006 2811 3366 conicto +4008 2738 moveto +3755 3152 3478 3531 conicto +3770 3702 lineto +4071 3269 4300 2894 conicto +4008 2738 lineto +1571 3721 moveto +1571 2271 lineto +2933 1946 4290 1430 conicto +4173 1080 lineto +2831 1586 1571 1887 conicto +1571 -238 lineto +1182 -238 lineto +1182 3721 lineto +1571 3721 lineto +end_ol grestore +gsave 11.975791 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.295490 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.615190 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.934889 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 13.254588 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 13.574288 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 13.893987 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.213686 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.533386 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.853085 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 15.172784 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 15.492484 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 15.812183 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 16.131882 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 16.451582 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 16.771281 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 17.090980 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 17.410680 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 17.730379 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 18.050079 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 18.369778 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 18.689477 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 19.009177 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 19.328876 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 19.648575 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 19.968275 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 20.287974 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 20.607673 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 20.927373 5.603571 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 10.900000 6.000000 m 10.900000 7.800000 l 13.100000 7.800000 l 13.100000 6.000000 l f +n 10.900000 6.900000 m 10.900000 6.900000 0.900000 0.900000 180.000000 270.000000 ellipse f +n 13.100000 6.900000 m 13.100000 6.900000 0.900000 0.900000 270.000000 360.000000 ellipse f +n 10.000000 6.900000 m 10.000000 6.900000 l 14.000000 6.900000 l 14.000000 6.900000 l f +n 10.900000 6.900000 m 10.900000 6.900000 0.900000 0.900000 90.000000 180.000000 ellipse f +n 13.100000 6.900000 m 13.100000 6.900000 0.900000 0.900000 0.000000 90.000000 ellipse f +0.000000 0.000000 0.000000 srgb +n 10.900000 6.000000 m 13.100000 6.000000 l s +n 10.900000 7.800000 m 13.100000 7.800000 l s +n 10.900000 6.900000 0.900000 0.900000 180.000000 270.000000 ellipse s +n 13.100000 6.900000 0.900000 0.900000 270.000000 360.000000 ellipse s +n 10.000000 6.900000 m 10.000000 6.900000 l s +n 14.000000 6.900000 m 14.000000 6.900000 l s +n 10.900000 6.900000 0.900000 0.900000 90.000000 180.000000 ellipse s +n 13.100000 6.900000 0.900000 0.900000 0.000000 90.000000 ellipse s +gsave 10.720000 7.155000 translate 0.035278 -0.035278 scale +start_ol +3881 -73 moveto +4023 -73 4049 -36 conicto +4076 0 4076 180 conicto +4076 413 lineto +1960 413 lineto +1960 -423 lineto +1595 -423 lineto +1595 413 lineto +1255 413 lineto +1255 710 lineto +1595 710 lineto +1595 1994 lineto +2836 1994 lineto +2836 2247 lineto +1372 2247 lineto +1372 2539 lineto +2203 2539 lineto +2203 2836 lineto +1591 2836 lineto +1591 3098 lineto +2203 3098 lineto +2203 3395 lineto +1459 3395 lineto +1459 3682 lineto +2203 3682 lineto +2203 3954 lineto +2578 3954 lineto +2578 3682 lineto +3487 3682 lineto +3487 3954 lineto +3857 3954 lineto +3857 3682 lineto +4587 3682 lineto +4587 3395 lineto +3857 3395 lineto +3857 3098 lineto +4514 3098 lineto +4514 2836 lineto +3857 2836 lineto +3857 2539 lineto +4694 2539 lineto +4694 2247 lineto +3201 2247 lineto +3201 1994 lineto +4441 1994 lineto +4441 710 lineto +4752 710 lineto +4752 413 lineto +4441 413 lineto +4441 180 lineto +4441 -204 4373 -296 conicto +4305 -389 4023 -389 conicto +3911 -389 3385 -365 conicto +3376 -49 lineto +3804 -73 3881 -73 conicto +170 3098 moveto +715 3098 lineto +715 3925 lineto +1060 3925 lineto +1060 3098 lineto +1484 3098 lineto +1484 2772 lineto +1060 2772 lineto +1060 2685 lineto +1547 1479 lineto +1279 1289 lineto +1060 1892 lineto +1060 -423 lineto +715 -423 lineto +715 1746 lineto +545 1148 282 647 conicto +68 978 lineto +506 1834 686 2772 conicto +170 2772 lineto +170 3098 lineto +2578 3395 moveto +2578 3098 lineto +3487 3098 lineto +3487 3395 lineto +2578 3395 lineto +2578 2836 moveto +2578 2539 lineto +3487 2539 lineto +3487 2836 lineto +2578 2836 lineto +1960 1352 moveto +2836 1352 lineto +2836 1732 lineto +1960 1732 lineto +1960 1352 lineto +1960 1090 moveto +1960 710 lineto +2836 710 lineto +2836 1090 lineto +1960 1090 lineto +4076 710 moveto +4076 1090 lineto +3201 1090 lineto +3201 710 lineto +4076 710 lineto +4076 1352 moveto +4076 1732 lineto +3201 1732 lineto +3201 1352 lineto +4076 1352 lineto +end_ol grestore +gsave 11.359399 7.155000 translate 0.035278 -0.035278 scale +start_ol +1085 2665 moveto +1445 2768 lineto +1829 1683 2422 1119 conicto +3055 1736 3463 2977 conicto +306 2977 lineto +306 3317 lineto +2237 3317 lineto +2237 4037 lineto +2627 4037 lineto +2627 3317 lineto +4558 3317 lineto +4558 2977 lineto +3872 2977 lineto +3419 1576 2704 876 conicto +3356 384 4548 24 conicto +4441 -306 lineto +3137 83 2427 632 conicto +1732 88 423 -306 conicto +316 24 lineto +1513 384 2145 876 conicto +1493 1513 1085 2665 conicto +end_ol grestore +gsave 11.998797 7.155000 translate 0.035278 -0.035278 scale +start_ol +3828 890 moveto +4655 890 lineto +4655 569 lineto +3828 569 lineto +3828 -404 lineto +3453 -404 lineto +3453 569 lineto +2417 569 lineto +2417 890 lineto +3453 890 lineto +3453 1556 lineto +2938 1556 lineto +2836 1289 2656 983 conicto +2330 1138 lineto +2636 1644 2792 2223 conicto +3128 2135 lineto +3098 2004 3055 1873 conicto +3453 1873 lineto +3453 2228 lineto +3828 2228 lineto +3828 1873 lineto +4562 1873 lineto +4562 1556 lineto +3828 1556 lineto +3828 890 lineto +1936 229 moveto +1936 754 lineto +739 754 lineto +676 63 496 -409 conicto +180 -185 lineto +311 156 369 625 conicto +428 1094 428 2043 conicto +428 2432 lineto +185 2593 lineto +652 3230 861 4086 conicto +1221 4047 lineto +1206 3959 1143 3745 conicto +1931 3745 lineto +1931 3439 lineto +1848 3230 1722 2957 conicto +2271 2957 lineto +2271 243 lineto +2271 -175 2208 -275 conicto +2145 -375 1892 -375 conicto +1795 -375 1294 -350 conicto +1284 -34 lineto +1698 -58 1761 -58 conicto +1887 -58 1911 -19 conicto +1936 19 1936 229 conicto +3565 3463 moveto +3507 3021 3237 2675 conicto +2967 2330 2520 2126 conicto +2340 2413 lineto +3089 2768 3210 3463 conicto +2398 3463 lineto +2398 3784 lineto +4582 3784 lineto +4558 3132 4514 2847 conicto +4470 2563 4380 2461 conicto +4290 2359 4086 2359 conicto +3818 2359 3453 2383 conicto +3429 2700 lineto +3736 2675 3935 2675 conicto +4037 2675 4081 2721 conicto +4125 2768 4154 2931 conicto +4183 3094 4198 3463 conicto +3565 3463 lineto +778 2019 moveto +1192 2019 lineto +1192 2641 lineto +778 2641 lineto +778 2019 lineto +778 1717 moveto +769 1274 759 1060 conicto +1192 1060 lineto +1192 1717 lineto +778 1717 lineto +1508 2019 moveto +1936 2019 lineto +1936 2641 lineto +1508 2641 lineto +1508 2019 lineto +1508 1717 moveto +1508 1060 lineto +1936 1060 lineto +1936 1717 lineto +1508 1717 lineto +1338 2957 moveto +1488 3259 1561 3439 conicto +1036 3439 lineto +948 3210 822 2957 conicto +1338 2957 lineto +end_ol grestore +gsave 12.638196 7.155000 translate 0.035278 -0.035278 scale +start_ol +1994 3050 moveto +1994 2714 lineto +1289 2714 lineto +1980 1250 lineto +1702 1026 lineto +1255 2043 lineto +1255 -423 lineto +890 -423 lineto +890 1741 lineto +686 1065 345 506 conicto +126 841 lineto +657 1736 871 2714 conicto +243 2714 lineto +243 3050 lineto +890 3050 lineto +890 3925 lineto +1255 3925 lineto +1255 3050 lineto +1994 3050 lineto +2588 2101 moveto +2515 1221 2303 683 conicto +2092 146 1668 -302 conicto +1396 -54 lineto +1727 306 1907 710 conicto +2087 1114 2181 1795 conicto +2276 2476 2276 3560 conicto +3526 3643 4358 3901 conicto +4460 3565 lineto +3672 3332 2631 3249 conicto +2631 2855 2607 2442 conicto +4679 2442 lineto +4679 2101 lineto +4027 2101 lineto +4027 -379 lineto +3648 -379 lineto +3648 2101 lineto +2588 2101 lineto +end_ol grestore +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 16.000000 6.000000 m 16.000000 7.800000 l 19.482500 7.800000 l 19.482500 6.000000 l f +0.000000 0.000000 0.000000 srgb +n 16.000000 6.000000 m 16.000000 7.800000 l 19.482500 7.800000 l 19.482500 6.000000 l cp s +gsave 16.500000 7.095000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave 16.994531 7.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 17.389157 7.095000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 17.793771 7.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 18.188397 7.095000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 18.450649 7.095000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 18.627978 7.095000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +0.050000 slw +n 16.500000 7.247500 m 18.982500 7.247500 l s +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 13.900000 9.000000 m 13.900000 10.800000 l 16.100000 10.800000 l 16.100000 9.000000 l f +n 13.900000 9.900000 m 13.900000 9.900000 0.900000 0.900000 180.000000 270.000000 ellipse f +n 16.100000 9.900000 m 16.100000 9.900000 0.900000 0.900000 270.000000 360.000000 ellipse f +n 13.000000 9.900000 m 13.000000 9.900000 l 17.000000 9.900000 l 17.000000 9.900000 l f +n 13.900000 9.900000 m 13.900000 9.900000 0.900000 0.900000 90.000000 180.000000 ellipse f +n 16.100000 9.900000 m 16.100000 9.900000 0.900000 0.900000 0.000000 90.000000 ellipse f +0.000000 0.000000 0.000000 srgb +n 13.900000 9.000000 m 16.100000 9.000000 l s +n 13.900000 10.800000 m 16.100000 10.800000 l s +n 13.900000 9.900000 0.900000 0.900000 180.000000 270.000000 ellipse s +n 16.100000 9.900000 0.900000 0.900000 270.000000 360.000000 ellipse s +n 13.000000 9.900000 m 13.000000 9.900000 l s +n 17.000000 9.900000 m 17.000000 9.900000 l s +n 13.900000 9.900000 0.900000 0.900000 90.000000 180.000000 ellipse s +n 16.100000 9.900000 0.900000 0.900000 0.000000 90.000000 ellipse s +gsave 14.367500 10.095000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 14.774619 10.095000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 15.194224 10.095000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 20.000000 9.000000 m 20.000000 10.800000 l 23.275000 10.800000 l 23.275000 9.000000 l f +0.000000 0.000000 0.000000 srgb +n 20.000000 9.000000 m 20.000000 10.800000 l 23.275000 10.800000 l 23.275000 9.000000 l cp s +gsave 20.500000 10.095000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave 20.994531 10.095000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 21.171860 10.095000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 21.793771 10.095000 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 22.200890 10.095000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 22.378219 10.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +0.050000 slw +n 20.500000 10.247500 m 22.775000 10.247500 l s +0.060000 slw +[] 0 sd +[] 0 sd +0 slc +n 14.000000 6.900000 m 15.508008 6.900000 l s +[] 0 sd +0 slj +0 slc +n 15.883008 6.900000 m 15.383008 7.150000 l 15.508008 6.900000 l 15.383008 6.650000 l ef +n 15.883008 6.900000 m 15.383008 7.150000 l 15.508008 6.900000 l 15.383008 6.650000 l cp s +0.060000 slw +[] 0 sd +[] 0 sd +0 slc +n 17.000000 9.900000 m 19.557918 9.900000 l s +[] 0 sd +0 slj +0 slc +n 19.932918 9.900000 m 19.432918 10.150000 l 19.557918 9.900000 l 19.432918 9.650000 l ef +n 19.932918 9.900000 m 19.432918 10.150000 l 19.557918 9.900000 l 19.432918 9.650000 l cp s +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 3.500000 6.000000 m 3.500000 7.800000 l 8.340000 7.800000 l 8.340000 6.000000 l f +0.000000 0.000000 0.000000 srgb +n 3.500000 6.000000 m 3.500000 7.800000 l 8.340000 7.800000 l 8.340000 6.000000 l cp s +gsave 4.000000 7.155000 translate 0.035278 -0.035278 scale +start_ol +4295 3512 moveto +4246 2607 4063 1982 conicto +3881 1357 3511 919 conicto +3142 482 2595 231 conicto +2048 -19 1231 -156 conicto +1167 195 lineto +1912 326 2400 549 conicto +2889 773 3220 1172 conicto +3551 1571 3714 2135 conicto +3877 2700 3925 3536 conicto +4295 3512 lineto +579 3322 moveto +939 3473 lineto +1323 2680 1693 1819 conicto +1323 1678 lineto +983 2486 579 3322 conicto +end_ol grestore +gsave 4.639399 7.155000 translate 0.035278 -0.035278 scale +start_ol +452 1659 moveto +452 2033 lineto +4412 2033 lineto +4412 1659 lineto +452 1659 lineto +end_ol grestore +gsave 5.278797 7.155000 translate 0.035278 -0.035278 scale +start_ol +924 3478 moveto +3940 3478 lineto +3940 3128 lineto +3604 2306 2889 1537 conicto +3711 769 4339 107 conicto +4076 -146 lineto +3429 545 2636 1284 conicto +1814 491 671 -88 conicto +506 224 lineto +1600 793 2376 1539 conicto +3152 2286 3526 3128 conicto +924 3128 lineto +924 3478 lineto +end_ol grestore +gsave 5.918196 7.155000 translate 0.035278 -0.035278 scale +start_ol +715 3380 moveto +4120 3380 lineto +4120 102 lineto +715 102 lineto +715 443 lineto +3745 443 lineto +3745 3040 lineto +715 3040 lineto +715 3380 lineto +end_ol grestore +gsave 6.557595 7.155000 translate 0.035278 -0.035278 scale +start_ol +452 1659 moveto +452 2033 lineto +4412 2033 lineto +4412 1659 lineto +452 1659 lineto +end_ol grestore +gsave 7.196993 7.155000 translate 0.035278 -0.035278 scale +start_ol +2811 3366 moveto +3098 3536 lineto +3419 3069 3614 2748 conicto +3327 2597 lineto +3074 3006 2811 3366 conicto +4008 2738 moveto +3755 3152 3478 3531 conicto +3770 3702 lineto +4071 3269 4300 2894 conicto +4008 2738 lineto +1571 3721 moveto +1571 2271 lineto +2933 1946 4290 1430 conicto +4173 1080 lineto +2831 1586 1571 1887 conicto +1571 -238 lineto +1182 -238 lineto +1182 3721 lineto +1571 3721 lineto +end_ol grestore +0.050000 slw +n 4.000000 7.322500 m 7.840000 7.322500 l s +0.060000 slw +[] 0 sd +[] 0 sd +0 slc +n 8.340000 6.900000 m 9.557918 6.900000 l s +[] 0 sd +0 slj +0 slc +n 9.932918 6.900000 m 9.432918 7.150000 l 9.557918 6.900000 l 9.432918 6.650000 l ef +n 9.932918 6.900000 m 9.432918 7.150000 l 9.557918 6.900000 l 9.432918 6.650000 l cp s +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 8.200000 15.500000 m 8.200000 17.300000 l 11.240000 17.300000 l 11.240000 15.500000 l f +n 8.200000 16.400000 m 8.200000 16.400000 0.900000 0.900000 180.000000 270.000000 ellipse f +n 11.240000 16.400000 m 11.240000 16.400000 0.900000 0.900000 270.000000 360.000000 ellipse f +n 7.300000 16.400000 m 7.300000 16.400000 l 12.140000 16.400000 l 12.140000 16.400000 l f +n 8.200000 16.400000 m 8.200000 16.400000 0.900000 0.900000 90.000000 180.000000 ellipse f +n 11.240000 16.400000 m 11.240000 16.400000 0.900000 0.900000 0.000000 90.000000 ellipse f +0.000000 0.000000 0.000000 srgb +n 8.200000 15.500000 m 11.240000 15.500000 l s +n 8.200000 17.300000 m 11.240000 17.300000 l s +n 8.200000 16.400000 0.900000 0.900000 180.000000 270.000000 ellipse s +n 11.240000 16.400000 0.900000 0.900000 270.000000 360.000000 ellipse s +n 7.300000 16.400000 m 7.300000 16.400000 l s +n 12.140000 16.400000 m 12.140000 16.400000 l s +n 8.200000 16.400000 0.900000 0.900000 90.000000 180.000000 ellipse s +n 11.240000 16.400000 0.900000 0.900000 0.000000 90.000000 ellipse s +gsave 7.800000 16.655000 translate 0.035278 -0.035278 scale +start_ol +613 224 moveto +632 603 lineto +2403 545 4232 214 conicto +4183 -165 lineto +2393 161 613 224 conicto +1021 1790 moveto +1046 2169 lineto +2437 2111 3833 1868 conicto +3779 1488 lineto +2413 1732 1021 1790 conicto +841 3205 moveto +861 3575 lineto +2495 3522 4076 3283 conicto +4032 2914 lineto +2447 3147 841 3205 conicto +end_ol grestore +gsave 8.439399 16.655000 translate 0.035278 -0.035278 scale +start_ol +2811 3366 moveto +3098 3536 lineto +3419 3069 3614 2748 conicto +3327 2597 lineto +3074 3006 2811 3366 conicto +4008 2738 moveto +3755 3152 3478 3531 conicto +3770 3702 lineto +4071 3269 4300 2894 conicto +4008 2738 lineto +1571 3721 moveto +1571 2271 lineto +2933 1946 4290 1430 conicto +4173 1080 lineto +2831 1586 1571 1887 conicto +1571 -238 lineto +1182 -238 lineto +1182 3721 lineto +1571 3721 lineto +end_ol grestore +gsave 9.078797 16.655000 translate 0.035278 -0.035278 scale +start_ol +2515 3575 moveto +2884 3575 lineto +2884 272 lineto +3502 355 3874 802 conicto +4246 1250 4314 2028 conicto +4669 1999 lineto +4489 -58 2515 -161 conicto +2515 3575 lineto +1265 3575 moveto +1639 3575 lineto +1639 2617 lineto +1639 1663 1529 1128 conicto +1420 593 1194 316 conicto +968 39 525 -170 conicto +336 141 lineto +725 336 907 564 conicto +1090 793 1177 1262 conicto +1265 1732 1265 2617 conicto +1265 3575 lineto +end_ol grestore +gsave 9.718196 16.655000 translate 0.035278 -0.035278 scale +start_ol +696 3380 moveto +4168 3380 lineto +4168 3040 lineto +2627 3040 lineto +2627 443 lineto +4314 443 lineto +4314 102 lineto +550 102 lineto +550 443 lineto +2237 443 lineto +2237 3040 lineto +696 3040 lineto +696 3380 lineto +end_ol grestore +gsave 10.357595 16.655000 translate 0.035278 -0.035278 scale +start_ol +890 3536 moveto +1634 3166 2378 2709 conicto +2189 2378 lineto +1479 2816 715 3205 conicto +890 3536 lineto +832 306 moveto +2252 438 3066 1128 conicto +3881 1819 4120 3094 conicto +4475 3016 lineto +3984 214 880 -58 conicto +832 306 lineto +end_ol grestore +gsave 10.996993 16.655000 translate 0.035278 -0.035278 scale +start_ol +2811 3366 moveto +3098 3536 lineto +3419 3069 3614 2748 conicto +3327 2597 lineto +3074 3006 2811 3366 conicto +4008 2738 moveto +3755 3152 3478 3531 conicto +3770 3702 lineto +4071 3269 4300 2894 conicto +4008 2738 lineto +1571 3721 moveto +1571 2271 lineto +2933 1946 4290 1430 conicto +4173 1080 lineto +2831 1586 1571 1887 conicto +1571 -238 lineto +1182 -238 lineto +1182 3721 lineto +1571 3721 lineto +end_ol grestore +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 19.700000 15.500000 m 19.700000 17.300000 l 22.740000 17.300000 l 22.740000 15.500000 l f +n 19.700000 16.400000 m 19.700000 16.400000 0.900000 0.900000 180.000000 270.000000 ellipse f +n 22.740000 16.400000 m 22.740000 16.400000 0.900000 0.900000 270.000000 360.000000 ellipse f +n 18.800000 16.400000 m 18.800000 16.400000 l 23.640000 16.400000 l 23.640000 16.400000 l f +n 19.700000 16.400000 m 19.700000 16.400000 0.900000 0.900000 90.000000 180.000000 ellipse f +n 22.740000 16.400000 m 22.740000 16.400000 0.900000 0.900000 0.000000 90.000000 ellipse f +0.000000 0.000000 0.000000 srgb +n 19.700000 15.500000 m 22.740000 15.500000 l s +n 19.700000 17.300000 m 22.740000 17.300000 l s +n 19.700000 16.400000 0.900000 0.900000 180.000000 270.000000 ellipse s +n 22.740000 16.400000 0.900000 0.900000 270.000000 360.000000 ellipse s +n 18.800000 16.400000 m 18.800000 16.400000 l s +n 23.640000 16.400000 m 23.640000 16.400000 l s +n 19.700000 16.400000 0.900000 0.900000 90.000000 180.000000 ellipse s +n 22.740000 16.400000 0.900000 0.900000 0.000000 90.000000 ellipse s +gsave 19.300000 16.655000 translate 0.035278 -0.035278 scale +start_ol +2933 3633 moveto +3220 3804 lineto +3444 3473 3711 3040 conicto +3424 2889 lineto +3186 3278 2933 3633 conicto +4081 3030 moveto +3857 3400 3575 3799 conicto +3867 3969 lineto +4144 3570 4373 3186 conicto +4081 3030 lineto +4032 -83 moveto +3687 1313 3264 2432 conicto +3629 2549 lineto +4066 1425 4426 0 conicto +4032 -83 lineto +1761 3439 moveto +1561 1571 652 -58 conicto +297 112 lineto +1167 1678 1377 3449 conicto +1761 3439 lineto +end_ol grestore +gsave 19.939399 16.655000 translate 0.035278 -0.035278 scale +start_ol +905 2563 moveto +1211 2646 lineto +1386 2062 1561 1352 conicto +1245 1274 lineto +1060 2028 905 2563 conicto +1975 2704 moveto +2291 2787 lineto +2451 2218 2641 1440 conicto +2325 1357 lineto +2101 2262 1975 2704 conicto +3643 2753 moveto +3969 2753 lineto +3920 1318 3373 666 conicto +2826 15 1527 -170 conicto +1479 136 lineto +2082 229 2473 399 conicto +2865 569 3125 878 conicto +3385 1187 3502 1634 conicto +3619 2082 3643 2753 conicto +end_ol grestore +gsave 20.578797 16.655000 translate 0.035278 -0.035278 scale +start_ol +822 199 moveto +2291 326 2977 987 conicto +3663 1649 3697 2957 conicto +1775 2957 lineto +1488 2116 807 1484 conicto +545 1717 lineto +1449 2568 1591 3804 conicto +1955 3779 lineto +1921 3492 1873 3298 conicto +4086 3298 lineto +4086 3128 lineto +4086 1566 3317 783 conicto +2549 0 880 -141 conicto +822 199 lineto +end_ol grestore +gsave 21.218196 16.655000 translate 0.035278 -0.035278 scale +start_ol +696 3380 moveto +4168 3380 lineto +4168 3040 lineto +2627 3040 lineto +2627 443 lineto +4314 443 lineto +4314 102 lineto +550 102 lineto +550 443 lineto +2237 443 lineto +2237 3040 lineto +696 3040 lineto +696 3380 lineto +end_ol grestore +gsave 21.857595 16.655000 translate 0.035278 -0.035278 scale +start_ol +890 3536 moveto +1634 3166 2378 2709 conicto +2189 2378 lineto +1479 2816 715 3205 conicto +890 3536 lineto +832 306 moveto +2252 438 3066 1128 conicto +3881 1819 4120 3094 conicto +4475 3016 lineto +3984 214 880 -58 conicto +832 306 lineto +end_ol grestore +gsave 22.496993 16.655000 translate 0.035278 -0.035278 scale +start_ol +2811 3366 moveto +3098 3536 lineto +3419 3069 3614 2748 conicto +3327 2597 lineto +3074 3006 2811 3366 conicto +4008 2738 moveto +3755 3152 3478 3531 conicto +3770 3702 lineto +4071 3269 4300 2894 conicto +4008 2738 lineto +1571 3721 moveto +1571 2271 lineto +2933 1946 4290 1430 conicto +4173 1080 lineto +2831 1586 1571 1887 conicto +1571 -238 lineto +1182 -238 lineto +1182 3721 lineto +1571 3721 lineto +end_ol grestore +0.060000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 23.275000 9.900000 m 24.000000 9.900000 l 24.000000 12.050000 l 5.800000 12.050000 l 5.800000 16.400000 l 6.857918 16.400000 l s +[] 0 sd +0 slj +0 slc +n 7.232918 16.400000 m 6.732918 16.650000 l 6.857918 16.400000 l 6.732918 16.150000 l ef +n 7.232918 16.400000 m 6.732918 16.650000 l 6.857918 16.400000 l 6.732918 16.150000 l cp s +0.060000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 19.482500 6.900000 m 21.000000 6.900000 l 21.000000 8.400000 l 10.500000 8.400000 l 10.500000 9.900000 l 12.557918 9.900000 l s +[] 0 sd +0 slj +0 slc +n 12.932918 9.900000 m 12.432918 10.150000 l 12.557918 9.900000 l 12.432918 9.650000 l ef +n 12.932918 9.900000 m 12.432918 10.150000 l 12.557918 9.900000 l 12.432918 9.650000 l cp s +0.060000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 12.140000 16.400000 m 12.140000 16.400000 l 13.357918 16.400000 l s +[] 0 sd +0 slj +0 slc +n 13.732918 16.400000 m 13.232918 16.650000 l 13.357918 16.400000 l 13.232918 16.150000 l ef +n 13.732918 16.400000 m 13.232918 16.650000 l 13.357918 16.400000 l 13.232918 16.150000 l cp s +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 13.800000 15.500000 m 13.800000 17.300000 l 15.945000 17.300000 l 15.945000 15.500000 l f +0.000000 0.000000 0.000000 srgb +n 13.800000 15.500000 m 13.800000 17.300000 l 15.945000 17.300000 l 15.945000 15.500000 l cp s +gsave 14.300000 16.595000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 14.697123 16.595000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 15.086755 16.595000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +0.050000 slw +n 14.300000 16.747500 m 15.445000 16.747500 l s +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 24.800000 15.500000 m 24.800000 17.300000 l 29.000000 17.300000 l 29.000000 15.500000 l f +0.000000 0.000000 0.000000 srgb +n 24.800000 15.500000 m 24.800000 17.300000 l 29.000000 17.300000 l 29.000000 15.500000 l cp s +gsave 25.300000 16.655000 translate 0.035278 -0.035278 scale +start_ol +593 3458 moveto +4436 3458 lineto +4436 3128 lineto +4285 2597 3925 2174 conicto +3565 1751 3059 1508 conicto +2865 1814 lineto +3779 2252 4027 3128 conicto +593 3128 lineto +593 3458 lineto +2028 2665 moveto +2398 2665 lineto +2398 1415 2094 780 conicto +1790 146 1046 -170 conicto +871 141 lineto +1508 409 1768 973 conicto +2028 1537 2028 2665 conicto +end_ol grestore +gsave 25.939399 16.655000 translate 0.035278 -0.035278 scale +start_ol +1411 3770 moveto +1785 3770 lineto +1785 2593 lineto +4329 3254 lineto +4426 2918 lineto +4334 2408 4035 1928 conicto +3736 1449 3308 1138 conicto +3059 1415 lineto +3415 1668 3670 2042 conicto +3925 2417 4018 2811 conicto +4008 2821 lineto +1785 2228 lineto +1785 1124 lineto +1785 914 1792 788 conicto +1800 662 1836 557 conicto +1873 452 1921 403 conicto +1970 355 2074 318 conicto +2179 282 2300 275 conicto +2422 268 2627 268 conicto +3439 268 4164 340 conicto +4178 0 lineto +3415 -73 2544 -73 conicto +1843 -73 1627 141 conicto +1411 355 1411 1060 conicto +1411 2130 lineto +355 1853 lineto +268 2194 lineto +1411 2495 lineto +1411 3770 lineto +end_ol grestore +gsave 26.578797 16.655000 translate 0.035278 -0.035278 scale +start_ol +890 3536 moveto +1634 3166 2378 2709 conicto +2189 2378 lineto +1479 2816 715 3205 conicto +890 3536 lineto +832 306 moveto +2252 438 3066 1128 conicto +3881 1819 4120 3094 conicto +4475 3016 lineto +3984 214 880 -58 conicto +832 306 lineto +end_ol grestore +gsave 27.218196 16.655000 translate 0.035278 -0.035278 scale +start_ol +3419 3779 moveto +3706 3950 lineto +3920 3638 4173 3210 conicto +3950 3094 lineto +3891 1581 3159 807 conicto +2427 34 944 -122 conicto +895 219 lineto +2223 375 2862 1043 conicto +3502 1712 3551 3006 conicto +452 3006 lineto +452 3361 lineto +3702 3361 lineto +3536 3619 3419 3779 conicto +4037 3945 moveto +4329 4115 lineto +4543 3804 4810 3351 conicto +4519 3201 lineto +4271 3624 4037 3945 conicto +end_ol grestore +gsave 27.857595 16.655000 translate 0.035278 -0.035278 scale +start_ol +910 3176 moveto +910 3526 lineto +3954 3526 lineto +3954 3176 lineto +910 3176 lineto +535 2286 moveto +4285 2286 lineto +4217 1070 3521 486 conicto +2826 -97 1294 -204 conicto +1255 136 lineto +2510 229 3123 659 conicto +3736 1090 3852 1936 conicto +535 1936 lineto +535 2286 lineto +end_ol grestore +0.050000 slw +n 25.300000 16.822500 m 28.500000 16.822500 l s +0.060000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 15.945000 16.400000 m 15.945000 16.400000 l 18.357918 16.400000 l s +[] 0 sd +0 slj +0 slc +n 18.732918 16.400000 m 18.232918 16.650000 l 18.357918 16.400000 l 18.232918 16.150000 l ef +n 18.732918 16.400000 m 18.232918 16.650000 l 18.357918 16.400000 l 18.232918 16.150000 l cp s +0.060000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 23.640000 16.400000 m 23.640000 16.400000 l 24.357918 16.400000 l s +[] 0 sd +0 slj +0 slc +n 24.732918 16.400000 m 24.232918 16.650000 l 24.357918 16.400000 l 24.232918 16.150000 l ef +n 24.732918 16.400000 m 24.232918 16.650000 l 24.357918 16.400000 l 24.232918 16.150000 l cp s +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 11.750000 12.800000 m 11.750000 14.600000 l 19.277500 14.600000 l 19.277500 12.800000 l f +0.000000 0.000000 0.000000 srgb +n 11.750000 12.800000 m 11.750000 14.600000 l 19.277500 14.600000 l 19.277500 12.800000 l cp s +gsave 12.250000 13.895000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1202 3520 lineto +2079 1148 lineto +2961 3520 lineto +3712 3520 lineto +3712 0 lineto +3200 0 lineto +3200 3095 lineto +2314 704 lineto +1846 704 lineto +960 3095 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 12.801979 13.895000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.194108 13.895000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 13.546276 13.895000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 13.950890 13.895000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 14.128219 13.895000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 14.532833 13.895000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 14.927459 13.895000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 15.129766 13.895000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.621800 13.895000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 16.016426 13.895000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 16.348611 13.895000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 16.700779 13.895000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 16.963031 13.895000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 17.140360 13.895000 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 17.547479 13.895000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 17.797246 13.895000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 17.974575 13.895000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 18.366704 13.895000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +0.050000 slw +n 12.250000 14.047500 m 18.777500 14.047500 l s +0.250000 slw +[1.000000 0.200000 0.200000 0.200000 0.200000 0.200000] 0 sd +[0.300000 0.060000 0.060000 0.060000 0.060000 0.060000] 0 sd +0 slj +0 slc +n 19.327966 13.700000 m 21.220000 13.700000 l 21.220000 15.146447 l s +0.250000 slw +[] 0 sd +0 slj +0 slc +n 20.720000 14.823223 m 21.220000 15.323223 l 21.720000 14.823223 l s +0.250000 slw +[0.300000 0.060000 0.060000 0.060000 0.060000 0.060000] 0 sd +[0.300000 0.060000 0.060000 0.060000 0.060000 0.060000] 0 sd +0 slj +0 slc +n 11.699534 13.700000 m 9.720000 13.700000 l 9.720000 15.146447 l s +0.250000 slw +[] 0 sd +0 slj +0 slc +n 9.220000 14.823223 m 9.720000 15.323223 l 10.220000 14.823223 l s +showpage diff -r 30c102343b37 -r dfb89e32eea1 figures/gcc-flow.pdf Binary file figures/gcc-flow.pdf has changed diff -r 30c102343b37 -r dfb89e32eea1 figures/gcc-repository.dia Binary file figures/gcc-repository.dia has changed diff -r 30c102343b37 -r dfb89e32eea1 figures/gcc-repository.eps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figures/gcc-repository.eps Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,2691 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/kent/WorkSpace/Mercurial/master-paper/figures/gcc-repository.dia +%%Creator: Dia v0.97 +%%CreationDate: Sun Feb 7 16:42:35 2010 +%%For: kent +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 545 678 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E +/F /G /H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c +/d /e /f /g /h /i /j /k /l /m +/n /o /p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +9.000000 -24.075000 translate +%%EndProlog + + +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +0.000000 0.000000 0.000000 srgb +n -6.000000 2.000000 m -6.000000 20.000000 l s +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +n 0.000000 4.000000 m 0.000000 21.000000 l s +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +n 6.000000 6.000000 m 6.000000 22.000000 l s +gsave -7.335000 0.833469 translate 0.035278 -0.035278 scale +start_ol +2019 2836 moveto +277 2836 lineto +277 3171 lineto +2242 3171 lineto +2242 3974 lineto +2622 3974 lineto +2622 3171 lineto +4587 3171 lineto +4587 2836 lineto +2845 2836 lineto +3483 1625 4762 496 conicto +4558 175 lineto +3366 1221 2622 2558 conicto +2622 720 lineto +3721 720 lineto +3721 399 lineto +2622 399 lineto +2622 -472 lineto +2242 -472 lineto +2242 399 lineto +1143 399 lineto +1143 720 lineto +2242 720 lineto +2242 2558 lineto +1498 1221 306 175 conicto +102 496 lineto +1381 1625 2019 2836 conicto +end_ol grestore +gsave -6.695601 0.833469 translate 0.035278 -0.035278 scale +start_ol +1736 15 moveto +2257 -10 2369 -10 conicto +2476 -10 2519 22 conicto +2563 54 2587 178 conicto +2612 302 2612 574 conicto +2612 769 2583 953 conicto +1819 272 482 -199 conicto +345 112 lineto +1751 579 2515 1270 conicto +2447 1493 2340 1688 conicto +1663 1138 511 749 conicto +389 1046 lineto +1532 1406 2194 1921 conicto +2048 2111 1873 2267 conicto +1323 1941 554 1678 conicto +428 1970 lineto +1411 2262 2048 2690 conicto +885 2690 lineto +885 3006 lineto +3979 3006 lineto +3979 2690 lineto +2986 2690 lineto +3103 2155 3366 1634 conicto +3784 1955 4144 2378 conicto +4402 2174 lineto +4008 1693 3526 1338 conicto +3969 593 4606 97 conicto +4368 -195 lineto +3740 272 3266 1057 conicto +2792 1843 2622 2690 conicto +2461 2690 lineto +2296 2554 2164 2461 conicto +2554 2116 2772 1617 conicto +2991 1119 2991 574 conicto +2991 39 2879 -146 conicto +2768 -331 2490 -331 conicto +2150 -331 1741 -306 conicto +1736 15 lineto +4144 3366 moveto +720 3366 lineto +720 2563 lineto +350 2563 lineto +350 3672 lineto +2237 3672 lineto +2237 4100 lineto +2627 4100 lineto +2627 3672 lineto +4514 3672 lineto +4514 2612 lineto +4144 2612 lineto +4144 3366 lineto +end_ol grestore +gsave -6.056203 0.833469 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave -5.561672 0.833469 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave -5.114592 0.833469 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave -8.240000 1.633469 translate 0.035278 -0.035278 scale +start_ol +2724 1469 moveto +2126 1469 lineto +2126 1143 lineto +2126 1119 2123 1072 conicto +2121 1026 2121 1007 conicto +2724 1007 lineto +2724 1469 lineto +2568 3809 moveto +4499 3809 lineto +4499 277 lineto +4499 -136 4399 -238 conicto +4300 -340 3891 -340 conicto +3692 -340 3356 -316 conicto +3342 10 lineto +3648 -15 3833 -15 conicto +4042 -15 4083 24 conicto +4125 63 4125 268 conicto +4125 2053 lineto +2568 2053 lineto +2568 3809 lineto +365 -375 moveto +365 3809 lineto +2247 3809 lineto +2247 2053 lineto +739 2053 lineto +739 -375 lineto +365 -375 lineto +1770 1007 moveto +1775 1041 1775 1109 conicto +1775 1469 lineto +1206 1469 lineto +1206 1761 lineto +3609 1761 lineto +3609 1469 lineto +3079 1469 lineto +3079 1007 lineto +3687 1007 lineto +3687 730 lineto +3079 730 lineto +3079 -233 lineto +2724 -233 lineto +2724 730 lineto +2092 730 lineto +1975 102 1396 -282 conicto +1114 -58 lineto +1625 268 1736 730 conicto +1109 730 lineto +1109 1007 lineto +1770 1007 lineto +4125 2330 moveto +4125 2792 lineto +2933 2792 lineto +2933 2330 lineto +4125 2330 lineto +4125 3059 moveto +4125 3502 lineto +2933 3502 lineto +2933 3059 lineto +4125 3059 lineto +739 3059 moveto +1882 3059 lineto +1882 3502 lineto +739 3502 lineto +739 3059 lineto +739 2792 moveto +739 2330 lineto +1882 2330 lineto +1882 2792 lineto +739 2792 lineto +end_ol grestore +gsave -7.600601 1.633469 translate 0.035278 -0.035278 scale +start_ol +1571 1887 moveto +1065 1887 lineto +1065 2062 lineto +696 1809 336 1634 conicto +180 1955 lineto +739 2233 1182 2554 conicto +462 3176 lineto +710 3419 lineto +1459 2772 lineto +1853 3118 2101 3507 conicto +812 3507 lineto +812 3823 lineto +2612 3823 lineto +2763 3492 3040 3171 conicto +3361 3502 3580 3818 conicto +3867 3638 lineto +3619 3283 3264 2928 conicto +3483 2714 3677 2573 conicto +4013 2909 4280 3283 conicto +4562 3103 lineto +4290 2714 3945 2378 conicto +4275 2155 4684 1955 conicto +4528 1634 lineto +4178 1805 3789 2062 conicto +3789 1887 lineto +3215 1887 lineto +3215 1226 lineto +4519 1226 lineto +4519 900 lineto +3215 900 lineto +3215 122 lineto +3215 10 3268 -14 conicto +3322 -39 3604 -39 conicto +3755 -39 3816 -39 conicto +3877 -39 3954 -10 conicto +4032 19 4049 43 conicto +4066 68 4093 170 conicto +4120 272 4125 357 conicto +4130 443 4139 652 conicto +4504 613 lineto +4494 413 4487 304 conicto +4480 195 4458 73 conicto +4436 -49 4416 -102 conicto +4397 -156 4338 -216 conicto +4280 -277 4229 -294 conicto +4178 -311 4064 -328 conicto +3950 -345 3847 -347 conicto +3745 -350 3556 -350 conicto +3079 -350 2957 -291 conicto +2836 -233 2836 -10 conicto +2836 900 lineto +1897 900 lineto +1785 384 1432 63 conicto +1080 -258 452 -418 conicto +326 -92 lineto +832 49 1114 284 conicto +1396 520 1503 900 conicto +336 900 lineto +336 1226 lineto +1556 1226 lineto +1571 1352 1571 1484 conicto +1571 1887 lineto +1941 1226 moveto +2836 1226 lineto +2836 1887 lineto +1950 1887 lineto +1950 1459 lineto +1950 1372 1941 1226 conicto +3594 2203 moveto +2850 2758 2432 3419 conicto +2014 2758 1270 2203 conicto +3594 2203 lineto +end_ol grestore +gsave -6.961203 1.633469 translate 0.035278 -0.035278 scale +start_ol +778 1600 moveto +1800 1600 lineto +1800 0 lineto +2033 506 2130 1029 conicto +2228 1552 2228 2325 conicto +2228 3760 lineto +4621 3760 lineto +4621 3439 lineto +2602 3439 lineto +2602 2675 lineto +4499 2675 lineto +4499 2359 lineto +4261 1352 3755 686 conicto +4178 233 4747 -44 conicto +4572 -355 lineto +3969 -68 3522 409 conicto +3064 -78 2422 -355 conicto +2262 -34 lineto +2870 233 3288 686 conicto +2860 1245 2602 2009 conicto +2588 666 2048 -331 conicto +1800 -68 lineto +1800 -404 lineto +1449 -404 lineto +1449 1265 lineto +764 1265 lineto +710 360 443 -404 conicto +141 -185 lineto +297 287 362 841 conicto +428 1396 428 2237 conicto +428 3843 lineto +788 3843 lineto +788 2651 lineto +1304 2651 lineto +1304 3891 lineto +1644 3891 lineto +1644 2651 lineto +2067 2651 lineto +2067 2320 lineto +788 2320 lineto +788 2019 lineto +788 1863 778 1600 conicto +3517 973 moveto +3930 1537 4130 2359 conicto +2602 2359 lineto +2602 2140 lineto +2889 2257 lineto +3123 1508 3517 973 conicto +end_ol grestore +gsave -6.321804 1.633469 translate 0.035278 -0.035278 scale +start_ol +3502 3604 moveto +3901 3604 lineto +3901 2359 lineto +3901 1133 3346 525 conicto +2792 -83 1537 -253 conicto +1479 97 lineto +2602 263 3052 768 conicto +3502 1274 3502 2359 conicto +3502 3604 lineto +963 1464 moveto +963 3604 lineto +1352 3604 lineto +1352 1464 lineto +963 1464 lineto +end_ol grestore +gsave -5.682405 1.633469 translate 0.035278 -0.035278 scale +start_ol +3502 3604 moveto +3901 3604 lineto +3901 2359 lineto +3901 1133 3346 525 conicto +2792 -83 1537 -253 conicto +1479 97 lineto +2602 263 3052 768 conicto +3502 1274 3502 2359 conicto +3502 3604 lineto +963 1464 moveto +963 3604 lineto +1352 3604 lineto +1352 1464 lineto +963 1464 lineto +end_ol grestore +gsave -5.043007 1.633469 translate 0.035278 -0.035278 scale +start_ol +452 1659 moveto +452 2033 lineto +4412 2033 lineto +4412 1659 lineto +452 1659 lineto +end_ol grestore +gsave -4.403608 1.633469 translate 0.035278 -0.035278 scale +start_ol +924 3478 moveto +3940 3478 lineto +3940 3128 lineto +3604 2306 2889 1537 conicto +3711 769 4339 107 conicto +4076 -146 lineto +3429 545 2636 1284 conicto +1814 491 671 -88 conicto +506 224 lineto +1600 793 2376 1539 conicto +3152 2286 3526 3128 conicto +924 3128 lineto +924 3478 lineto +end_ol grestore +gsave -1.621250 2.221250 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave -1.126719 2.221250 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave -0.679639 2.221250 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave -0.232560 2.221250 translate 0.035278 -0.035278 scale +start_ol +2496 -832 moveto +2496 -1152 lineto +-64 -1152 lineto +-64 -832 lineto +2496 -832 lineto +end_ol grestore +gsave 0.087140 2.221250 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 0.439308 2.221250 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 0.831438 2.221250 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 1.238557 2.221250 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 5.348750 2.821250 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 5.795830 2.821250 translate 0.035278 -0.035278 scale +start_ol +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +896 2304 moveto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +end_ol grestore +gsave 6.202949 2.821250 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 4.805000 3.621250 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 5.197129 3.621250 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 5.601743 3.621250 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 5.804050 3.621250 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave 6.298581 3.621250 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 6.745661 3.621250 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +n -6.000000 11.000000 m -0.535321 11.910780 l s +[] 0 sd +0 slj +0 slc +n -0.165423 11.972429 m -0.699720 12.136828 l -0.535321 11.910780 l -0.617521 11.643631 l ef +n -0.165423 11.972429 m -0.699720 12.136828 l -0.535321 11.910780 l -0.617521 11.643631 l cp s +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +n 0.000000 13.000000 m 5.464679 13.910780 l s +[] 0 sd +0 slj +0 slc +n 5.834577 13.972429 m 5.300280 14.136828 l 5.464679 13.910780 l 5.382479 13.643631 l ef +n 5.834577 13.972429 m 5.300280 14.136828 l 5.464679 13.910780 l 5.382479 13.643631 l cp s +gsave -9.000000 11.000000 translate 0.035278 -0.035278 scale +start_ol +1425 2870 moveto +1415 2870 lineto +564 1211 lineto +564 1201 lineto +1425 1201 lineto +1425 2870 lineto +1425 851 moveto +195 851 lineto +195 1250 lineto +1377 3551 lineto +1824 3551 lineto +1824 1201 lineto +2237 1201 lineto +2237 851 lineto +1824 851 lineto +1824 0 lineto +1425 0 lineto +1425 851 lineto +end_ol grestore +gsave -8.680301 11.000000 translate 0.035278 -0.035278 scale +start_ol +900 0 moveto +900 730 lineto +1532 730 lineto +1532 0 lineto +900 0 lineto +end_ol grestore +gsave -8.360601 11.000000 translate 0.035278 -0.035278 scale +start_ol +1425 2870 moveto +1415 2870 lineto +564 1211 lineto +564 1201 lineto +1425 1201 lineto +1425 2870 lineto +1425 851 moveto +195 851 lineto +195 1250 lineto +1377 3551 lineto +1824 3551 lineto +1824 1201 lineto +2237 1201 lineto +2237 851 lineto +1824 851 lineto +1824 0 lineto +1425 0 lineto +1425 851 lineto +end_ol grestore +gsave -8.040902 11.000000 translate 0.035278 -0.035278 scale +start_ol +900 0 moveto +900 730 lineto +1532 730 lineto +1532 0 lineto +900 0 lineto +end_ol grestore +gsave -7.721203 11.000000 translate 0.035278 -0.035278 scale +start_ol +1605 3191 moveto +1605 3201 lineto +389 3201 lineto +389 3551 lineto +2067 3551 lineto +2067 3201 lineto +1192 2087 lineto +1192 2077 lineto +1240 2077 lineto +1683 2077 1887 1829 conicto +2092 1581 2092 1021 conicto +2092 -49 1143 -49 conicto +788 -49 438 97 conicto +438 520 lineto +812 311 1070 311 conicto +1381 311 1532 479 conicto +1683 647 1683 1021 conicto +1683 1454 1561 1590 conicto +1440 1727 1070 1727 conicto +730 1727 lineto +730 2077 lineto +1605 3191 lineto +end_ol grestore +gsave -9.000000 11.800000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave -8.752739 11.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -8.358113 11.800000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave -8.180784 11.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -7.786158 11.800000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave -7.394029 11.800000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave -7.061844 11.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +n -6.000000 16.000000 m -0.535321 16.910780 l s +[] 0 sd +0 slj +0 slc +n -0.165423 16.972429 m -0.699720 17.136828 l -0.535321 16.910780 l -0.617521 16.643631 l ef +n -0.165423 16.972429 m -0.699720 17.136828 l -0.535321 16.910780 l -0.617521 16.643631 l cp s +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +n 0.000000 18.000000 m 5.464679 18.910780 l s +[] 0 sd +0 slj +0 slc +n 5.834577 18.972429 m 5.300280 19.136828 l 5.464679 18.910780 l 5.382479 18.643631 l ef +n 5.834577 18.972429 m 5.300280 19.136828 l 5.464679 18.910780 l 5.382479 18.643631 l cp s +gsave -9.000000 16.000000 translate 0.035278 -0.035278 scale +start_ol +1425 2870 moveto +1415 2870 lineto +564 1211 lineto +564 1201 lineto +1425 1201 lineto +1425 2870 lineto +1425 851 moveto +195 851 lineto +195 1250 lineto +1377 3551 lineto +1824 3551 lineto +1824 1201 lineto +2237 1201 lineto +2237 851 lineto +1824 851 lineto +1824 0 lineto +1425 0 lineto +1425 851 lineto +end_ol grestore +gsave -8.680301 16.000000 translate 0.035278 -0.035278 scale +start_ol +900 0 moveto +900 730 lineto +1532 730 lineto +1532 0 lineto +900 0 lineto +end_ol grestore +gsave -8.360601 16.000000 translate 0.035278 -0.035278 scale +start_ol +1425 2870 moveto +1415 2870 lineto +564 1211 lineto +564 1201 lineto +1425 1201 lineto +1425 2870 lineto +1425 851 moveto +195 851 lineto +195 1250 lineto +1377 3551 lineto +1824 3551 lineto +1824 1201 lineto +2237 1201 lineto +2237 851 lineto +1824 851 lineto +1824 0 lineto +1425 0 lineto +1425 851 lineto +end_ol grestore +gsave -8.040902 16.000000 translate 0.035278 -0.035278 scale +start_ol +900 0 moveto +900 730 lineto +1532 730 lineto +1532 0 lineto +900 0 lineto +end_ol grestore +gsave -7.721203 16.000000 translate 0.035278 -0.035278 scale +start_ol +876 2092 moveto +885 2092 lineto +1046 2237 1313 2237 conicto +2092 2237 2092 1119 conicto +2092 511 1851 231 conicto +1610 -49 1143 -49 conicto +783 -49 438 97 conicto +438 520 lineto +803 311 1119 311 conicto +1683 311 1683 1119 conicto +1683 1878 1216 1878 conicto +992 1878 827 1678 conicto +462 1678 lineto +511 3551 lineto +1994 3551 lineto +1994 3201 lineto +910 3201 lineto +876 2092 lineto +end_ol grestore +gsave -9.000000 16.800000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave -8.752739 16.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -8.358113 16.800000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave -8.180784 16.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -7.786158 16.800000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave -7.394029 16.800000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave -7.061844 16.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +n -6.000000 3.000000 m -0.535321 3.910780 l s +[] 0 sd +0 slj +0 slc +n -0.165423 3.972429 m -0.699720 4.136828 l -0.535321 3.910780 l -0.617521 3.643631 l ef +n -0.165423 3.972429 m -0.699720 4.136828 l -0.535321 3.910780 l -0.617521 3.643631 l cp s +gsave -9.000000 3.000000 translate 0.035278 -0.035278 scale +start_ol +1425 2870 moveto +1415 2870 lineto +564 1211 lineto +564 1201 lineto +1425 1201 lineto +1425 2870 lineto +1425 851 moveto +195 851 lineto +195 1250 lineto +1377 3551 lineto +1824 3551 lineto +1824 1201 lineto +2237 1201 lineto +2237 851 lineto +1824 851 lineto +1824 0 lineto +1425 0 lineto +1425 851 lineto +end_ol grestore +gsave -8.680301 3.000000 translate 0.035278 -0.035278 scale +start_ol +900 0 moveto +900 730 lineto +1532 730 lineto +1532 0 lineto +900 0 lineto +end_ol grestore +gsave -8.360601 3.000000 translate 0.035278 -0.035278 scale +start_ol +1425 2870 moveto +1415 2870 lineto +564 1211 lineto +564 1201 lineto +1425 1201 lineto +1425 2870 lineto +1425 851 moveto +195 851 lineto +195 1250 lineto +1377 3551 lineto +1824 3551 lineto +1824 1201 lineto +2237 1201 lineto +2237 851 lineto +1824 851 lineto +1824 0 lineto +1425 0 lineto +1425 851 lineto +end_ol grestore +gsave -8.040902 3.000000 translate 0.035278 -0.035278 scale +start_ol +900 0 moveto +900 730 lineto +1532 730 lineto +1532 0 lineto +900 0 lineto +end_ol grestore +gsave -7.721203 3.000000 translate 0.035278 -0.035278 scale +start_ol +851 360 moveto +851 350 lineto +2043 350 lineto +2043 0 lineto +389 0 lineto +389 350 lineto +1610 1751 1610 2675 conicto +1610 3239 1158 3239 conicto +1012 3239 788 3130 conicto +564 3021 389 2860 conicto +389 3283 lineto +754 3599 1216 3599 conicto +1629 3599 1824 3370 conicto +2019 3142 2019 2675 conicto +2019 2194 1756 1663 conicto +1493 1133 851 360 conicto +end_ol grestore +gsave -9.000000 3.800000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave -8.752739 3.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -8.358113 3.800000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave -8.180784 3.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -7.786158 3.800000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave -7.394029 3.800000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave -7.061844 3.800000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -4.016250 4.221250 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave -3.664081 4.221250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave -3.416820 4.221250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -3.022194 4.221250 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave -2.630065 4.221250 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave -2.380298 4.221250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +0.150000 slw +[] 0 sd +[] 0 sd +0 slc +n 0.000000 5.000000 m 5.464679 5.910780 l s +[] 0 sd +0 slj +0 slc +n 5.834577 5.972429 m 5.300280 6.136828 l 5.464679 5.910780 l 5.382479 5.643631 l ef +n 5.834577 5.972429 m 5.300280 6.136828 l 5.464679 5.910780 l 5.382479 5.643631 l cp s +gsave 7.000000 8.650000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 7.447080 8.650000 translate 0.035278 -0.035278 scale +start_ol +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +896 2304 moveto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +end_ol grestore +gsave 7.854199 8.650000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 7.000000 9.450000 translate 0.035278 -0.035278 scale +start_ol +715 3380 moveto +4120 3380 lineto +4120 102 lineto +715 102 lineto +715 443 lineto +3745 443 lineto +3745 3040 lineto +715 3040 lineto +715 3380 lineto +end_ol grestore +gsave 7.639399 9.450000 translate 0.035278 -0.035278 scale +start_ol +890 3536 moveto +1634 3166 2378 2709 conicto +2189 2378 lineto +1479 2816 715 3205 conicto +890 3536 lineto +832 306 moveto +2252 438 3066 1128 conicto +3881 1819 4120 3094 conicto +4475 3016 lineto +3984 214 880 -58 conicto +832 306 lineto +end_ol grestore +gsave 8.278797 9.450000 translate 0.035278 -0.035278 scale +start_ol +4032 -83 moveto +3702 1226 3351 2233 conicto +3721 2344 lineto +4110 1265 4426 0 conicto +4032 -83 lineto +1761 3439 moveto +1561 1571 652 -58 conicto +297 112 lineto +1167 1678 1377 3449 conicto +1761 3439 lineto +3888 3008 moveto +3998 3118 3998 3273 conicto +3998 3429 3888 3538 conicto +3779 3648 3623 3648 conicto +3468 3648 3358 3538 conicto +3249 3429 3249 3273 conicto +3249 3118 3358 3008 conicto +3468 2899 3623 2899 conicto +3779 2899 3888 3008 conicto +4071 3721 moveto +4256 3536 4256 3273 conicto +4256 3011 4071 2826 conicto +3886 2641 3623 2641 conicto +3361 2641 3176 2826 conicto +2991 3011 2991 3273 conicto +2991 3536 3176 3721 conicto +3361 3906 3623 3906 conicto +3886 3906 4071 3721 conicto +end_ol grestore +gsave 8.918196 9.450000 translate 0.035278 -0.035278 scale +start_ol +472 1814 moveto +1522 1960 2514 2451 conicto +3507 2943 4125 3619 conicto +4363 3356 lineto +3770 2724 2909 2262 conicto +2909 -229 lineto +2515 -229 lineto +2515 2062 lineto +1542 1610 530 1464 conicto +472 1814 lineto +end_ol grestore +gsave 9.557595 9.450000 translate 0.035278 -0.035278 scale +start_ol +910 3176 moveto +910 3526 lineto +3954 3526 lineto +3954 3176 lineto +910 3176 lineto +535 2286 moveto +4285 2286 lineto +4217 1070 3521 486 conicto +2826 -97 1294 -204 conicto +1255 136 lineto +2510 229 3123 659 conicto +3736 1090 3852 1936 conicto +535 1936 lineto +535 2286 lineto +end_ol grestore +gsave 7.000000 10.250000 translate 0.035278 -0.035278 scale +start_ol +2899 219 moveto +3483 282 3808 681 conicto +4134 1080 4134 1741 conicto +4134 2359 3725 2762 conicto +3317 3166 2680 3186 conicto +2578 2242 2424 1590 conicto +2271 939 2086 605 conicto +1902 272 1717 138 conicto +1532 5 1313 5 conicto +963 5 669 428 conicto +375 851 375 1464 conicto +375 2378 1000 2952 conicto +1625 3526 2627 3526 conicto +3434 3526 3961 3023 conicto +4489 2520 4489 1741 conicto +4489 934 4078 435 conicto +3667 -63 2972 -122 conicto +2899 219 lineto +2310 3166 moveto +1591 3074 1160 2614 conicto +730 2155 730 1464 conicto +730 1007 924 686 conicto +1119 365 1313 365 conicto +1401 365 1496 430 conicto +1591 496 1707 683 conicto +1824 871 1926 1170 conicto +2028 1469 2132 1984 conicto +2237 2500 2310 3166 conicto +end_ol grestore +gsave 7.639399 10.250000 translate 0.035278 -0.035278 scale +start_ol +302 983 moveto +302 1299 lineto +2237 1299 lineto +2237 1313 lineto +2237 1775 lineto +754 1775 lineto +754 2077 lineto +2237 2077 lineto +2237 2520 lineto +705 2520 lineto +705 2734 lineto +404 2734 lineto +404 3599 lineto +2237 3599 lineto +2237 4003 lineto +2627 4003 lineto +2627 3599 lineto +4460 3599 lineto +4460 2734 lineto +4159 2734 lineto +4159 2520 lineto +2627 2520 lineto +2627 2077 lineto +4110 2077 lineto +4110 1775 lineto +2627 1775 lineto +2627 1313 lineto +2627 1299 lineto +4562 1299 lineto +4562 983 lineto +2704 983 lineto +2870 642 3344 377 conicto +3818 112 4524 -15 conicto +4402 -355 lineto +3731 -224 3210 82 conicto +2690 389 2451 769 conicto +2203 389 1675 82 conicto +1148 -224 462 -355 conicto +340 -15 lineto +1046 112 1517 377 conicto +1989 642 2160 983 conicto +302 983 lineto +2237 2831 moveto +2237 3283 lineto +764 3283 lineto +764 2831 lineto +2237 2831 lineto +2627 2831 moveto +4100 2831 lineto +4100 3283 lineto +2627 3283 lineto +2627 2831 lineto +end_ol grestore +gsave 8.278797 10.250000 translate 0.035278 -0.035278 scale +start_ol +4572 3137 moveto +3439 3137 lineto +3439 2374 lineto +4485 2374 lineto +4485 2067 lineto +1994 2067 lineto +1994 2374 lineto +3050 2374 lineto +3050 3137 lineto +1882 3137 lineto +1882 3463 lineto +3050 3463 lineto +3050 3925 lineto +3439 3925 lineto +3439 3463 lineto +4572 3463 lineto +4572 3137 lineto +263 3502 moveto +506 3740 lineto +861 3463 1216 3108 conicto +968 2870 lineto +657 3191 263 3502 conicto +277 340 moveto +170 657 lineto +1231 914 1848 1279 conicto +292 1279 lineto +292 1591 lineto +2262 1591 lineto +2262 1955 lineto +2651 1955 lineto +2651 1591 lineto +4572 1591 lineto +4572 1279 lineto +2807 1279 lineto +3006 924 3327 632 conicto +3750 895 4086 1231 conicto +4363 1017 lineto +4013 681 3599 413 conicto +4057 92 4694 -97 conicto +4528 -404 lineto +3813 -199 3254 248 conicto +2695 696 2417 1279 conicto +2325 1279 lineto +2043 1055 1712 880 conicto +1712 83 lineto +2296 180 2967 331 conicto +3016 34 lineto +1795 -253 540 -389 conicto +496 -83 lineto +953 -34 1338 24 conicto +1338 705 lineto +914 516 277 340 conicto +1338 2378 moveto +754 2155 268 2009 conicto +151 2315 lineto +803 2515 1338 2714 conicto +1338 3925 lineto +1702 3925 lineto +1702 1761 lineto +1338 1761 lineto +1338 2378 lineto +end_ol grestore +0.070000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 6.000000 7.000000 m 7.000000 7.000000 6.000000 9.000000 7.000000 9.000000 c s +0.070000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 7.000000 9.000000 m 6.000000 9.000000 7.000000 11.000000 6.000000 11.000000 c s +gsave 1.983750 6.221250 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 2.335919 6.221250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 2.583180 6.221250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 2.977806 6.221250 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 3.369935 6.221250 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 3.619702 6.221250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave -3.766250 12.211906 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave -3.414081 12.211906 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave -3.021952 12.211906 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave -2.614833 12.211906 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 2.225000 14.211906 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 2.632119 14.211906 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 3.036733 14.211906 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 3.368918 14.211906 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave -3.766250 17.221250 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave -3.414081 17.221250 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave -3.021952 17.221250 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave -2.614833 17.221250 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 2.225000 19.211906 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 2.632119 19.211906 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 3.036733 19.211906 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 3.368918 19.211906 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +0.150000 slw +[1.000000 0.400000 0.200000 0.400000] 0 sd +[0.400000 0.160000 0.080000 0.160000] 0 sd +0 slc +n 6.000000 22.000000 m 6.000000 24.000000 l s +0.150000 slw +[0.400000 0.160000 0.080000 0.160000] 0 sd +[0.400000 0.160000 0.080000 0.160000] 0 sd +0 slc +n 0.000000 21.000000 m 0.000000 24.000000 l s +0.150000 slw +[0.400000 0.160000 0.080000 0.160000] 0 sd +[0.400000 0.160000 0.080000 0.160000] 0 sd +0 slc +n -6.000000 20.000000 m -6.000000 24.000000 l s +showpage diff -r 30c102343b37 -r dfb89e32eea1 figures/gcc-repository.pdf Binary file figures/gcc-repository.pdf has changed diff -r 30c102343b37 -r dfb89e32eea1 figures/tree-example.dia Binary file figures/tree-example.dia has changed diff -r 30c102343b37 -r dfb89e32eea1 figures/tree-example.eps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figures/tree-example.eps Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,2505 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/kent/WorkSpace/Mercurial/master-paper/figures/tree-example.dia +%%Creator: Dia v0.97 +%%CreationDate: Fri Feb 5 22:58:16 2010 +%%For: kent +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 641 570 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E +/F /G /H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c +/d /e /f /g /h /i /j /k /l /m +/n /o /p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +10.550000 -27.050000 translate +%%EndProlog + + +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 0.000000 8.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 0.000000 8.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 0.000000 8.000000 1.000000 1.000000 0 360 ellipse cp s +gsave -0.912500 7.811906 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave -0.687712 7.811906 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave -0.283098 7.811906 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 0.121516 7.811906 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 0.473685 7.811906 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave -0.793750 8.611906 translate 0.035278 -0.035278 scale +start_ol +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +896 2304 moveto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +end_ol grestore +gsave -0.386631 8.611906 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 0.005498 8.611906 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 0.412618 8.611906 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 0.000000 11.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 0.000000 11.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 0.000000 11.000000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 8.500000 11.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 8.500000 11.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 8.500000 11.000000 1.000000 1.000000 0 360 ellipse cp s +gsave -0.440000 11.221250 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave -0.215212 11.221250 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 0.176917 11.221250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 7.522500 11.221250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 7.769761 11.221250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 8.164387 11.221250 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 8.414154 11.221250 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 8.818768 11.221250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 9.071032 11.221250 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -9.500000 16.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -9.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -9.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -8.500000 13.500000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -8.500000 13.500000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -8.500000 13.500000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -7.500000 16.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -7.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -7.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +gsave -9.588750 16.221250 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave -8.660000 13.743750 translate 0.035278 -0.035278 scale +start_ol +292 1814 moveto +292 2164 lineto +2140 2164 lineto +2140 1814 lineto +292 1814 lineto +292 803 moveto +292 1153 lineto +2140 1153 lineto +2140 803 lineto +292 803 lineto +end_ol grestore +gsave -7.660000 16.243750 translate 0.035278 -0.035278 scale +start_ol +817 3511 moveto +983 3599 1216 3599 conicto +1449 3599 1614 3511 conicto +1780 3424 1901 3220 conicto +2023 3016 2081 2658 conicto +2140 2301 2140 1775 conicto +2140 1250 2081 892 conicto +2023 535 1901 330 conicto +1780 126 1614 38 conicto +1449 -49 1216 -49 conicto +983 -49 817 38 conicto +652 126 530 330 conicto +409 535 350 892 conicto +292 1250 292 1775 conicto +292 2301 350 2658 conicto +409 3016 530 3220 conicto +652 3424 817 3511 conicto +691 1211 moveto +1644 2860 lineto +1518 3259 1216 3259 conicto +1041 3259 924 3132 conicto +807 3006 739 2670 conicto +671 2335 671 1775 conicto +671 1532 691 1211 conicto +769 754 moveto +895 292 1216 292 conicto +1391 292 1508 418 conicto +1625 545 1693 880 conicto +1761 1216 1761 1775 conicto +1761 2150 1732 2422 conicto +769 754 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 0.000000 9.049561 m 0.000000 9.950439 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -1.006989 11.296173 m -7.493011 13.203827 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -8.110107 14.474731 m -7.889893 15.025269 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -8.889893 14.474731 m -9.110107 15.025269 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 3.500000 13.500000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 3.500000 13.500000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 3.500000 13.500000 1.000000 1.000000 0 360 ellipse cp s +gsave 3.201250 13.321250 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 3.378579 13.321250 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 3.568401 13.321250 translate 0.035278 -0.035278 scale +start_ol +256 1536 moveto +1536 1536 lineto +1536 1152 lineto +256 1152 lineto +256 1536 lineto +end_ol grestore +gsave 2.850000 14.121250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 3.244626 14.121250 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 3.421955 14.121250 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 3.754139 14.121250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 0.851074 11.607910 m 2.648926 12.892090 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 6.500000 16.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 6.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 6.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 10.500000 16.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 10.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 10.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +gsave 5.843750 15.811906 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 6.093517 15.811906 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 6.355768 15.811906 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 6.760382 15.811906 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 5.706250 16.611906 translate 0.035278 -0.035278 scale +start_ol +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +896 2304 moveto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +end_ol grestore +gsave 6.113369 16.611906 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 6.505498 16.611906 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 6.912618 16.611906 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 9.738750 15.811906 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 9.963538 15.811906 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 10.355667 15.811906 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 10.532996 15.811906 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 10.865180 15.811906 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 9.706250 16.611906 translate 0.035278 -0.035278 scale +start_ol +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +896 2304 moveto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +end_ol grestore +gsave 10.113369 16.611906 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 10.505498 16.611906 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 10.912618 16.611906 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 9.250000 23.250000 1.250000 1.250000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 9.250000 23.250000 1.250000 1.250000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 9.250000 23.250000 1.250000 1.250000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 2.500000 16.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 2.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 2.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 8.500000 13.500000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 8.500000 13.500000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 8.500000 13.500000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 3.110107 14.474731 m 2.889893 15.025269 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 1.000000 18.500000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 1.000000 18.500000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 1.000000 18.500000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 3.500000 18.500000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 3.500000 18.500000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 3.500000 18.500000 1.000000 1.000000 0 360 ellipse cp s +gsave 2.180000 16.243750 translate 0.035278 -0.035278 scale +start_ol +292 1814 moveto +292 2164 lineto +2140 2164 lineto +2140 1814 lineto +292 1814 lineto +292 803 moveto +292 1153 lineto +2140 1153 lineto +2140 803 lineto +292 803 lineto +end_ol grestore +gsave 2.499699 16.243750 translate 0.035278 -0.035278 scale +start_ol +292 1814 moveto +292 2164 lineto +2140 2164 lineto +2140 1814 lineto +292 1814 lineto +292 803 moveto +292 1153 lineto +2140 1153 lineto +2140 803 lineto +292 803 lineto +end_ol grestore +gsave 3.296250 18.721250 translate 0.035278 -0.035278 scale +start_ol +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +896 2304 moveto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +end_ol grestore +gsave 0.680000 18.743750 translate 0.035278 -0.035278 scale +start_ol +1897 3453 moveto +1031 3453 lineto +1031 -389 lineto +1897 -389 lineto +1897 -681 lineto +681 -681 lineto +681 3745 lineto +1897 3745 lineto +1897 3453 lineto +end_ol grestore +gsave 0.999699 18.743750 translate 0.035278 -0.035278 scale +start_ol +535 3453 moveto +535 3745 lineto +1751 3745 lineto +1751 -681 lineto +535 -681 lineto +535 -389 lineto +1401 -389 lineto +1401 3453 lineto +535 3453 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -0.500000 21.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -0.500000 21.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -0.500000 21.000000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 2.000000 21.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 2.000000 21.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 2.000000 21.000000 1.000000 1.000000 0 360 ellipse cp s +gsave -0.696250 21.221250 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 1.911250 21.221250 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 1.960205 16.899658 m 1.539795 17.600342 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 2.889893 16.974731 m 3.110107 17.525269 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 0.460205 19.399658 m 0.039795 20.100342 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 1.389893 19.474731 m 1.610107 20.025269 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 4.306396 14.171997 m 5.693604 15.328003 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 4.488647 13.853088 m 9.511353 15.646912 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 0.990387 8.349548 m 7.509613 10.650452 l s +gsave 7.738750 13.721250 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 7.963538 13.721250 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 8.355667 13.721250 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 8.532996 13.721250 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 8.865180 13.721250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 8.500000 12.049561 m 8.500000 12.500000 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 6.500000 18.500000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 6.500000 18.500000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 6.500000 18.500000 1.000000 1.000000 0 360 ellipse cp s +gsave 5.522500 18.721250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 5.769761 18.721250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 6.164387 18.721250 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 6.414154 18.721250 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +end_ol grestore +gsave 6.818768 18.721250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 7.071032 18.721250 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 6.500000 21.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 6.500000 21.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 6.500000 21.000000 1.000000 1.000000 0 360 ellipse cp s +gsave 5.950000 21.221250 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 6.302169 21.221250 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 6.694298 21.221250 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 6.871626 21.221250 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 6.500000 19.549561 m 6.500000 20.000000 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 6.500000 17.049561 m 6.500000 17.500000 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 5.000000 23.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 5.000000 23.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 5.000000 23.000000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 8.000000 26.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 8.000000 26.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 8.000000 26.000000 1.000000 1.000000 0 360 ellipse cp s +gsave 4.887500 23.221250 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 7.796250 26.221250 translate 0.035278 -0.035278 scale +start_ol +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +896 2304 moveto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +end_ol grestore +gsave 8.407500 23.071250 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 8.814619 23.071250 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 9.206748 23.071250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 9.469000 23.071250 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 9.861129 23.071250 translate 0.035278 -0.035278 scale +start_ol +256 1536 moveto +1536 1536 lineto +1536 1152 lineto +256 1152 lineto +256 1536 lineto +end_ol grestore +gsave 8.121250 23.871250 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 8.743161 23.871250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 9.137787 23.871250 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 9.387554 23.871250 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 9.782180 23.871250 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 10.044432 23.871250 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 5.869934 21.840088 m 5.630066 22.159912 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 7.312714 21.664948 m 8.243927 22.426849 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 8.712280 24.432983 m 8.432129 25.049316 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -0.500000 16.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -0.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -0.500000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -0.500000 13.500000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -0.500000 13.500000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -0.500000 13.500000 1.000000 1.000000 0 360 ellipse cp s +gsave -0.588750 16.221250 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave -0.820000 13.733469 translate 0.035278 -0.035278 scale +start_ol +1415 2700 moveto +1415 1659 lineto +2140 1659 lineto +2140 1308 lineto +1415 1308 lineto +1415 268 lineto +1017 268 lineto +1017 1308 lineto +292 1308 lineto +292 1659 lineto +1017 1659 lineto +1017 2700 lineto +1415 2700 lineto +end_ol grestore +gsave -0.500301 13.733469 translate 0.035278 -0.035278 scale +start_ol +1415 2700 moveto +1415 1659 lineto +2140 1659 lineto +2140 1308 lineto +1415 1308 lineto +1415 268 lineto +1017 268 lineto +1017 1308 lineto +292 1308 lineto +292 1659 lineto +1017 1659 lineto +1017 2700 lineto +1415 2700 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -0.500000 14.550110 m -0.500000 14.949890 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -5.000000 16.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -5.000000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -5.000000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -4.000000 13.500000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -4.000000 13.500000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -4.000000 13.500000 1.000000 1.000000 0 360 ellipse cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -3.000000 16.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n -3.000000 16.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n -3.000000 16.000000 1.000000 1.000000 0 360 ellipse cp s +gsave -5.088750 16.221250 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave -4.160000 13.743750 translate 0.035278 -0.035278 scale +start_ol +2116 2481 moveto +511 1488 lineto +511 1479 lineto +2116 486 lineto +2116 97 lineto +268 1289 lineto +268 1678 lineto +2116 2870 lineto +2116 2481 lineto +end_ol grestore +gsave -3.202500 16.221250 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -3.610107 14.474731 m -3.389893 15.025269 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -4.389893 14.474731 m -4.610107 15.025269 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -0.205566 12.027832 m -0.294434 12.472168 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -0.882812 11.551758 m -3.117188 12.948242 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 11.000000 26.000000 1.000000 1.000000 0 360 ellipse f +0.000000 0.000000 0.000000 srgb +n 11.000000 26.000000 1.000000 1.000000 0 360 ellipse cp s +0 slc +0 slj +[] 0 sd +n 11.000000 26.000000 1.000000 1.000000 0 360 ellipse cp s +gsave 10.911250 26.221250 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 9.947693 24.346375 m 10.437744 25.116455 l s +showpage diff -r 30c102343b37 -r dfb89e32eea1 figures/tree-example.pdf Binary file figures/tree-example.pdf has changed diff -r 30c102343b37 -r dfb89e32eea1 gcc.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc.tex Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,189 @@ +\chapter{GNU コンパイラ コレクション} +\label{chp:gcc} + +GNU コンパイラ コレクション(以下GCC)はフリーソフトウェア財団によって +管理されているオープンソースのコンパイラ群である。 +C, C++, Java, FORTRANなどの様々な言語に対応しており、UNIX系OSの標準的 +なコンパイラとして用いられている。 + +本研究におけるCbCコンパイラの実装対象もこのGCCとなる。本章では実装に当 +たる予備知識としてGCCのプログラム構成について簡単に説明する。 + + +\section{ソースコードからアセンブラへ} + +GCCはコンパイルだけでなく、出力したアセンブラのアセンブル、リンクまで +行い、最終的に実行ファイルを出力する。このコンパイル、アセンブル、リン +クはそれぞれcc1, as, collect2というプログラムが行っており、GCCは実際に +はその統括をしているだけである。 + +言語に関する処理はcc1だけである。ここではこのプログラムがどのようにソ +ースコードをアセンブラに変換するかを説明する。 + +\subsection{cc1} + +GCCではプログラムソースコードをアセンブラに変換する過程で Generic, +GIMPLE, RTL という3つの内部表現を用いている。 +これらの内部表現とソースコード、アセンブラ間の変換はフロントエンド、ミ +ドルエンド、バックエンドが担当している。図\ref{fig:gcc-flow}にその様子 +を示す。 +\begin{figure}[htpb] + \begin{center} + \includegraphics[width=.8\textwidth]{figures/gcc-flow.eps} + \end{center} + \caption{GCC} + \label{fig:gcc-flow} +\end{figure} + + +\subsection{フロントエンドとGeneric, GIMPLE} + +フロントエンドはコンパイラ中で直接ソースコードを解析するルーチンのこと +である。ソースコードの解析はコンパイルする言語毎に異なるため、フロント +エンドの実装もC, C++, Javaなどで様々である。言語によって異なるソースコ +ードを解析し、その結果をGenericという構文木(プログラムの構造を表すデー +タ構造)に変換するのがフロントエンドの役割となる。 + +構文木Genericは関数の宣言や繰返し制御構造、条件分岐、リターン文など、 +プログラムの構造を全てツリー構造で表現することができる。 +この構文木は言語に依存しないため、言語設計者は通常はミドルエンド以降に +ついては考慮する必要はない。 + +構文木がプログラムをデータ構造として表す様子を図 +\ref{fig:tree-example}に示した。この図はコード\ref{code:tree-example} +の関数\verb|funcA|を解析した結果を構文木で表現している。 + +\begin{figure}[htpb] + \lstinputlisting + [caption=C言語の解析例(解析結果は図\ref{fig:tree-example}), + label=code:tree-example] + {sources/tree-example.c} + \begin{center} + \includegraphics[width=.8\textwidth]{figures/tree-example.eps} + \end{center} + \caption{コード\ref{code:tree-example}の構文木の例} + \label{fig:tree-example} +\end{figure} +図のように、一般的なコンパイラでは\verb|#include|などのディレクティブ +を除くソースコードの全てを構文木で表現する。これによりプログラムの文脈 +をコンパイラが理解し、それぞれのブロック毎にアセンブラへの変換が可能に +なる。 + +フロントエンドではGenericを生成した後、ミドルエンドにデータを渡す前に +GenericをGIMPLEと呼ばれるデータ構造に変換する。GIMPLEはデータ構造とし +ては Genericと同じであるが、一つの枝に4つ以上の子がついてはいけないな +どの制限が付加されている。この制限はミドルエンド以降での解析を容易にし +、また種々の最適化はこのGIMPLEを対象として行われている。 + + +\subsection{ミドルエンドとRTL} + +GCCは構文木GIMPLEの生成後、このGIMPLEを解析しながらRTLと呼ばれる中間コ +ードを生成する。このRTLはアセンブラとほぼ同等の命令列を表現可能であり +、どのアーキテクチャでも同じように扱われる。また、GIMPLEにも言語の依存 +はないため、このミドルエンドは言語にもアーキテクチャにも依存しない、全 +てのGCCコンパイラに共通のルーチンとなっている。 + +しかしながらアーキテクチャに依存した形にRTLを作ることは可能であり、特 +に最適化に関するRTL生成はアーキテクチャ依存であることが多い。ただしそ +の場合はアーキテクチャが対応してるか否かを判別するため、次項に紹介する +Machine Descriptionが使われるため、共通のミドルエンドが使われることに +変わりはない。 + +RTLはプログラム上は構造体として扱われるが、デバグ表示や次のバックエン +ドで使うMachine Descriptionのため、S式を用いた表現が用いられている。 +例として、ある仮想レジスタに直接値20を乗算する命令を表すRTLのS式表現 +は以下のようになる。 + +\begin{lstlisting}[caption=レジスタに20を乗算する命令のRTL表現例, + label=code:rtl-example,language=Lisp] +(set (reg/f:SI 54 virtual-stack-vars) + (mult:SI (reg:SI 58) + (const_int 20 [0x14]))) +\end{lstlisting} + +この例では\verb|(reg:SI 58)|で表される仮想レジスタの値と定数20との積を +、\verb|(reg/f:SI 54)|で表されるレジスタにセットしている。 +ミドルエンドではGIMPLEを元にこの様なRTLの命令列を作成し、バックエンド +に処理を引き渡している。 + + +\subsection{バックエンドとMachine Description} + +バックエンドでは、ミドルエンドで生成されたRTLを元にアセンブラを出力し +ている。このバックエンドでは必然的にターゲットとするアーキテクチャによ +り処理が異なるため、このバックエンドはアーキテクチャ毎に用意されること +になる。 +アーキテクチャ毎に異なるRTLの変換規則を記述したものがMachine +Description(以下md)である。 mdはGCCの対応する全てのアーキテクチャに +それぞれ用意されており、バックエンドはこれを元にアセンブラを生成する。 + +このmdはRTLと同じくS式で表現され、RTLの変換のために次の要素を定義する +必要がある。 +\begin{itemize} + \item その変換規則の名前 + + GCCのプログラムから関数として呼び出すための名前である + \item 変換するRTLの構造(パターンマッチ) + + この規則がどのようなRTLを変換できるかを表す + \item 変換する条件 + + 上記のパターンだけでは判別できない時の追加条件をCの構文で記述 + \item 出力するアセンブラ + + Cの文字列か、もしくは文字列を出力するCの構文 +\end{itemize} + +例としてARMアーキテクチャにおけるmdを一つ、コード +\ref{code:md-example}に示す。このmdはコード\ref{code:rtl-example}で紹 +介した乗算命令のRTLにマッチし、アセンブラ``\verb|mul r0 r2 r1|'' を出 +力する。 +2行目の要素がマッチするRTLのパターンで、コード\ref{code:rtl-example}と +形が似ていることが分かる。 +3行目が条件である。バックエンドプログラムの変数などをチェックしている。 +そして4行目が出力するアセンブラである。ここでは``\verb|%?|''や +``\verb|%2|''を使い、 printf関数と似たような書式変換を行っている。 + +\begin{lstlisting}[caption=ARMでのMachine Descriptionの例 + (コード\ref{code:rtl-example}をアセンブラに変換), + label=code:md-example,language=Lisp] +(define_insn "*arm_mulsi3" + [(set (match_operand:SI 0 "s_register_operand" "=&r,&r") + (mult:SI (match_operand:SI 2 "s_register_operand" "r,r") + (match_operand:SI 1 "s_register_operand" "%?r,0")))] + "TARGET_32BIT && !arm_arch6" + "mul%?\\t%0, %2, %1") +\end{lstlisting} + + +\subsection{最適化パス} +最適化はGCCの中でももっとも重要な機能の一つといえる。 +様々な最適化の手法がGCCにおいて実装され、実用化されている。 + +GCCではこの最適化は2つフェーズに分類される。 +一つはGIMPLEを対象とした最適化である。 +このGIMPLEは、アーキテクチャはもちろん言語仕様にも依存しないため、どの +コンパイラにおいてもこの最適化を適用することができる。 +この最適化はミドルエンドで行われる。 + +もう一つはRTLを対象とした最適化である。 +RTLのデータ構造自体は言語にもアーキテクチャにも依存はないが、最適化に +はレジスタの数やスタックの操作法などに依存する事が多いため、この最適化 +ではいくつかの制限が入る。 +こちらはバックエンドでの実装である。 + +次章で説明するが、本研究では軽量継続の実装にGIMPLE対象の最適化である末 +尾呼び出し最適化を利用している。そのため、CbCの言語実装であるがミドル +エンドの修正も行っている。 + + +\subsection{GCC} + +以上のようにGCCはフロントエンド、ミドルエンド、バックエンドがそれぞれ +の役割を持ち、全体を通して最終的にアセンブラの生成を行う。 + +GCCではこのようにアセンブラを出力した後、アセンブル、リンクまでを行う。 +しかしそれらは本研究では関連しないので説明は割愛する。 + + diff -r 30c102343b37 -r dfb89e32eea1 implementation.tex --- a/implementation.tex Sat Feb 06 18:28:43 2010 +0900 +++ b/implementation.tex Mon Feb 08 00:35:58 2010 +0900 @@ -1,4 +1,3 @@ - \chapter{GCCにおける実装・改善} \label{chp:impl} @@ -426,22 +425,23 @@ \subsection{プロトタイプ自動生成} \label{sec:prototype} -Cのプロトタイプ宣言はコンパイル時のエラー検出に役立っている。 -しかしCbCのコードセグメントには返り値は存在しない。また状態遷移記 -述という性質上、プログラムを記述する際は上から下に実行順にコードセ -グメントを並べることが多いため、プロトタイプ宣言をするとそれが膨大 -な数になる。 +Cのプロトタイプ宣言はコンパイル時のエラー検出に役立っている。しかしCbC +のコードセグメントには返り値は存在しない。また状態遷移記述という性質上 +、プログラムを記述する際は上から下に実行順にコードセグメントを並べるこ +とが多いため、プロトタイプ宣言をするとそれが膨大な数になる。 また、mcベースコンパイラの方ではプロトタイプ宣言を減らすため、一種の簡 単な型推論を実装している。そのためこれまでに作られたCbCのプログラムで は特殊な場合を除いてプロトタイプ宣言がほとんどなく、GCCでコンパイルす る際に問題となる。 -この問題に暫定的に対処するため、Pythonを用いてプロトタイプの自動生成を -行うスクリプトを作成した。このスクリプトでは関数の定義部を正規表現で検 -索し、マッチする部分を変換して関数宣言として出力する。 +これらの問題に暫定的に対処するため、Pythonを用いてプロトタイプの自動生 +成を行うスクリプトを作成した。このスクリプトでは関数の定義部を正規表現 +で検索し、マッチする部分を変換して関数宣言として出力する。 +全コードは付録\ref{apx:make-prototype}に掲載する。 -全コードは付録\ref{apx:make-prototype}に掲載する。 +このプトロタイプ自動生成により、これまでに作られたCbCのプログラムとの +互換性が確保できた。 % TODO: prototype declaration diff -r 30c102343b37 -r dfb89e32eea1 introduction.tex --- a/introduction.tex Sat Feb 06 18:28:43 2010 +0900 +++ b/introduction.tex Mon Feb 08 00:35:58 2010 +0900 @@ -73,11 +73,17 @@ %\ref{chp:cbc}にてContinuation based Cの要求仕様と詳細について説明する。 %\ref{chp:impl}章ではgccへの実装方法を説明する。 -% TODO: 整理せい +次章以降、本論文では本研究での成果を報告する。 + +\ref{chp:cbc}章ではまずCbCについてその言語仕様から説明し、また現時点で +のCbCコンパイラの問題点を挙げる。 -次章以降、本稿は\ref{chp:cbc}章にてCbCについて説明する。 -\ref{chp:impl}章にてgccへの実装について説明、 -\ref{chp:task}章ではCbCを用いたプログラムの実例としてTaskManagerを挙げ、 -\ref{chp:impl}章,\ref{chp:task}の評価を\ref{chp:eval}章で行う。 -最後に\ref{chp:concl}章をもってまとめとする。 +\ref{chp:gcc}章では本研究での移植対象であるGNU コンパイラコレクション +の構造について、簡単に説明する。 +\ref{chp:impl}章は実際の実装方法、改善の手法を説明し、これらの結果の評 +価を\ref{chp:eval}で行う。 + +最後に、本研究での成果と今後の課題を\ref{chp:conc}で述べ、本論文のまと +めとする。 + diff -r 30c102343b37 -r dfb89e32eea1 memo.txt --- a/memo.txt Sat Feb 06 18:28:43 2010 +0900 +++ b/memo.txt Mon Feb 08 00:35:58 2010 +0900 @@ -193,11 +193,21 @@ - 継続制御, 軽量継続 - 当研究室、本論文 o 要旨 - o まとめ - o 論文構成 + o 今後の課題 o 先行研究、分散プログラミング - o 最適化パス +分散プログラミング + o 分散プログラミングには様々な手法がある + - APIを呼び出す原始的な手法 + - SOAPなどのライブラリ + - 言語仕様への埋め込み + - Objectメソッド呼び出しの規格化 + o それぞれの手法は複雑なセマンティクスを定義する + o 通信の複雑なセマンティクスをCbCによって直接記述する + + + + diff -r 30c102343b37 -r dfb89e32eea1 ragged2e.sty diff -r 30c102343b37 -r dfb89e32eea1 sources/make-prototype.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/make-prototype.py Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,121 @@ +#!/usr/bin/env python3.0 + +import sys +import re +import getopt + +reserved_words = [ "if", "for", "switch", "return", "while", "else", ] + +PATTERN = "([a-zA-Z_][\w\s]*\**)\s([a-zA-Z_]\w*)\s*\(([^{/;]*)\)\s*\{" +PROG = re.compile(PATTERN, re.S) + +omit_static=False +add_extern="" + +def truncate_comments(data): + pass + +def check_reserved_word(decl): + """ return true if decl's type and name is not reserved word. """ + + if decl["name"] in reserved_words or decl["type"] in reserved_words: + return False + return True + +def read_decls(file): + declarators = [] + + # open the file and read all lines into a string. + try: + fo = open(file, 'r') + lines = fo.readlines() + data = "".join(lines) + truncate_comments(data) + except IOError: + print("cannot read file %s" % file) + return None + + # find all matched strings. + # moiter is iterator of MatchObject. + moiter = PROG.finditer(data) + for mo in moiter: + tmp = { "type": mo.group(1), + "name": mo.group(2), + "parms": mo.group(3), + "offset": mo.start() } + if check_reserved_word(tmp): + declarators.append(tmp) + + return declarators + +def debug_print(decl): + for (key,value) in list(decl.items()): + if isinstance(value, str): + decl[key] = value.replace("\n"," ").replace("\t"," ") + + print("Type:\t{0:s}".format(decl["type"])) + print("Name:\t{0:s}".format(decl["name"])) + print("Params:\t{0:s}".format(decl["parms"])) + print("offset:\t{0:d}".format(decl["offset"])) + print("") + +def format_print(decl, file): + for (key,value) in list(decl.items()): + if isinstance(value, str): + decl[key] = value.replace("\n"," ").replace("\t"," ") + + print("/* defined in file {0:s} at offset {1:d} */".format(file,decl["offset"])) + print("{3:s}{0:s} {1:s} ({2:s});".format(decl["type"],decl["name"],decl["parms"], add_extern)) + print("") + +def getoptions(): + global omit_static, add_extern + + try: + opts, args = getopt.getopt(sys.argv[1:], 'se', [ 'omit-static', 'add-extern' ]) + except getopt.GetoptError as err: + print(err) + usage() + sys.exit(2) + + for opt,a in opts: + if opt in ("-s", "--omit-static"): + omit_static=True + elif opt in ("-e", "--add-extern"): + add_extern="extern " + else: + print("unhandled option {0}".format(opt)) + usage() + + return args + +def usage(): + print( """\ +Usage: {0:s} OPION... [FILE]... +OPTIONS: + -s, --omit-static omit static functions + -e, --add-extern add extern to all function declarations + """.format(sys.argv[0])) + +def main(): + + # option handling. + args = getoptions() + + for file in args: + # read function declaration from each file. + decls = read_decls(file) + if decls==None or len(decls)==0: + # no function found. + print("{0} have no function definition!".format(file)) + continue + + for decl in decls: + if omit_static and 0 <= decl["type"].find("static"): + # static function is ignored. + continue + #debug_print(decl) + format_print(decl, file) + +main() + diff -r 30c102343b37 -r dfb89e32eea1 sources/md-example.md --- a/sources/md-example.md Sat Feb 06 18:28:43 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ - -(define_insn "*sibcall_indirect_nonlocal_sysv" - [(call (mem:SI (match_operand:P 0 "register_operand" "c,*l,c,*l")) - (match_operand 1 "" "g,g,g,g")) - (use (match_operand:SI 2 "immediate_operand" "O,O,n,n")) - (use (reg:SI LR_REGNO)) - (return)] - "DEFAULT_ABI == ABI_V4 - || DEFAULT_ABI == ABI_DARWIN" -{ - /* - if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) - output_asm_insn ("crxor 6,6,6", operands); - - else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS) - output_asm_insn ("creqv 6,6,6", operands); - */ - - return "b%T0"; -} - [(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg") - (set_attr "length" "4,4,8,8")]) diff -r 30c102343b37 -r dfb89e32eea1 sources/md-for-indirect.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/md-for-indirect.md Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,20 @@ + +(define_insn "*sibcall_indirect_nonlocal_sysv" + [(call (mem:SI (match_operand:P 0 "register_operand" "c,*l,c,*l")) + (match_operand 1 "" "g,g,g,g")) + (use (match_operand:SI 2 "immediate_operand" "O,O,n,n")) + (use (reg:SI LR_REGNO)) + (return)] + "DEFAULT_ABI == ABI_V4 + || DEFAULT_ABI == ABI_DARWIN" +{ + if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) + output_asm_insn ("crxor 6,6,6", operands); + + else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS) + output_asm_insn ("creqv 6,6,6", operands); + + return "b%T0"; +} + [(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg") + (set_attr "length" "4,4,8,8")]) diff -r 30c102343b37 -r dfb89e32eea1 sources/rtl-indirecttailcall.rtl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/rtl-indirecttailcall.rtl Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,13 @@ +(call_insn/j 25 24 0 (parallel [ + (call (mem:SI (reg/f:SI 129) [0 S4 A8]) + (const_int 256 [0x100])) + (use (const_int 0 [0x0])) + (use (reg:SI 130)) + (return) + ]) -1 (nil) + (nil) + (expr_list:REG_DEP_TRUE (use (reg:SI 6 r6)) + (expr_list:REG_DEP_TRUE (use (reg:SI 5 r5)) + (expr_list:REG_DEP_TRUE (use (reg:SI 4 r4)) + (expr_list:REG_DEP_TRUE (use (reg:SI 3 r3)) + (nil)))))) diff -r 30c102343b37 -r dfb89e32eea1 sources/tree-example.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/tree-example.c Mon Feb 08 00:35:58 2010 +0900 @@ -0,0 +1,11 @@ +bool +funcA(char a, char *b, int n) { + int i; + + for (i=0; i