# HG changeset patch # User sugi # Date 1364748731 -32400 # Node ID ddd5a624bb7a0a128219ccb800c851f5c797f120 # Parent 484bf45ca3ee2d4247adde4b6418685d136105aa add image flies diff -r 484bf45ca3ee -r ddd5a624bb7a .DS_Store Binary file .DS_Store has changed diff -r 484bf45ca3ee -r ddd5a624bb7a alice.tex --- a/alice.tex Sun Mar 31 16:35:18 2013 +0900 +++ b/alice.tex Mon Apr 01 01:52:11 2013 +0900 @@ -5,9 +5,15 @@ \subsection{Data Segment API} Data Segmentは数値や文字列などのデータ構造体的に保持するが、Data Segmentの相互参照が問題になる。AliceはData Segmentをデータベース的に扱い、またData Segmentは必ずuniqueなKeyをもつ。つまりKey Value Storeとして考えることができる。Key毎にキューがあり、Key毎に順に実行される。Key毎の追加と取得は、Lindaに準じた設計となっている。 -Data Segmentを管理するのがData Segment Manager(以下DSM)である。ノード毎にLocal DSMとRemote DSMが存在する。Local DSMはノード固有のKey Value Storeと考えることができる。Remote DSMは他のノードのLocal DSMのproxyである。AliceのトポロジーマネージャーがRemote DSMを自動的に構成する。 +Data Segmentを管理するのがData Segment Manager(以下DSM)である。ノード毎にLocal DSMとRemote DSMが存在する。Local DSMはノード固有のKey Value Storeと考えることができる。Remote DSMは他のノードのLocal DSMのproxyである。(図 \ref{fig:proxy})AliceのトポロジーマネージャーがRemote DSMを自動的に構成する。 Key Value Storeへのアクセスはキューによって、ノード内部で逐次化される。それ以外は、すべてJavaのThread poolにより並列実行される。 - +\begin{figure}[tb] +\begin{center} +\scalebox{1.2}{\includegraphics{images/remote_datasegment.pdf}} +\end{center} +\caption{Remote DSMは他のノードの Local DSMのproxy} +\label{fig:proxy} +\end{figure} 以下が用意されているData Segment APIである。これらを用いてData Segmentの送受信を行う。 \begin{itemize} \item \verb+void put(String key, Value val)+ @@ -16,16 +22,58 @@ \item \verb+void take(Receiver receiver, String key)+ \end{itemize} \subsubsection{put} -\verb+put+ はData Segmentを追加するための API である。Key Value Storeのキューに追加される。 +\verb+put+ はデータを追加するための API である。Key Value Storeのキューに追加される。 (図 \ref{fig:put}) + +\begin{figure}[tb] +\begin{center} +\scalebox{1.2}{\includegraphics{images/put.pdf}} +\end{center} +\caption{putはデータを追加する} +\label{fig:put} +\end{figure} \subsubsection{update} -\verb+update+ はData Segmentを更新するためのAPIである。キューの先頭を置き換える。 +\verb+update+ はデータを更新するためのAPIである。キューの先頭を置き換える。 +(図 \ref{fig:update}) + + +\begin{figure}[tb] +\begin{center} +\scalebox{1.2}{\includegraphics{images/update.pdf}} +\end{center} +\caption{updateはキューの先頭を書き換える} +\label{fig:update} +\end{figure} + \subsubsection{peek} -peek はData Segmentを取得する。Data Segmentが無ければCode Segmentの待ち合わせが起きる。 +peek はデータを取得する。(図 \ref{fig:peek})Data Segmentが無ければCode Segmentの待ち合わせが起きる。(図 \ref{fig:no_peek}) put、updateによりData Segmentの更新があれば、peekが直ちに実行され、待ち合わせを行なっていたCode Segmentがactive queue に移される。 +\begin{figure}[tb] +\begin{center} +\scalebox{1.2}{\includegraphics{images/peek.pdf}} +\end{center} +\caption{peekはデータを取得する} +\label{fig:peek} +\end{figure} + +\begin{figure}[tb] +\begin{center} +\scalebox{1.2}{\includegraphics{images/peek1.pdf}} +\end{center} +\caption{希望のデータが無いときは保留する} +\label{fig:no_peek} +\end{figure} + \subsubsection{take} -takeもData Segmentを取得するためのAPIである。peekとの違いは取得されたData SegmentはKey Value Storeのキューから取り除かれる。 +takeもデータを取得するためのAPIである。(図 \ref{fig:take})peekとの違いは取得されたData SegmentはKey Value Storeのキューから取り除かれる。 +\begin{figure}[tp] +\begin{center} +\scalebox{1.2}{\includegraphics{images/take.pdf}} +\end{center} +\caption{take はデータを読み込む} +\label{fig:take} +\end{figure} \subsection{Data Segment } Data Segmentのデータの表現にはMessage Packを利用している。Message Packに関してJavaにおけるデータ表現は以下の3つあり、これらのデータ表現は制限を伴うが互いに変換可能である。 @@ -44,13 +92,60 @@ ユーザーが一般的なクラスをIDL(Interface Definition Language)のように用いてデータを表現することができる。 この場合、クラス宣言時に@Messageというアノテーションをつける必要がある。もちろん、MessagePackで扱うことのできるデータのみをフィールドに入れなければならない。 +\begin{table}[htbp] +\lstinputlisting[label=fig:MessagePackTest, caption=一般的なクラスをIDLのように使用]{source/MessagePackTest.java} +\end{table} + \subsection{Code Segment} Code Segmentはタスクのことである。Code Segmentをユーザーが記述するときにCode Segment内で使用するData Segmentの作成を記述する。Code SegmentにはInput Data SegmentとOutput Data Segmentを作るAPIが存在する。 Input Data Segmentで作成されたData SegmentはRemoteかLocalを指定する必要がある。 +実際にはsetKeyのメソッド時に指定するが、その他にどのData Segmentを取ってくるかを指定するキーを指定する。 Code Segmentがactiveになるためには、Input Data Segmentが全て揃う必要がある。 Output Data Segmentで作成されたData Segmentにも、RemoteかLocalを指定する。 +実際にはputまたはupdateメソッドを呼んだ時にRemote,Localを指定すると共にキーを指定する。 + +これらのInput/OutputがCode Segment間の依存関係を自動的に記述することになる。 + +\subsubsection{Code Segmentの実行方法} +Alice には、Start Code Segment (ソースコード \ref{fig:StartCodeSegment})というC の main に相当するような最初に実行される Code Segment がある。 +Start Code SegmentはどのData Segmentにも依存しない。つまりInput Data Segmentを持たない。 +このCode Segmentをmainメソッド内でnewし、executeメソッドを呼ぶことで実行を開始させることができる。(ソースコード \ref{fig:TestLocalAlice}) + +\begin{table}[tb] +\lstinputlisting[label=fig:TestLocalAlice, caption=Start Code Segmentを実行させる方法]{source/TestLocalAlice.java} +\end{table} + +\subsubsection{Code Segmentの記述方法} +Code Segmentをユーザーが記述する際にはCode Segmentを継承して記述する。(ソースコード \ref{fig:CodeSegment})そのCodeSegmentはInputDataSegmentManagerとOutputDataSegmentManagerを利用することができる。 + +InputDataSegmentManagerはCode Segmentの{\tt ids}というフィールドを用いてアクセスする。 + +\begin{table}[tb] +\lstinputlisting[label=fig:StartCodeSegment, caption=StartCodeSegmentの例]{source/StartCodeSegment.java} +\end{table} + +\begin{table}[tb] +\lstinputlisting[label=fig:CodeSegment, caption=CodeSegmentの例]{source/TestCodeSegment.java} +\end{table} + +\begin{itemize} +\item {\ttfamily Receiver create(CommandType type)} +\end{itemize} +createでコマンドが実行された際に取得されるData Segmentが格納される受け皿を作る。引数にはCommandTypeが取られ、指定できるCommandTypeは{\tt PEEK}または{\tt TAKE}である。 +\begin{itemize} +\item {\ttfamily void setKey(String managerKey, String key)} +\end{itemize} +setKeyメソッドにより、どこのData Segmentのあるkeyに対してpeekまたはtakeコマンドを実行させるかを指定することができる。 +コマンドの結果がレスポンスとして届き次第Code Segmentは実行される。 + +OutputDataSegmentManagerはCode Segmentの{\tt ods}というフィールドを用いてアクセスする。 +OutPutDataSegmentManagerは{\tt put}または{\tt update}を実行することができる。 +\begin{itemize} +\item {\ttfamily void put(String managerKey, String key, \\ Value val)} +\item {\ttfamily void update(String managerKey, String key, Value val)} +\end{itemize} \ No newline at end of file diff -r 484bf45ca3ee -r ddd5a624bb7a compare.tex --- a/compare.tex Sun Mar 31 16:35:18 2013 +0900 +++ b/compare.tex Mon Apr 01 01:52:11 2013 +0900 @@ -1,2 +1,13 @@ \section{実験} -\subsection{実験概要} \ No newline at end of file +\subsection{実験概要1} +SEDAの比較 +\subsection{実験概要2} +flipとputの比較 +\subsection{実験概要3} +bitonic sortの実験 + +\subsection{実験環境} + +\subsection{実験結果} + +\subsection{考察} \ No newline at end of file diff -r 484bf45ca3ee -r ddd5a624bb7a images/.DS_Store Binary file images/.DS_Store has changed diff -r 484bf45ca3ee -r ddd5a624bb7a images/jlisting.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/jlisting.sty Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,216 @@ +\NeedsTeXFormat{LaTeX2e} +\def\filedate{2006/02/20} +\def\fileversion{0.2} +\ProvidesPackage{jlisting}[\filedate\space\fileversion\space(Thor)] +% +\newcount\lst@nextchar +\let\lst@@ProcessSpace\lst@ProcessSpace +\def\lst@ProcessSpace#1{% + \lst@check@chartype{#1}% + \lst@@ProcessSpace + \lst@whitespacetrue} +\let\lst@@ProcessLetter\lst@ProcessLetter +\def\lst@ProcessLetter#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessLetter{#1}}% + \relax} +\let\lst@@ProcessDigit\lst@ProcessDigit +\def\lst@ProcessDigit#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessDigit{#1}}% + \relax} +\let\lst@@ProcessOther\lst@ProcessOther +\def\lst@ProcessOther#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessOther{#1}}% + \relax} +\let\lst@@ProcessTabulator\lst@ProcessTabulator +\def\lst@ProcessTabulator#1{% + \lst@check@chartype{#1}% + \lst@@ProcessTabulator + \relax} +\def\lst@check@chartype#1#2#3{% + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \afterassignment\remove@to@nnil + \@tempa\@nnil + #2% + \ifnum\lst@nextchar<\@cclvi + #3% + \else + \lst@ifletter \else \lst@OutputOther \fi + \lst@whitespacefalse + \expandafter\lst@AppendJchar + \fi + #1} +\def\lst@AppendJchar#1#2{% + \lst@check@chartype{#2}% + {\advance\lst@length\@ne\lst@Append{#1}}% + \relax} +\def\lst@check@chartype@BOL#1{% + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \afterassignment\remove@to@nnil + \@tempa\@nnil + \ifnum\lst@nextchar<\@cclvi\else + \lst@whitespacefalse + \expandafter\lst@AppendJchar + \fi + #1} +\def\lst@InputListing#1{% + \begingroup + \lsthk@PreSet \gdef\lst@intname{#1}% + \expandafter\lstset\expandafter{\lst@set}% + \lsthk@DisplayStyle + \catcode\active=\active + \lst@Init\relax \let\lst@gobble\z@ + \lst@SkipToFirst + \lst@ifprint \def\lst@next{\lst@get@filecontents{#1}}% + \else \let\lst@next\@empty + \fi + \lst@next + \lst@DeInit + \endgroup} +\newread\lst@inputfile +\def\lst@get@filecontents#1{% + \let\lst@filecontents\@empty + \openin\lst@inputfile=#1\relax + \let\@lst@get@filecontents@prevline\relax + \lst@get@filecontents@loop + \closein\lst@inputfile + \lst@filecontents\empty} +\def\lst@get@filecontents@loop{% + \read\lst@inputfile to\@lst@get@filecontents@currline + \ifx\@lst@get@filecontents@prevline\relax\else + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\lst@filecontents + \expandafter\expandafter\expandafter{% + \expandafter\lst@filecontents\@lst@get@filecontents@prevline}% + \fi + \let\@lst@get@filecontents@prevline\@lst@get@filecontents@currline + \ifeof\lst@inputfile\else + \expandafter\lst@get@filecontents@loop + \fi} +%%% [$B$3$N=hM}$b!$AjEv6/0z$G$9!%(B] +\def\lst@BOLGobble{% + \ifnum\lst@gobble>\z@ + \@tempcnta\lst@gobble\relax + \expandafter\lst@BOLGobble@ + \else + \expandafter\lst@check@chartype@BOL + \fi} +\def\lst@BOLGobble@#1{% + \let\lst@next#1% + \ifx \lst@next\relax\else + \ifx \lst@next\lst@MProcessListing\else + \ifx \lst@next\lst@ProcessFormFeed\else + \ifx \lst@next\lstenv@backslash + \let\lst@next\lstenv@BOLGobble@@ + \else + \let\lst@next\lst@BOLGobble@@ + \ifx #1\lst@ProcessTabulator + \advance\@tempcnta-\lst@tabsize\relax + \ifnum\@tempcnta<\z@ + \lst@length-\@tempcnta \lst@PreGotoTabStop + \fi + \else + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \@tempa + \ifnum\lst@nextchar<\@cclvi\else + \advance\@tempcnta\m@ne + \fi + \advance\@tempcnta\m@ne + \fi + \fi \fi \fi \fi + \lst@next} +\def\lst@BOLGobble@@{% + \ifnum\@tempcnta>\z@ + \expandafter\lst@BOLGobble@ + \else + \expandafter\lst@check@chartype@BOL + \fi +} +% +% \begin{$B=$@5;v9`(B}{1.3} +% $B$A$g$C$H$7$?=$@5(B +\gdef\lst@breakProcessOther#1{\lst@ProcessOther#1} +% $B%=!<%9%3!<%IL\:\$7$^$7$?!#(B + +\begin{quote} + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21172.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21184.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21189.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21197.html} +\end{quote} + + Copyright $B$O5H1JE/H~;a$K$"$k$N$@$H;W$$$^$9!%(B + +\section{$B99?7MzNr(B}% ChageLogs + +\begin{description} + \item[ver.~0.1 (2004/03/24)] + $B$H$j$"$($:8x3+!%(B + \item[ver.~0.2 (2006/02/20)] + \verb|\lst@breakProcessOther| $BL?Na$NDj5A$NDI2C!%(B +\end{description} + +\section{$B%=!<%9%3!<%I(B} +\par\narrowbaselines +\verbatiminput{jlisting.sty} +\end{document} diff -r 484bf45ca3ee -r ddd5a624bb7a images/peek.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/peek.graffle Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,1035 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGrafflePro + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {558.99997329711914, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-02-07 04:36:21 +0000 + Creator + Kazuki AKAMINE + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{230.88900000000001, 161}, {27, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 149 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 reply} + VerticalPad + 0 + + Wrap + NO + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 147 + Info + 3 + + ID + 148 + Points + + {248.88900000000001, 126.25} + {198.87100000000001, 210.5} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 123 + Info + 1 + + + + Bounds + {{148.87100000000001, 196.5}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 147 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{148.87100000000001, 182.5}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 146 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + Bounds + {{152.87100000000001, 161}, {43, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 145 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 receiver} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{140.38, 175}, {66.981499999999997, 57}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 144 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + + + Bounds + {{73.888999999999996, 98.25}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 143 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataD} + VerticalPad + 0 + + + + Bounds + {{73.888999999999996, 84.25}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 142 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 4} + VerticalPad + 0 + + + + Bounds + {{123.889, 98.25}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 141 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataC} + VerticalPad + 0 + + + + Bounds + {{123.889, 84.25}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 140 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 3} + VerticalPad + 0 + + + + Bounds + {{173.88900000000001, 98.25}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 139 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataB} + VerticalPad + 0 + + + + Bounds + {{173.88900000000001, 84.25}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 138 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 2} + VerticalPad + 0 + + + + Bounds + {{223.88900000000001, 98.25}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 123 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{223.88900000000001, 84.25}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 122 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 118 + Points + + {67.852000000000004, 129.5} + {279.88900000000001, 129.5} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 121 + Points + + {67.852000000000004, 80} + {279.88900000000001, 80} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + + + Bounds + {{68.852000000000004, 30}, {131, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 119 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 peek(recever, "key1", 0);} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{156.87100000000001, 48.75}, {34, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 120 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 "key1"} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{57.851999999999997, 48}, {233.03700000000001, 103}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 117 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2013-03-31 10:39:26 +0000 + Modifier + YuSugimoto + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {594.99997329711914, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{59, 121}, {730, 779}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 138 + VisibleRegion + {{-9, 0}, {577, 640}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + + diff -r 484bf45ca3ee -r ddd5a624bb7a images/peek.pdf Binary file images/peek.pdf has changed diff -r 484bf45ca3ee -r ddd5a624bb7a images/peek1.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/peek1.graffle Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,961 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGrafflePro + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {558.99997329711914, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-02-07 04:36:21 +0000 + Creator + Kazuki AKAMINE + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{56, 113}, {21, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 172 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 add} + VerticalPad + 0 + + Wrap + NO + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 185 + + ID + 186 + Points + + {159.51492156862744, 40.5} + {25, 122.75} + {111.232, 168.75} + + Style + + stroke + + CornerRadius + 23 + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 170 + + + + Bounds + {{190.482, 140.75}, {41, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 183 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 waitList} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{111.232, 154.75}, {200.5, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 185 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;\f1\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs24 \cf0 \'81\'45 +\f1 peek(recever, "key1", 5);} + VerticalPad + 0 + + + + Bounds + {{110.5, 94.75}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 179 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataD} + VerticalPad + 0 + + + + Bounds + {{110.5, 80.75}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 177 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 4} + VerticalPad + 0 + + + + Bounds + {{160.5, 94.75}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 181 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataC} + VerticalPad + 0 + + + + Bounds + {{160.5, 80.75}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 174 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 3} + VerticalPad + 0 + + + + Bounds + {{210.5, 94.75}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 178 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataB} + VerticalPad + 0 + + + + Bounds + {{210.5, 80.75}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 175 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 2} + VerticalPad + 0 + + + + Bounds + {{260.5, 94.75}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 180 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{260.5, 80.75}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 176 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 182 + Points + + {104.46299999999999, 126} + {316.5, 126} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 173 + Points + + {104.46299999999999, 76.5} + {316.5, 76.5} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + + + Bounds + {{105.46299999999999, 26.5}, {131, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 170 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 peek(recever, "key1", 5);} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{193.482, 45.25}, {34, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 171 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 "key1"} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{94.462999999999994, 44.5}, {233.03700000000001, 150.25}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 184 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-11-19 05:58:30 +0000 + Modifier + Yu SUGIMOTO + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {594.99997329711914, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{227, 52}, {730, 779}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 138 + VisibleRegion + {{-9, 0}, {577, 640}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + + diff -r 484bf45ca3ee -r ddd5a624bb7a images/peek1.pdf Binary file images/peek1.pdf has changed diff -r 484bf45ca3ee -r ddd5a624bb7a images/put.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/put.graffle Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,1406 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 138.17.0.133677 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-02-07 13:36:21 +0900 + Creator + Kazuki AKAMINE + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 6 + GraphicsList + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 76 + + ID + 77 + Points + + {351.537, 232} + {376, 198} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 62 + + + + Bounds + {{351, 170}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 76 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dataB} + VerticalPad + 0 + + + + Bounds + {{351, 156}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 75 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 2} + VerticalPad + 0 + + + + Bounds + {{401, 170}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 74 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{401, 156}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 73 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 72 + Points + + {323, 201.5} + {456, 201.5} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 71 + Points + + {323, 152} + {456, 152} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 69 + Info + 1 + + ID + 70 + Points + + {178.036, 232} + {243.963, 198} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 54 + + + + Bounds + {{218.963, 170}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 69 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{218.963, 156}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 68 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 66 + Points + + {297.982, 97} + {297.982, 252} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Pattern + 1 + TailArrow + 0 + TailScale + 0.5 + + + + + Bounds + {{323, 232}, {47, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 62 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 enqueue} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{339.5, 102}, {100, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 58 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 put("key1", dataB);} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{370.269, 120}, {34, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 57 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 "key1"} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{313, 120}, {148.537, 103}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 56 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + + + Text + + VerticalPad + 0 + + + + Bounds + {{140.963, 232}, {47, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 54 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 enqueue} + VerticalPad + 0 + + Wrap + NO + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 53 + Points + + {140.963, 201.5} + {273.963, 201.5} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 52 + Points + + {140.963, 152} + {273.963, 152} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + + + Bounds + {{157.463, 102}, {100, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 50 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 put("key1", dataA);} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{188.232, 120}, {34, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 47 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 "key1"} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{130.963, 120}, {148.537, 103}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 46 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + + + Text + + VerticalPad + 0 + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-02-07 13:53:06 +0900 + Modifier + Kazuki AKAMINE + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + JVBERi0xLjMKJcTl8uXrp/Og0MTGCjUgMCBvYmoKPDwgL0xlbmd0aCA2IDAgUiAvRmls + dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGdV8tuW0cM3c9XEFlJQDOZ9wNZxUa7 + 8C6wgC6SLAzZRuFIQV3Hi/59D+d1r6Ur2Q0EQcN5kTxDHlKP9JkeSeHjfaaYLP1zR3/S + D/pw+aRp+0S6fJ629F5JT/ydbbwn7ZTMwRoKwYo9mZCxA2PakYleKmNyEU0sCz5Jb0zC + WhUtbdvYR1XO8LwPTroYjRhX+KDa3TzaTmpZ3JG2XjqnLE4qCM2kfs2YEawEh8cGiKeF + 2cbg2aGxNTQ3xNDLHs+hgJa/Xk7sCWDRFb4PFdvL6wK7outLehS6CO/5hx9hu59Oa6Oo + I8vjGbIsVii1qZBVEYaxo3XJ6PoajKzR4wHa4xhjG7I8miHL4oSsYHEAMK6ZzZTDHVnW + +WJtLogZspifIzvcGMiyiwNZFubICp7Y0zWCGPFqOF4VIVYfATPHNPA0yktjdaDgA8N6 + sSFt2qLBhiCztQh9JzZ7+vCHllBHm3v6Qqt33+/WHPaGVv/qPnq3pm+0uaLfNyVzZnqi + dIiCEJ04VuOyzF7rSI6O1Pzdr37ug59rJBq0fi0miCMTfmvr1H5v+8GbPug3jIlPX9cf + 12LR8sOII+0NB1y0nNlF2hWIZ6iWM+xnexrArBFe06kqH53TnNm41DvXHkNJpZQRG8TE + 7FmMldYndwTX6u7H4/PdM95l81Cf4JCnhEWgcjruyXnYZGOjI+ejVD6nIrrQljohTRMc + x00qfLHr0qAlXNyuYrrpWioxsfbKSVYjIGLURbTaikFHEKgyUR8d/m6JZyrr1FFL236p + YA+7p5wRfcw0c/hOjDSv12Tp9rIE35orJZM6CCMLx0Shky5VQpmkZtu4iqmia6mkwtor + n3QHisiuDSqpAqPfR/gVrKvLdaUyBs8NM8el7FP3tKPSKEKcpgibokThepUhRuqCrX+B + IWwqNS/2yJ/H+8QPxzT0Gj8cU1TlB7H6H/xwwfywzGzWBa7JrvNazVj65Yz9Aq51UKXo + djFUTY4yJ+0pRyaULhmwUuWTFykvQPccQ0xVAUHhuVxwEwMKP6OjndAoCv2EOFtGXGXD + wBXoqIqArWzI0DvRe42RFerGKaYaZvsEeFHIUzX7MH2ZZruHGh3L2PoWe33OZ4lWexli + RvBPltf6t7q9+XnzabL+0CrcKnRMUtlgyKABhJHWSNQ4rrlOapW5f2g2llaSK3Ipz8YZ + aSJKACheapMNd45oHVB48BzJyJDB0+hzrJMqAVbPrWRC+dyB6o5OQ/U9Lr7C90Es2Dmd + 0DnJFFUqxjZ9RilpUYLm+oxCCOpkxQt9s9PsVu/mljQWEipl1CHC4Bdu4jOn9vbyybvn + pVNDi+aOxik9hbco4b10F2+bx3THf7E1ckAb8bzQrizEc4uKc/HMykcsv2LjW+OYbUQM + NxuXqefNMczEIeb/aayfobqcfaV4YtsiqnzZYcNpY0H1bSzRUDVrcZIl2MaB6is2dlQZ + /HPswDYeMsMhoU+oHpSkwgwXZ5mBYDRar4BgLsxgQ5JGey+MQgLqrE8xg41Opsx/5JKV + aCg4Uy16xmhDBAsEGdAU7shGDY5ARfI8iDEXYlg6PIhhOfW6Op1Rm51hIhrqjAqS/zhM + 6kDDWlpj2Hy0XIeHYSuD/vk/jN8hLgplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKMTIx + OQplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDQgMCBSIC9SZXNv + dXJjZXMgNyAwIFIgL0NvbnRlbnRzIDUgMCBSIC9NZWRpYUJveCBbMCAwIDU1OSA3ODNd + Cj4+CmVuZG9iago3IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIC9Db2xv + clNwYWNlIDw8IC9DczEgOCAwIFIgL0NzMiA5IDAgUiA+PiAvRm9udCA8PAovRjEuMCAx + MCAwIFIgPj4gPj4KZW5kb2JqCjExIDAgb2JqCjw8IC9MZW5ndGggMTIgMCBSIC9OIDMg + L0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh + bQp4AYVUz2sTQRT+Nm6p0CIIWmsOsniQIklZq2hF1Db9EWJrDNsftkWQZDNJ1m426+4m + taWI5OLRKt5F7aEH/4AeevBkL0qFWkUo3qsoYqEXLfHNbky2perAzn7z3jfvfW923wAN + ctI09YAE5A3HUqIRaWx8Qmr8iACOoglBNCVV2+xOJAZBg3P5e+fYeg+BW1bDe/t3snet + mtK2mgeE/UDgR5rZKrDvF3EKWRICiDzfoSnHdAjf49jy7I85Tnl4wbUPKz3EWSJ8QDUt + zn9NuFPNJdNAg0g4lPVxUj6c14uU1x0HaW5mxsgQvU+QprvM7qtioZxO9g6QvZ30fk6z + 3j7CIcILGa0/RriNnvWM1T/iYeGk5sSGPRwYNfT4YBW3Gqn4NcIUXxBNJ6JUcdkuDfGY + rv1W8kqCcJA4ymRhgHNaSE/XTG74uocFfSbXE6/id1ZR4XmPE2fe1N3vRdoCrzAOHQwa + DJoNSFAQRQRhmLBQQIY8GjE0snI/I6sGG5N7MnUkart0YkSxQXs23D23UaTdPP4oInGU + Q7UIkvxB/iqvyU/lefnLXLDYVveUrZuauvLgO8XlmbkaHtfTyONzTV58ldR2k1dHlqx5 + erya7Bo/7FeXMeaCNY/Ec7D78S1flcyXKYwUxeNV8+pLhHVaMTffn2x/Oz3iLs8utdZz + rYmLN1abl2f9akj77qq8k+ZV+U9e9fH8Z83EY+IpMSZ2iuchiZfFLvGS2EurC+JgbccI + nZWGKdJtkfok1WBgmrz1L10/W3i9Rn8M9VGUGczSVIn3f8IqZDSduQ5v+o/bx/wX5PeK + 558oAi9s4MiZum1Tce8QoWWlbnOuAhe/0X3wtm5ro344/ARYPKsWrVI1nyC8ARx2h3oe + 6CmY05aWzTlShyyfk7rpymJSzFDbQ1JS1yXXZUsWs5lVYul22JnTHW4coTlC98SnSmWT + +q/xEbD9sFL5+axS2X5OGtaBl/pvwLz9RQplbmRzdHJlYW0KZW5kb2JqCjEyIDAgb2Jq + CjczNwplbmRvYmoKOCAwIG9iagpbIC9JQ0NCYXNlZCAxMSAwIFIgXQplbmRvYmoKMTMg + MCBvYmoKPDwgL0xlbmd0aCAxNCAwIFIgL04gMSAvQWx0ZXJuYXRlIC9EZXZpY2VHcmF5 + IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AYVST0gUURz+zTYShIhBhXiI + dwoJlSmsrKDadnVZlW1bldKiGGffuqOzM9Ob2TXFkwRdojx1D6JjdOzQoZuXosCsS9cg + qSAIPHXo+83s6iiEb3k73/v9/X7fe0RtnabvOylBVHNDlSulp25OTYuDHylFHdROWKYV + +OlicYyx67mSv7vX1mfS2LLex7V2+/Y9tZVlYCHqLba3EPohkWYAH5mfKGWAs8Adlq/Y + PgE8WA6sGvAjogMPmrkw09GcdKWyLZFT5qIoKq9iO0mu+/m5xr6LtYmD/lyPZtaOvbPq + qtFM1LT3RKG8D65EGc9fVPZsNRSnDeOcSEMaKfKu1d8rTMcRkSsQSgZSNWS5n2pOnXXg + dRi7XbqT4/j2EKU+yWCoibXpspkdhX0AdirL7BDwBejxsmIP54F7Yf9bUcOTwCdhP2SH + edatH/YXrlPge4Q9NeDOFK7F8dqKH14tAUP3VCNojHNNxNPXOXOkiO8x1BmY90Y5pgsx + d5aqEzeAO2EfWapmCrFd+67qJe57AnfT4zvRmzkLXKAcSXKxFdkU0DwJWBR9i7BJDjw+ + zh5V4HeomMAcuYnczSj3HtURG2ejUoFWeo1Xxk/jufHF+GVsGM+Afqx213t8/+njFXXX + tj48+Y163DmuvZ0bVWFWcWUL3f/HMoSP2Sc5psHToVlYa9h25A+azEywDCjEfwU+l/qS + E1Xc1e7tuEUSzFA+LGwluktUbinU6j2DSqwcK9gAdnCSxCxaHLhTa7o5eHfYInpt+U1X + suuG/vr2evva8h5tyqgpKBPNs0RmlLFbo+TdeNv9ZpERnzg6vue9ilrJ/klFED+FOVoq + 8hRV9FZQ1sRvZw5+G7Z+XD+l5/VB/TwJPa2f0a/ooxG+DHRJz8JzUR+jSfCwaSHiEqCK + gzPUTlRjjQPiKfHytFtkkf0PQBn9ZgplbmRzdHJlYW0KZW5kb2JqCjE0IDAgb2JqCjcw + NAplbmRvYmoKOSAwIG9iagpbIC9JQ0NCYXNlZCAxMyAwIFIgXQplbmRvYmoKNCAwIG9i + ago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0gL0NvdW50IDEg + L0tpZHMgWyAzIDAgUiBdID4+CmVuZG9iagoxNSAwIG9iago8PCAvVHlwZSAvQ2F0YWxv + ZyAvT3V0bGluZXMgMiAwIFIgL1BhZ2VzIDQgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8 + IC9MYXN0IDE2IDAgUiAvRmlyc3QgMTcgMCBSID4+CmVuZG9iagoxNyAwIG9iago8PCAv + UGFyZW50IDE4IDAgUiAvQ291bnQgMCAvRGVzdCBbIDMgMCBSIC9YWVogMCA3ODMgMCBd + IC9UaXRsZSAo/v8wrTDjMPMw0DC5XDAwMCBcMDAwMSkKPj4KZW5kb2JqCjE4IDAgb2Jq + Cjw8ID4+CmVuZG9iagoxNiAwIG9iago8PCAvUGFyZW50IDE4IDAgUiAvQ291bnQgMCAv + RGVzdCBbIDMgMCBSIC9YWVogMCA3ODMgMCBdIC9UaXRsZSAo/v8wrTDjMPMw0DC5XDAw + MCBcMDAwMSkKPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9MZW5ndGggMjAgMCBSIC9MZW5n + dGgxIDk3NzIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvVoJWFRHtj51 + 915oupve6aa7abqbZl8EQYi0CIgLBMEFiCggKKLGJYjBiQ4aHRWNiXGN2cYkzzWOLZrY + aswzGROTTCYxGTUZJ8lMRpPJyzd8mTfPOBkj3e/c28gobyaf7/vyzb2cqjpVdatO/XXO + qaXpWLykFaKgG2ioqm9aOAukJ2E1ANk3c37TwggfI2D87szODkeEZxMB6HmzFs6eH+GF + rQBy2+x5XQPf6zBbrWtrbWqJlMNNjHPbMCPCk2EYJ7TN73gwwmuPYTxp3oKZA+UxF5BP + md/04ED/8Anyjvub5rdG6ic0YpywcMEDHQO8DuMJCxe3DtQntSjf+0AwVw8LQAZzgQcK + 1Pg2APBfyW3AYKlYjk9LimLLjOjCb0EjDhNgRsWjUvym85VL37Xe9Co2C3/HDNmt+mLM + +UI+ACXB8j7F5sES6TsM9EGoSQ7CWKQipByk5ORRJugme+AxpJ8j0TCHbIAupPVITyAx + g6n9yJ0gG3oZwX+SdIGFjPMrGPskndlukivsHwYJd+wZ+29NV04RM87e58TcGwWyUXLy + c/IstICd/Ae4yTIoh0Sy66hvnr0Ri/bDQqRuJFoKCdnfG5dlf5WkgJsh+I0H4hjysv1P + man2LzKDFOm1v+4NMhi9FoecP9p+xvaM/T9ts+2vIh2MFB3wYY2X7ftt8+xb4oJkV6/9 + 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 + LZKNdIev0J+hrhlRwun+EUHdWzpKFiPozDFmXSK3lP4IjRtYlRy4KDlr0ypMvMmkMOBI + fEqFxUJ8orAf3jKSCnE5F9UPfWdkPS8qxMV8wEZIRFDc6ogLynDJx+EZTeMmeZaMh18p + cR87QLmGzd7yRU0qOczg7ql6WOO++qcp1fcfPHNP0qQnqtdTH1tE3dGHxtJfocwmtOx3 + /Pf36NeZ9ppo0W/lacu1tdrZ/FJ6Kb9RtxN2sDv1Oww7jPtgn0FdDuP1Y4xv65kS9k2W + WsvugT2ivhnZhETWpDcaCHB6pSLaJqjMvNlsiBU3skAOG/Wmw8pHDWZL7AXn7BU4Kbid + rbhq6s/Px7/IntYUGW5Ff36WOd2EHq0QVxSCP7b7tXo9GAzztUajicXNuhbAhJtc9fKz + UiRgTBoWZWYsIuIuNpujKZ5CC/N4c8TFIHc4nrhINqFp5znPw83FT3U/5fHFpSeps9LV + 7EhVqONdYidM+uzQ5tCffxGadYwTXojinCZhawJTeXMnvUrESnrCrfj76z97xIMgjSd+ + Bf4eHY3nbz2eGXB9hhLpl91K/FW5BibBVKjFOwhxxdAiiQ+H9xUwpWzK+InVyeWt8zpb + O+bMbJJqSMUYiPXbkB5EWoe0E2kfEl45wFtIHyN9hfQdNisgmZASkfKQypFqkdqQHkRa + h7QzPPDgNzCYJug97uTjh/DY5h318X997uBThvCZQ/isIbz4XwG39z9qCF88hBdRub1+ + yxBempfbxjN3SLm4kt3+/cIh/KIhvPR/VLe1t2RIeZfI/y8j+PntCmVuZHN0cmVhbQpl + bmRvYmoKMjAgMCBvYmoKNjMyMwplbmRvYmoKMjEgMCBvYmoKPDwgL1R5cGUgL0ZvbnRE + ZXNjcmlwdG9yIC9Bc2NlbnQgNzcwIC9DYXBIZWlnaHQgNjg0IC9EZXNjZW50IC0yMzAg + L0ZsYWdzIDMyCi9Gb250QkJveCBbLTk1MSAtNDgxIDE0NDUgMTEyMl0gL0ZvbnROYW1l + IC9WRlZLUVIrSGVsdmV0aWNhIC9JdGFsaWNBbmdsZSAwCi9TdGVtViAwIC9NYXhXaWR0 + aCAxNTAwIC9YSGVpZ2h0IDUxMyAvRm9udEZpbGUyIDE5IDAgUiA+PgplbmRvYmoKMjIg + MCBvYmoKWyAyNzggMCAzNTUgMCAwIDAgMCAwIDMzMyAzMzMgMCAwIDI3OCAwIDAgMCAw + IDU1NiA1NTYgMCAwIDAgMCAwIDAgMCAwIDI3OAowIDAgMCAwIDAgNjY3IDY2NyAwIDAg + MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw + CjAgMCA1NTYgMCAwIDU1NiA1NTYgMCAwIDAgMCAwIDUwMCAwIDAgNTU2IDAgNTU2IDU1 + NiAwIDAgMjc4IDU1NiAwIDAgMCA1MDAKXQplbmRvYmoKMTAgMCBvYmoKPDwgL1R5cGUg + L0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9udCAvVkZWS1FSK0hlbHZldGlj + YSAvRm9udERlc2NyaXB0b3IKMjEgMCBSIC9XaWR0aHMgMjIgMCBSIC9GaXJzdENoYXIg + MzIgL0xhc3RDaGFyIDEyMSAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5k + b2JqCjIzIDAgb2JqCihNYWMgT1MgWCAxMC42LjggUXVhcnR6IFBERkNvbnRleHQpCmVu + ZG9iagoyNCAwIG9iagooRDoyMDEyMDIwNzA0NTMxMFowMCcwMCcpCmVuZG9iagoxIDAg + b2JqCjw8IC9Qcm9kdWNlciAyMyAwIFIgL0NyZWF0aW9uRGF0ZSAyNCAwIFIgL01vZERh + dGUgMjQgMCBSID4+CmVuZG9iagp4cmVmCjAgMjUKMDAwMDAwMDAwMCA2NTUzNSBmIAow + MDAwMDEwOTEwIDAwMDAwIG4gCjAwMDAwMDM0NTggMDAwMDAgbiAKMDAwMDAwMTMzNSAw + MDAwMCBuIAowMDAwMDAzMzA5IDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAw + MDAwMTMxNSAwMDAwMCBuIAowMDAwMDAxNDM5IDAwMDAwIG4gCjAwMDAwMDI0MDkgMDAw + MDAgbiAKMDAwMDAwMzI3MyAwMDAwMCBuIAowMDAwMDEwNjQxIDAwMDAwIG4gCjAwMDAw + MDE1NDkgMDAwMDAgbiAKMDAwMDAwMjM4OSAwMDAwMCBuIAowMDAwMDAyNDQ1IDAwMDAw + IG4gCjAwMDAwMDMyNTMgMDAwMDAgbiAKMDAwMDAwMzM5MiAwMDAwMCBuIAowMDAwMDAz + NjM1IDAwMDAwIG4gCjAwMDAwMDM1MDYgMDAwMDAgbiAKMDAwMDAwMzYxMyAwMDAwMCBu + IAowMDAwMDAzNzQyIDAwMDAwIG4gCjAwMDAwMTAxNTUgMDAwMDAgbiAKMDAwMDAxMDE3 + NiAwMDAwMCBuIAowMDAwMDEwNDAxIDAwMDAwIG4gCjAwMDAwMTA4MTYgMDAwMDAgbiAK + MDAwMDAxMDg2OCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDI1IC9Sb290IDE1IDAg + UiAvSW5mbyAxIDAgUiAvSUQgWyA8Y2Y0NDk1Zjc0NjljMTAxMGRiMzQ2NDlhODcyODg4 + NDA+CjxjZjQ0OTVmNzQ2OWMxMDEwZGIzNDY0OWE4NzI4ODg0MD4gXSA+PgpzdGFydHhy + ZWYKMTA5ODUKJSVFT0YKMSAwIG9iago8PC9BdXRob3IgKEthenVraSBBS0FNSU5FKS9D + cmVhdGlvbkRhdGUgKEQ6MjAxMjAyMDcwNDM2MDBaKS9DcmVhdG9yIChPbW5pR3JhZmZs + ZSA1LjIuMykvTW9kRGF0ZSAoRDoyMDEyMDIwNzA0NTMwMFopL1Byb2R1Y2VyIDIzIDAg + UiAvVGl0bGUgKHB1dCk+PgplbmRvYmoKeHJlZgoxIDEKMDAwMDAxMTY0MyAwMDAwMCBu + IAp0cmFpbGVyCjw8L0lEIFs8Y2Y0NDk1Zjc0NjljMTAxMGRiMzQ2NDlhODcyODg4NDA+ + IDxjZjQ0OTVmNzQ2OWMxMDEwZGIzNDY0OWE4NzI4ODg0MD5dIC9JbmZvIDEgMCBSIC9Q + cmV2IDEwOTg1IC9Sb290IDE1IDAgUiAvU2l6ZSAyNT4+CnN0YXJ0eHJlZgoxMTgwNQol + JUVPRgo= + + QuickLookThumbnail + + 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 + /ZH///ui///9owAAA9wAAMBs + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{68, 181}, {693, 937}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + saveQuickLookFiles + YES + + diff -r 484bf45ca3ee -r ddd5a624bb7a images/put.pdf Binary file images/put.pdf has changed diff -r 484bf45ca3ee -r ddd5a624bb7a images/remote_datasegment.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/remote_datasegment.graffle Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,924 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 138.17.0.133677 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-02-08 00:00:26 +0900 + Creator + Kazuki AKAMINE + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 6 + GraphicsList + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 3 + + ID + 14 + Points + + {281, 186} + {206, 122} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 10 + Info + 4 + + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 9 + + ID + 13 + Points + + {206, 186} + {281, 122} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 4 + + + + Bounds + {{310.5, 73}, {33, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 11 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 HostB} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{281, 158.5}, {92, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 10 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Remote\ +Data Segment\ +Manager} + VerticalPad + 0 + + + + Bounds + {{281, 94.5}, {92, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 9 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Local\ +Data Segment\ +Manager} + VerticalPad + 0 + + + + Bounds + {{273, 87}, {108, 134}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 8 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + VerticalPad + 0 + + + + Bounds + {{143.5, 73}, {33, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 7 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 HostA} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{114, 158.5}, {92, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 4 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Remote\ +Data Segment\ +Manager} + VerticalPad + 0 + + + + Bounds + {{114, 94.5}, {92, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 3 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Local\ +Data Segment\ +Manager} + VerticalPad + 0 + + + + Bounds + {{106, 87}, {108, 134}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 6 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + VerticalPad + 0 + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-02-08 00:12:51 +0900 + Modifier + Kazuki AKAMINE + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + JVBERi0xLjMKJcTl8uXrp/Og0MTGCjUgMCBvYmoKPDwgL0xlbmd0aCA2IDAgUiAvRmls + dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHNVk2P0zAQvftXzLE91Ovxt49sAaEV + HEorcUAcULUFoXZRt/x/MZPEXidNoCuxFYqiuO6M33je+HmOsIIjKHqcSxCigcd7+AQP + cLM8IWxPgM1z2sJCSQf8VoY7QOXBeU3fCGisIG+ahDt6f7RrLNfN8grWS0LC5seCPwy2 + PTQrxJAXYPg1xYRowRtDcEkTYrvuqDsZJpvtsjtFrzl6BRR55YZegfcoCPd2A6i7aDQs + 0EpjTXA0UrA5wM1blIrC3ezgM8zez3n/GmY/82D7tR2J2X4OX2BzB282TS7LDjss3uMA + y0RpnLMBbB9JENLrDNCtD7Nfc0o7QZcJ6CbW99n2Wx4cuikxe8hT5P7M8LSRPirvASPF + J/qZ+FDCKAhlpoRRAnuswbmkRF1STLLzqSZvV7P1VCNkiC7Whmux4vqaZNmlMJJ5TaSq + GFKPZZFZ/phzVuI/FL4zC/TXZDoJc6SyptjmuvoT26KtuAvYhsvYHg+vz/ag7qfZFrO/ + sD04dUE1p31wEtBLYyIdfyvOzty7zEbh4JRJeFWTMFQqoYOpNYk1Ybys2PBcenTEy6SH + DS+XHqPD1aSnwxo5AFPFeFXpmQ6vX4wvKD3M3UXSw4bPkB7e2rWlp8P8X6VnOrw+2y8i + PQz+T6XntpaeSuOau4op0NQRYfRAo6Bk9Ej1Y5T0DhPsm94mCxZ3XU2DogPdgdwPeJdk + 8D7AQWgfpQrU/HjnpFfUK+1pQbqZrSF5skmqSJW5h+80e+ZNeqeoB1PUgx3pdmOYuuUq + HkgMaGMMB5vxUAdpEoYaD6kTS4hJ9PAq76Zl67q+YVJYhZpT1CaFJB9NTGKQFK2CtNaZ + Kgeg0VCj5FO9X41RJk3d5lNeBOVgxLvKwUjbWTyqXWQ8iq3dL+cg41V5qfAqb87B6jet + G01lCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iago2OTAKZW5kb2JqCjMgMCBvYmoKPDwg + L1R5cGUgL1BhZ2UgL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDcgMCBSIC9Db250ZW50 + cyA1IDAgUiAvTWVkaWFCb3ggWzAgMCA1NTkgNzgzXQo+PgplbmRvYmoKNyAwIG9iago8 + PCAvUHJvY1NldCBbIC9QREYgL1RleHQgXSAvQ29sb3JTcGFjZSA8PCAvQ3MxIDggMCBS + IC9DczIgOSAwIFIgPj4gL0ZvbnQgPDwKL0YxLjAgMTAgMCBSID4+ID4+CmVuZG9iagox + MSAwIG9iago8PCAvTGVuZ3RoIDEyIDAgUiAvTiAzIC9BbHRlcm5hdGUgL0RldmljZVJH + QiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGFVM9rE0EU/jZuqdAiCFpr + DrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9K + hVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgA + jqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkS + Aog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeL + lNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHh + pObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu + +LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJy + PyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3 + lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/Et + X5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflP + XvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4 + vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5z + rgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ + 20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6 + b8C8/UUKZW5kc3RyZWFtCmVuZG9iagoxMiAwIG9iago3MzcKZW5kb2JqCjggMCBvYmoK + WyAvSUNDQmFzZWQgMTEgMCBSIF0KZW5kb2JqCjEzIDAgb2JqCjw8IC9MZW5ndGggMTQg + MCBSIC9OIDEgL0FsdGVybmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0ZURlY29k + ZSA+PgpzdHJlYW0KeAGFUk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn + 37qjszPTm9k1xZMEXaI8dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95O9/7/f1+ + 33tEbZ2m7zspQVRzQ5UrpaduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn0tiy3se1 + dvv2PbWVZWAh6i22txD6IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5MNPRnHSl + si2RU+aiKCqvYjtJrvv5uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnPX1T2bDUU + pw3jnEhDGinyrtXfK0zHEZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslgqIm16bKZ + HYV9AHYqy+wQ8AXo8bJiD+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXgzhSuxfHa + ih9eLQFD91QjaIxzTcTT1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqxXfuu6iXu + ewJ30+M70Zs5C1ygHElysRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtn + o1KBVnqNV8ZP47nxxfhlbBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1VhVnFlC93/ + xzKEj9knOabB06FZWGvYduQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixsJbpLVG4p + 1Oo9g0qsHCvYAHZwksQsWhy4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqoKSgTzbNE + ZpSxW6Pk3Xjb/WaREZ84Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1 + Qf08CT2tn9Gv6KMRvgx0Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ + /WYKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago3MDQKZW5kb2JqCjkgMCBvYmoKWyAv + SUNDQmFzZWQgMTMgMCBSIF0KZW5kb2JqCjQgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9N + ZWRpYUJveCBbMCAwIDYxMiA3OTJdIC9Db3VudCAxIC9LaWRzIFsgMyAwIFIgXSA+Pgpl + bmRvYmoKMTUgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cgL091dGxpbmVzIDIgMCBSIC9Q + YWdlcyA0IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvTGFzdCAxNiAwIFIgL0ZpcnN0 + IDE3IDAgUiA+PgplbmRvYmoKMTcgMCBvYmoKPDwgL1BhcmVudCAxOCAwIFIgL0NvdW50 + IDAgL0Rlc3QgWyAzIDAgUiAvWFlaIDAgNzgzIDAgXSAvVGl0bGUgKP7/MK0w4zDzMNAw + uVwwMDAgXDAwMDEpCj4+CmVuZG9iagoxOCAwIG9iago8PCA+PgplbmRvYmoKMTYgMCBv + YmoKPDwgL1BhcmVudCAxOCAwIFIgL0NvdW50IDAgL0Rlc3QgWyAzIDAgUiAvWFlaIDAg + NzgzIDAgXSAvVGl0bGUgKP7/MK0w4zDzMNAwuVwwMDAgXDAwMDEpCj4+CmVuZG9iagox + OSAwIG9iago8PCAvTGVuZ3RoIDIwIDAgUiAvTGVuZ3RoMSAxMDU0MCAvRmlsdGVyIC9G + bGF0ZURlY29kZSA+PgpzdHJlYW0KeAG9egt8VEWW96m69/a9/Uw/0+9033S6O533gwRC + AmlCEsIjIRCENBJIAoEEYQQMQdyBjQoCAfGBPARHQUfkMQ5NYKSRwY9xUfS3syPOKirj + PNxBx2++ybo7H844QnfvubdDFvLtzM/f7/M39+ZU1amqW3XqX6dOnap075q1XaCFfmCg + eX7HqqUgP8FNAOTI4pUdq1K8ScD49cV9vd4Uz2UDMCuWrlq2MsULTwGo3MtWrB/+3vQV + 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 + a9Zr1+v6fL1Zvf7ewOGMI3kmBk02l88WmMBhcVpdNku+uSA7Td2DHnm5n/oztSo212R7 + 0+U28ay7YH+uupBX6vSUh0Kx0OGxpduC1onZAT6Y7SjWeYL6iRAssBcVD47sM7i8Uvav + Qo8pabgVhRgOe67ousrLLeWyziD5NGBBV1XUeURQ4s9SCHqrInA5mHIbMc9ptonEm5Yp + gpip0wpBlUgCfqUKvVcRf4uEQYbBJUoea8pbSm3o8q4ua8UtpcDt3SSbSfnUMOyyymuc + /399VtyIAkHyheCvPbJk34TgfY9tm9T7i7N/vGcyPcYFJj69tKcuu2nd6zU9H/3qi0s8 + OUOa5xfNm3d3XRbu0Jk5Ux/c9+Od87snlExpCtfn2E3uwry6px67/NFB+hfUJWvyC6rk + 5uPKmf0jbYHqgo7ESHXYz6ZXWBmFTmVwoCnD/9CHwKKzpDEehjI30/EG4Ka4bNgbirdV + XJQORfqUCSuslk+3Q/r4NfmAW2rxGdD5HvH/AmUGX1npkVeOHw9YirUZZs/k4Mb5TzzB + zU+8vyteN86kJnSnUnhwGX1jF9piioRPsgt/f/A/PWjhcf2jN4Onwlz5HFQG5VAL9fi7 + hmkwU/5dhfTrhbkwD2sS/LUFkZtR4J0d1E6ZOXNKS25D14q+rt6exR1yDbkYgwVI3Uj3 + I21FQmXHX44A/j4EAI0lfIj0OdJX2KyAZEPKRhqH1IDUitSNdD/SVqR9yeEHv4GRNAHv + KH7SKL5mFF87ise+7mhvxii+cRQ/exTfMoqXULhdvsWjeHkebpN/2ahy6fcEt38v/y7x + tvrfGVV+7yh+zSj+vlF8r8T/F8l0mcwKZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago2 + ODg3CmVuZG9iagoyMSAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL0FzY2Vu + dCA3NzAgL0NhcEhlaWdodCA3MTcgL0Rlc2NlbnQgLTIzMCAvRmxhZ3MgMzIKL0ZvbnRC + Qm94IFstOTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUgL0RHT09HUytIZWx2ZXRp + Y2EgL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRoIDE1MDAgL1hIZWlnaHQg + NjM3IC9Gb250RmlsZTIgMTkgMCBSID4+CmVuZG9iagoyMiAwIG9iagpbIDI3OCAwIDAg + MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw + IDAgMCAwIDAgNjY3CjY2NyAwIDcyMiAwIDAgMCA3MjIgMCAwIDAgNTU2IDgzMyAwIDAg + MCAwIDcyMiA2NjcgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKMCA1NTYgMCA1MDAgMCA1 + NTYgMCA1NTYgMCAwIDAgMCAyMjIgODMzIDU1NiA1NTYgMCAwIDMzMyA1MDAgMjc4IF0K + ZW5kb2JqCjEwIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVlVHlwZSAv + QmFzZUZvbnQgL0RHT09HUytIZWx2ZXRpY2EgL0ZvbnREZXNjcmlwdG9yCjIxIDAgUiAv + V2lkdGhzIDIyIDAgUiAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAxMTYgL0VuY29kaW5n + IC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iagoyMyAwIG9iagooTWFjIE9TIFggMTAu + Ni44IFF1YXJ0eiBQREZDb250ZXh0KQplbmRvYmoKMjQgMCBvYmoKKEQ6MjAxMjAyMDcx + NTEyNTZaMDAnMDAnKQplbmRvYmoKMSAwIG9iago8PCAvUHJvZHVjZXIgMjMgMCBSIC9D + cmVhdGlvbkRhdGUgMjQgMCBSIC9Nb2REYXRlIDI0IDAgUiA+PgplbmRvYmoKeHJlZgow + IDI1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAxMDkzNSAwMDAwMCBuIAowMDAwMDAy + OTI4IDAwMDAwIG4gCjAwMDAwMDA4MDUgMDAwMDAgbiAKMDAwMDAwMjc3OSAwMDAwMCBu + IAowMDAwMDAwMDIyIDAwMDAwIG4gCjAwMDAwMDA3ODYgMDAwMDAgbiAKMDAwMDAwMDkw + OSAwMDAwMCBuIAowMDAwMDAxODc5IDAwMDAwIG4gCjAwMDAwMDI3NDMgMDAwMDAgbiAK + MDAwMDAxMDY2NiAwMDAwMCBuIAowMDAwMDAxMDE5IDAwMDAwIG4gCjAwMDAwMDE4NTkg + MDAwMDAgbiAKMDAwMDAwMTkxNSAwMDAwMCBuIAowMDAwMDAyNzIzIDAwMDAwIG4gCjAw + MDAwMDI4NjIgMDAwMDAgbiAKMDAwMDAwMzEwNSAwMDAwMCBuIAowMDAwMDAyOTc2IDAw + MDAwIG4gCjAwMDAwMDMwODMgMDAwMDAgbiAKMDAwMDAwMzIxMiAwMDAwMCBuIAowMDAw + MDEwMTkwIDAwMDAwIG4gCjAwMDAwMTAyMTEgMDAwMDAgbiAKMDAwMDAxMDQzNiAwMDAw + MCBuIAowMDAwMDEwODQxIDAwMDAwIG4gCjAwMDAwMTA4OTMgMDAwMDAgbiAKdHJhaWxl + cgo8PCAvU2l6ZSAyNSAvUm9vdCAxNSAwIFIgL0luZm8gMSAwIFIgL0lEIFsgPDdjMTQz + MjQ4ODFlODBiODg4NjQxZWM4YzcyYWFkZTVjPgo8N2MxNDMyNDg4MWU4MGI4ODg2NDFl + YzhjNzJhYWRlNWM+IF0gPj4Kc3RhcnR4cmVmCjExMDEwCiUlRU9GCjEgMCBvYmoKPDwv + QXV0aG9yIChLYXp1a2kgQUtBTUlORSkvQ3JlYXRpb25EYXRlIChEOjIwMTIwMjA3MTUw + MDAwWikvQ3JlYXRvciAoT21uaUdyYWZmbGUgNS4yLjMpL01vZERhdGUgKEQ6MjAxMjAy + MDcxNTEyMDBaKS9Qcm9kdWNlciAyMyAwIFIgL1RpdGxlIChyZW1vdGVfZGF0YXNlZ21l + bnQpPj4KZW5kb2JqCnhyZWYKMSAxCjAwMDAwMTE2NjggMDAwMDAgbiAKdHJhaWxlcgo8 + PC9JRCBbPDdjMTQzMjQ4ODFlODBiODg4NjQxZWM4YzcyYWFkZTVjPiA8N2MxNDMyNDg4 + MWU4MGI4ODg2NDFlYzhjNzJhYWRlNWM+XSAvSW5mbyAxIDAgUiAvUHJldiAxMTAxMCAv + Um9vdCAxNSAwIFIgL1NpemUgMjU+PgpzdGFydHhyZWYKMTE4NDUKJSVFT0YK + + QuickLookThumbnail + + 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 + wGw= + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{128, 121}, {693, 937}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + saveQuickLookFiles + YES + + diff -r 484bf45ca3ee -r ddd5a624bb7a images/remote_datasegment.pdf Binary file images/remote_datasegment.pdf has changed diff -r 484bf45ca3ee -r ddd5a624bb7a images/take.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/take.graffle Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,1437 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 138.17.0.133677 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-02-07 13:36:21 +0900 + Creator + Kazuki AKAMINE + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 6 + GraphicsList + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 123 + + ID + 171 + Points + + {193.379, 233} + {297, 184.25} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 170 + + + + Bounds + {{155, 233}, {47, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 170 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dequeue} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{304, 233}, {27, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 149 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 reply} + VerticalPad + 0 + + Wrap + NO + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 147 + Info + 3 + + ID + 148 + Points + + {322, 198.25} + {271.982, 282.5} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 123 + Info + 1 + + + + Bounds + {{221.982, 268.5}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 147 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{221.982, 254.5}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 146 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + Bounds + {{225.982, 233}, {43, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 145 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 receiver} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{213.491, 247}, {66.9815, 57}} + Class + ShapedGraphic + FontInfo + + Font + HiraKakuProN-W3 + Size + 12 + + ID + 144 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + VerticalPad + 0 + + + + Bounds + {{147, 170.25}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 143 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dataD} + VerticalPad + 0 + + + + Bounds + {{147, 156.25}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 142 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 4} + VerticalPad + 0 + + + + Bounds + {{197, 170.25}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 141 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dataC} + VerticalPad + 0 + + + + Bounds + {{197, 156.25}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 140 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 3} + VerticalPad + 0 + + + + Bounds + {{247, 170.25}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 139 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dataB} + VerticalPad + 0 + + + + Bounds + {{247, 156.25}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 138 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 2} + VerticalPad + 0 + + + + Bounds + {{297, 170.25}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 123 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Pattern + 1 + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{297, 156.25}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 122 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Pattern + 1 + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 118 + Points + + {140.963, 201.5} + {353, 201.5} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 121 + Points + + {140.963, 152} + {353, 152} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + TailArrow + 0 + TailScale + 0.5 + + + + + Bounds + {{143.463, 102}, {128, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 119 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 take(recever, "key1", 0);} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{229.982, 120.75}, {34, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 120 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 "key1"} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{130.963, 120}, {233.037, 103}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 117 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + + + Text + + VerticalPad + 0 + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-02-07 14:33:47 +0900 + Modifier + Kazuki AKAMINE + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + JVBERi0xLjMKJcTl8uXrp/Og0MTGCjUgMCBvYmoKPDwgL0xlbmd0aCA2IDAgUiAvRmls + dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtV01vGzcQvfNXDHKSgZohh9/oqXHb + g2+BBfTg5GDINlrXLmo7KZB/3zfcL652JcVFbQgiV5ydxzePM8Nn+kjPZPAfQqGUHb3c + 0W/0F72/eLW0eyVb/193dG50IPk0C+/JeqNLdEwxOvVELngZ0SNGRQfmUqcu4nHI8iBT + N3G0q6OQjKzGghC99inxaKpCNPWN8r2bXMn0kawL2nvjYGcw6WGML5mewMFOzaaHJ/Ay + vCkG2UYz7eDjTb1f2We7fUD8ff7giUAQXeLz0PF5cVWpNnR1Qc/K1sm5fAnxu6fJ2rKh + jk0ZNWzKVMiyPJAlE2dUxybbyj2esR3oHgLB7Cqb8t2wKdOGTUwnssaXjDSIg4Ykmc5+ + m00a2vG8ZXOEP7IpGxvZlMmMTTyAuq4gVuiSRZeGoMlnUCvaBYfsoy7ZBugsaA7C5oct + aOp/Z6zBAgdZklfbJ3r/q9XwSNt7uqbNuz/vzkThTJtvdhi9O6PPtL2kX7b1kEyuTNIe + wY/Jq6Wb6HRka+CGFm6+nOEEwcfN4GJy+2nzcnemOgi7Ecw/4+jlNJjlnll7cBp5bcs/ + 9Fio/16nYH+VGTB+OvvxAKJ9NZMNXMUMqWD0WMPYRK6uFyL78BMbizQj8nf9uLNZpCQu + iaJlnZCURD2Su+7VNZj3iJyh21YgIyyxsiGKSEarY8pyjOxmC7ysRNtp52KB6/1obyCj + 7UOnnVXgIfseOGclwA+DTRBNBYvsiZWnwIaSJ7BGG2OYtji07VkIOqYSlyLd3N58uflp + Dl21ZYD9Cud0fYRuGLR0y16P7YBRATq6l3o+n9GtmjO84TnmWekSzC3dVScLuiW6stK+ + gW4B29Hdg+3oVm+i+8MR6HZP4oeVIitbnk8phf+brN0JsC3PJ8C+hWeA/R5ZR22sSSun + UWR9MYc+k7VdlfV+lpIgy8o9ntUxPdvv1nNXk9AWoCZt/BzsTM8CoeV5Xc8AqyrYN/As + YFf0jPShZunjKM8/H4GOhkH7YjL5JK1hLdlwmQ5LZbSomWeyOKlvjyqdbaTg3UriZovM + XfJSKugGUIn7ZmCqxH90j9TmQEle5nh4qA1JsB7lzBdd8JeHMrXa//Fgw2HF5pjKxvYn + 4BX/Y6EaAPkc200cLVmDDUe0oNPGDxWvqQ+eNmHkotH1Vm8oYEoOzl4BWzvCUtEtiiSK + KlJ+QrXMIWOAjtAVKx2Kqo1mvQBJf1mbTeR6XRBMdA2srXNZjDNarIRmLxg0CMmJMaeg + rTEQHgJvfc7qEReDNet7vPgSn4dFLZK9jxacjc4RXdyTGv1xcpoZBbzxJ3zngHM68zdZ + t2VX7ffPziZQjrPS0z477g5NBDayaHK6s9J3rX8Ph+ZxGHw70CFaUN76GkM8SzKMYo8s + t3C6ub17/nr3FWd06K+GO9Z+rGtTWfCalAuxczVgHreAEshmHEj2NdrdtWIv2gXXiIxE + FUrSxVvG/YOz0xZXjFCQhoKr5ONcpIhhwPugqY77fVs4bmI9Cb7pSXtvNgdtAqievFm4 + MD5WaQ3eLHaVDXfKGrw1tpIqPv4LTzhMDwplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoK + MTE3MQplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDQgMCBSIC9S + ZXNvdXJjZXMgNyAwIFIgL0NvbnRlbnRzIDUgMCBSIC9NZWRpYUJveCBbMCAwIDU1OSA3 + ODNdCj4+CmVuZG9iago3IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIC9D + b2xvclNwYWNlIDw8IC9DczIgOSAwIFIgL0NzMSA4IDAgUiA+PiAvRm9udCA8PAovRjEu + MCAxMCAwIFIgPj4gPj4KZW5kb2JqCjExIDAgb2JqCjw8IC9MZW5ndGggMTIgMCBSIC9O + IDEgL0FsdGVybmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+Pgpz + dHJlYW0KeAGFUk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn37qjszPT + m9k1xZMEXaI8dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95O9/7/f1+33tEbZ2m + 7zspQVRzQ5UrpaduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn0tiy3se1dvv2PbWV + ZWAh6i22txD6IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2RU+ai + KCqvYjtJrvv5uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnPX1T2bDUUpw3jnEhD + GinyrtXfK0zHEZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslgqIm16bKZHYV9AHYq + y+wQ8AXo8bJiD+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXgzhSuxfHaih9eLQFD + 91QjaIxzTcTT1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqxXfuu6iXuewJ30+M7 + 0Zs5C1ygHElysRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtno1KBVnqN + V8ZP47nxxfhlbBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1VhVnFlC93/xzKEj9kn + OabB06FZWGvYduQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixsJbpLVG4p1Oo9g0qs + HCvYAHZwksQsWhy4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqoKSgTzbNEZpSxW6Pk + 3Xjb/WaREZ84Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1Qf08CT2t + n9Gv6KMRvgx0Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ/WYKZW5k + c3RyZWFtCmVuZG9iagoxMiAwIG9iago3MDQKZW5kb2JqCjkgMCBvYmoKWyAvSUNDQmFz + ZWQgMTEgMCBSIF0KZW5kb2JqCjEzIDAgb2JqCjw8IC9MZW5ndGggMTQgMCBSIC9OIDMg + L0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh + bQp4AYVUz2sTQRT+Nm6p0CIIWmsOsniQIklZq2hF1Db9EWJrDNsftkWQZDNJ1m426+4m + taWI5OLRKt5F7aEH/4AeevBkL0qFWkUo3qsoYqEXLfHNbky2perAzn7z3jfvfW923wAN + ctI09YAE5A3HUqIRaWx8Qmr8iACOoglBNCVV2+xOJAZBg3P5e+fYeg+BW1bDe/t3snet + mtK2mgeE/UDgR5rZKrDvF3EKWRICiDzfoSnHdAjf49jy7I85Tnl4wbUPKz3EWSJ8QDUt + zn9NuFPNJdNAg0g4lPVxUj6c14uU1x0HaW5mxsgQvU+QprvM7qtioZxO9g6QvZ30fk6z + 3j7CIcILGa0/RriNnvWM1T/iYeGk5sSGPRwYNfT4YBW3Gqn4NcIUXxBNJ6JUcdkuDfGY + rv1W8kqCcJA4ymRhgHNaSE/XTG74uocFfSbXE6/id1ZR4XmPE2fe1N3vRdoCrzAOHQwa + DJoNSFAQRQRhmLBQQIY8GjE0snI/I6sGG5N7MnUkart0YkSxQXs23D23UaTdPP4oInGU + Q7UIkvxB/iqvyU/lefnLXLDYVveUrZuauvLgO8XlmbkaHtfTyONzTV58ldR2k1dHlqx5 + erya7Bo/7FeXMeaCNY/Ec7D78S1flcyXKYwUxeNV8+pLhHVaMTffn2x/Oz3iLs8utdZz + rYmLN1abl2f9akj77qq8k+ZV+U9e9fH8Z83EY+IpMSZ2iuchiZfFLvGS2EurC+JgbccI + nZWGKdJtkfok1WBgmrz1L10/W3i9Rn8M9VGUGczSVIn3f8IqZDSduQ5v+o/bx/wX5PeK + 558oAi9s4MiZum1Tce8QoWWlbnOuAhe/0X3wtm5ro344/ARYPKsWrVI1nyC8ARx2h3oe + 6CmY05aWzTlShyyfk7rpymJSzFDbQ1JS1yXXZUsWs5lVYul22JnTHW4coTlC98SnSmWT + +q/xEbD9sFL5+axS2X5OGtaBl/pvwLz9RQplbmRzdHJlYW0KZW5kb2JqCjE0IDAgb2Jq + CjczNwplbmRvYmoKOCAwIG9iagpbIC9JQ0NCYXNlZCAxMyAwIFIgXQplbmRvYmoKNCAw + IG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0gL0NvdW50 + IDEgL0tpZHMgWyAzIDAgUiBdID4+CmVuZG9iagoxNSAwIG9iago8PCAvVHlwZSAvQ2F0 + YWxvZyAvT3V0bGluZXMgMiAwIFIgL1BhZ2VzIDQgMCBSID4+CmVuZG9iagoyIDAgb2Jq + Cjw8IC9MYXN0IDE2IDAgUiAvRmlyc3QgMTcgMCBSID4+CmVuZG9iagoxNyAwIG9iago8 + PCAvUGFyZW50IDE4IDAgUiAvQ291bnQgMCAvRGVzdCBbIDMgMCBSIC9YWVogMCA3ODMg + MCBdIC9UaXRsZSAo/v8wrTDjMPMw0DC5XDAwMCBcMDAwMSkKPj4KZW5kb2JqCjE4IDAg + b2JqCjw8ID4+CmVuZG9iagoxNiAwIG9iago8PCAvUGFyZW50IDE4IDAgUiAvQ291bnQg + MCAvRGVzdCBbIDMgMCBSIC9YWVogMCA3ODMgMCBdIC9UaXRsZSAo/v8wrTDjMPMw0DC5 + XDAwMCBcMDAwMSkKPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9MZW5ndGggMjAgMCBSIC9M + ZW5ndGgxIDExOTA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ab16CXRU + RfZ3Vb21l3Re70t6Tae709n3hUTyCNlYgpCoJJFAEgg7sghBGGGCgkhAXJBlcMVx2JEm + RG1AHHRAdMYFF1AZdXQEx7/HfM7Mh46DdPd33+sQId/MHP/neKZf36q6VfXq3frVrXur + 6r3Fi5Z0ogTUjSg0vqV9wXQk/zJSESKTps5rXxDn9RkQvz61a7E7zjNQTs2dvmDGvDjP + P4yQ0jFj7rKB+w0lCJnnzuxsnxYvR1cgLpoJGXEeF0CcMnPe4jvivK4P4jvmzp86UK7/ + Hvjh89rvGHg++gh4923t8zrj9TNoiFMWzL99cZxPfxritgWLOgfq4yaQ7y2EIdeJ5iMF + moM4RJAAVytC3JdKB6KhVCqH37QM1aYpieXfIi0v81Pq75fjVzwvnPu+80pA9SD/T8hQ + XK0vxWwwGkRIjaG8X/XgYIl8HwTOMGpMD6NRQBVAhUDp6SMsqBvvRA8APQlEoVl4PVoG + tA7oV0D0YGoPcEfw+l6aF4/iZciGR4sq2nWTweqyKFWud8KY7Xvc9aHl82PYCqP3Gbb2 + JiDFCCV+Ej+BpiEX/g3y4eWoDqXi7YeDc11tULQHLQDqBqLkEOM9vc4814s4A/loDPf4 + kZPGz7n+kpvpupgbJrjX9XIgTEP0khM4MdF1wvG467eOGa4XgfbFi/YGocZzrj2Oua5N + zjDe3ut6yBHGcM+D8WiJA259zjUvuMU1LVcuH7slTPb1ukqh/BZR5Soq8bgKHRdc2YEw + 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 + KUc8xLh1YW7OQiztpvNZisDBCayMA/KRTlExnPYBEhTlOe2/u6Py0e5H/UFndpqQly0w + wzXRxa9jF6azZ0QfjH79THR6H8s/ncB6LPzDKfQ4gOsuyT7Kv1gnfA/1r36wywYPw4D2 + qeWTEoN8+m+GfSmsopAfBVAVqpG/uhoL3yPdCF9x3QTfVk1ETagZ3gBIPwxvD6T3GNLb + CnibMGbEiNGjWtLrOud2dS6eNbVdriEXQ9ANtAFIOpzeD/QCkOTNpeXC10BXoDk1kB0o + A6gcaCzQJKC5QHcCbQB6FGg/0AtArwN9BPQ10BXosBrIDpQBVA40Njbwg/bRYBqDt7ie + Tx7Cw3fK19WHb3av46H96/icIXzuED5vCJ8/hIeztOvak74GvFbeEUP4yiG85PGvrV81 + hJdG4tryqUP4aUN4WV+uwWvWkPI5Q/i5Q/gFQ/iFQ/hFQ/jFQ/glQ/iuIfwyif9/Mgos + rwplbmRzdHJlYW0KZW5kb2JqCjIwIDAgb2JqCjc4NjIKZW5kb2JqCjIxIDAgb2JqCjw8 + IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvQXNjZW50IDc3MCAvQ2FwSGVpZ2h0IDY4NCAv + RGVzY2VudCAtMjMwIC9GbGFncyAzMgovRm9udEJCb3ggWy05NTEgLTQ4MSAxNDQ1IDEx + MjJdIC9Gb250TmFtZSAvS0FBSklaK0hlbHZldGljYSAvSXRhbGljQW5nbGUgMAovU3Rl + bVYgMCAvTWF4V2lkdGggMTUwMCAvWEhlaWdodCA1MTMgL0ZvbnRGaWxlMiAxOSAwIFIg + Pj4KZW5kb2JqCjIyIDAgb2JqClsgMjc4IDAgMzU1IDAgMCAwIDAgMCAzMzMgMzMzIDAg + MCAyNzggMCAwIDAgNTU2IDU1NiA1NTYgNTU2IDU1NiAwIDAgMCAwIDAKMCAyNzggMCAw + IDAgMCAwIDY2NyA2NjcgNzIyIDcyMiAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg + MCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDU1NiAwIDUwMCA1NTYgNTU2IDAgMCAw + IDIyMiAwIDUwMCAyMjIgMCAwIDAgNTU2IDU1NiAzMzMgMCAyNzgKNTU2IDUwMCAwIDAg + NTAwIF0KZW5kb2JqCjEwIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVl + VHlwZSAvQmFzZUZvbnQgL0tBQUpJWitIZWx2ZXRpY2EgL0ZvbnREZXNjcmlwdG9yCjIx + IDAgUiAvV2lkdGhzIDIyIDAgUiAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAxMjEgL0Vu + Y29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iagoyMyAwIG9iagooTWFjIE9T + IFggMTAuNi44IFF1YXJ0eiBQREZDb250ZXh0KQplbmRvYmoKMjQgMCBvYmoKKEQ6MjAx + MjAyMDcwNTMzNTNaMDAnMDAnKQplbmRvYmoKMSAwIG9iago8PCAvUHJvZHVjZXIgMjMg + MCBSIC9DcmVhdGlvbkRhdGUgMjQgMCBSIC9Nb2REYXRlIDI0IDAgUiA+PgplbmRvYmoK + eHJlZgowIDI1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAxMjQyMCAwMDAwMCBuIAow + MDAwMDAzNDEwIDAwMDAwIG4gCjAwMDAwMDEyODcgMDAwMDAgbiAKMDAwMDAwMzI2MSAw + MDAwMCBuIAowMDAwMDAwMDIyIDAwMDAwIG4gCjAwMDAwMDEyNjcgMDAwMDAgbiAKMDAw + MDAwMTM5MSAwMDAwMCBuIAowMDAwMDAzMjI1IDAwMDAwIG4gCjAwMDAwMDIzMjkgMDAw + MDAgbiAKMDAwMDAxMjE1MSAwMDAwMCBuIAowMDAwMDAxNTAxIDAwMDAwIG4gCjAwMDAw + MDIzMDkgMDAwMDAgbiAKMDAwMDAwMjM2NSAwMDAwMCBuIAowMDAwMDAzMjA1IDAwMDAw + IG4gCjAwMDAwMDMzNDQgMDAwMDAgbiAKMDAwMDAwMzU4NyAwMDAwMCBuIAowMDAwMDAz + NDU4IDAwMDAwIG4gCjAwMDAwMDM1NjUgMDAwMDAgbiAKMDAwMDAwMzY5NCAwMDAwMCBu + IAowMDAwMDExNjQ3IDAwMDAwIG4gCjAwMDAwMTE2NjggMDAwMDAgbiAKMDAwMDAxMTg5 + MyAwMDAwMCBuIAowMDAwMDEyMzI2IDAwMDAwIG4gCjAwMDAwMTIzNzggMDAwMDAgbiAK + dHJhaWxlcgo8PCAvU2l6ZSAyNSAvUm9vdCAxNSAwIFIgL0luZm8gMSAwIFIgL0lEIFsg + PGIyYjdhN2QyOTUxM2NlNWM0OWI1OWU1OWYxMDZlODNhPgo8YjJiN2E3ZDI5NTEzY2U1 + YzQ5YjU5ZTU5ZjEwNmU4M2E+IF0gPj4Kc3RhcnR4cmVmCjEyNDk1CiUlRU9GCjEgMCBv + YmoKPDwvQXV0aG9yIChLYXp1a2kgQUtBTUlORSkvQ3JlYXRpb25EYXRlIChEOjIwMTIw + MjA3MDQzNjAwWikvQ3JlYXRvciAoT21uaUdyYWZmbGUgNS4yLjMpL01vZERhdGUgKEQ6 + MjAxMjAyMDcwNTMzMDBaKS9Qcm9kdWNlciAyMyAwIFIgL1RpdGxlICh0YWtlKT4+CmVu + ZG9iagp4cmVmCjEgMQowMDAwMDEzMTUzIDAwMDAwIG4gCnRyYWlsZXIKPDwvSUQgWzxi + MmI3YTdkMjk1MTNjZTVjNDliNTllNTlmMTA2ZTgzYT4gPGIyYjdhN2QyOTUxM2NlNWM0 + OWI1OWU1OWYxMDZlODNhPl0gL0luZm8gMSAwIFIgL1ByZXYgMTI0OTUgL1Jvb3QgMTUg + MCBSIC9TaXplIDI1Pj4Kc3RhcnR4cmVmCjEzMzE2CiUlRU9GCg== + + QuickLookThumbnail + + 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 + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{68, 181}, {693, 937}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 4 + + + + saveQuickLookFiles + YES + + diff -r 484bf45ca3ee -r ddd5a624bb7a images/take.pdf Binary file images/take.pdf has changed diff -r 484bf45ca3ee -r ddd5a624bb7a images/tree.pdf Binary file images/tree.pdf has changed diff -r 484bf45ca3ee -r ddd5a624bb7a images/update.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/update.graffle Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,1244 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGrafflePro + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {558.99997329711914, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-02-07 04:36:21 +0000 + Creator + Kazuki AKAMINE + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 8 + GraphicsList + + + AllowLabelDrop + + Class + LineGraphic + ID + 137 + Points + + {409.67948780487808, 232} + {427.73099999999999, 198} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 136 + + + + Bounds + {{382.46300000000002, 232}, {47, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 136 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dequeue} + VerticalPad + 0 + + Wrap + NO + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 126 + + ID + 125 + Points + + {351.53658536585368, 232} + {376, 198} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 132 + + + + Bounds + {{351, 170}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 126 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataB} + VerticalPad + 0 + + + + Bounds + {{351, 156}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 127 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 2} + VerticalPad + 0 + + + + Bounds + {{401, 170}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 128 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Pattern + 1 + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{401, 156}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 129 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Pattern + 1 + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 130 + Points + + {323, 201.5} + {456, 201.5} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 131 + Points + + {323, 152} + {456, 152} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + Head + + ID + 123 + Info + 1 + + ID + 174 + Points + + {178.0338530760572, 232} + {243.5158138267511, 198.22366164559278} + + Style + + stroke + + HeadArrow + FilledArrow + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + Tail + + ID + 173 + + + + Bounds + {{218.96299999999999, 170}, {50, 28}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 123 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 dataA} + VerticalPad + 0 + + + + Bounds + {{218.96299999999999, 156}, {50, 14}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 122 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 66 + Points + + {297.98200000000003, 97} + {297.98200000000003, 252} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + Pattern + 1 + TailArrow + 0 + TailScale + 0.5 + + + + + Bounds + {{323, 232}, {47, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 132 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 enqueue} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{329.5, 102}, {120, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 133 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 update("key1", dataB);} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{370.26900000000001, 120}, {34, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 134 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 "key1"} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{313, 120}, {148.53700000000001, 103}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 135 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + + + Text + + VerticalPad + 0 + + + + Bounds + {{140.96299999999999, 232}, {47, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 173 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 enqueue} + VerticalPad + 0 + + Wrap + NO + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 118 + Points + + {140.96299999999999, 201.5} + {273.96300000000002, 201.5} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + + + AllowLabelDrop + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 121 + Points + + {140.96299999999999, 152} + {273.96300000000002, 152} + + Style + + stroke + + HeadArrow + 0 + HeadScale + 1.4285709857940674 + Legacy + + TailArrow + 0 + TailScale + 0.5 + + + + + Bounds + {{147.46299999999999, 102}, {120, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 171 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 update("key1", dataA);} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{188.232, 120}, {34, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 120 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg932\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 "key1"} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{130.96299999999999, 120}, {148.53700000000001, 103}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 117 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + + + Text + + VerticalPad + 0 + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + レイヤー 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-02-07 04:57:12 +0000 + Modifier + Kazuki AKAMINE + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {594.99997329711914, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + キャンバス 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{57, 83}, {693, 937}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, -7}, {558, 798}} + Zoom + 1 + ZoomValues + + + キャンバス 1 + 1 + 1 + + + + + diff -r 484bf45ca3ee -r ddd5a624bb7a images/update.pdf Binary file images/update.pdf has changed diff -r 484bf45ca3ee -r ddd5a624bb7a improvement.tex --- a/improvement.tex Sun Mar 31 16:35:18 2013 +0900 +++ b/improvement.tex Mon Apr 01 01:52:11 2013 +0900 @@ -1,29 +1,30 @@ \section{改善案} \subsection{HashMap} -HashMapによる探索を排除することはRemoteに対してData Segmentを送受信する際には、マネージャーキーによる探索の操作は削ることは出来ないが、Localにおいては固有のマネージャーキーによる探索は必要ない。改善案としてマネージャーキーを指定しない場合の +HashMapによる探索を排除することは複数のRemote DSMがあるので難しい。しかし、Localに対してはDSMが固有であるので、マネージャーキーによる探索は必要ない。 +従ってLocal 専用の Data Segment APIを提供することによりHashMapによる探索の回数を減らすことができる。 + \subsection{Message Pack} AliceではData SegmentをValue型という、Message Packが提供している型で保存している。 Value というクラスは動的に型付けされたオブジェクトを表現することができるため、RubyやPythonのような動的型付けの言語のオブジェクトと同様の扱いをすることができる。 分散プログラムのアプリケーションはサーバとクライアントのVersionが同じとは限らない。サーバ側が更新され、扱うData Segmentが変更された場合であっても、旧Versionとの互換性が要求される。 Aliceは、この問題をMessage PackのValue型を用いることで互換性をもたせようとしている。 +しかし、Versionの問題が起こらないLocalの場合、Data SegmentをValue型に変換し、また任意の型に戻すという操作を行う必要はなく、この操作はは単なるオーバーヘッドにしかならない。 -改善前のAliceではData Segmentをput、updateする段階で、Value型に変換され保存されている。そして、Code Segmentが実行される段階でasClassメソッドに変換したいClassを引数として渡すことで目的の型に戻す。 -しかし、Versionの問題が起こらないLocalの場合、Data SegmentをValue型に変換し、また任意の型に戻すという操作を行う必要はなく、この操作はは単なるオーバーヘッドにしかならない。 -Data Segmentの送信先がRemoteの場合に限りValue型に変換するように変更した。内部ではObject型として保存されているのでCode Segment内で処理をする際にキャストを行う必要があるが、この場合もasClassメソッドにClassを引数として渡すだけでよい。 +以上のことからData Segmentの送信先がRemoteの場合に限りValue型に変換を行われるように設計をすれば良い。内部ではObject型として保存する。この場合、Code Segment内でData Segmentを処理をする際にキャストを行う必要があるが、asClassメソッドでキャストを行うようにすることで、RemoteとLocalの記述を同じにすることができる。 そのため、プログラマーはData Segmentとして送られてくるオブジェクトの型を気にすることなくプログラムを記述できる。 \subsection{SEDA Archtecture } -マルチコアが主流になっている背景からAliceにはSEDA Archtectureを採用しているが、SEDAはスループット重視であり、多段のパイプラインのせいでレスポンスが遅れてしまう。Aliceは現在3段のパイプラインで構成されている。今回SEDAのStageを減らす事により、レスポンスの改善を行った。 +Localにおいてはput や peek に沿ったCommand を作成するステージ(Code Segmentが実行されているスレッド)、受け取ったCommandを処理するステージ、Code SegmentにData Segmentをセットするステージの三段のパイプラインで構成されている。最後のCode SegmentにData Segmentをセットするステージはpeekとtakeの時のみ実行される。 +今回、二段目と三段目を一つにまとめることによってステージを減らすことによりオーバーヘッドを減らす。 -\subsection{flip} - +\subsection{Data Segmentの再構成} Data Segmentの更新におけるオーバーヘッドを減らす方法としてCeriumでも良好な結果を得ているflipを提案する。 CeriumにおけるflipはInput Data SegmentとOutput Data SegmentをswapさせるAPIである。 -AliceにおいてもCeriumと同様に -Code Segmentはpeek , takeを使いData Segmentを取得する。 -取得したData SegmentはInput Data Segmentと呼ばれCode Segmentの Receiverというフィールドに保存されている。 -そして、Code Segment内でInput Data Segmentに対して処理が行われ、Output Data Segmentとして出力される。 -実際はputまたはupdateメソッドにData Segmentなどを引数として渡すことで行うことができるが、この際に、Data Segmentのコピーが行われる。 +\begin{table}[tb] +\lstinputlisting[label=fig:CodeSegment, caption=Ceriumにおけるflipの例]{source/Cerium_flip.cc} +\end{table} -flipではInput Data SegmentコピーしてOutput Data Segmentを作成するのではなく、Input Data SegmentそのものをOutput DSMに渡すことでData Segmentの無駄なコピーを防ぐ。 +AliceにおいてもCeriumと同様にflipを実装する。 +AliceにおけるflipはInput Data SegmentコピーしてOutput Data Segmentを作成するのではなく、Input Data SegmentそのものをOutput DSMに渡すことでData Segmentの無駄なコピーを防ぐ。 + diff -r 484bf45ca3ee -r ddd5a624bb7a jlisting.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jlisting.sty Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,216 @@ +\NeedsTeXFormat{LaTeX2e} +\def\filedate{2006/02/20} +\def\fileversion{0.2} +\ProvidesPackage{jlisting}[\filedate\space\fileversion\space(Thor)] +% +\newcount\lst@nextchar +\let\lst@@ProcessSpace\lst@ProcessSpace +\def\lst@ProcessSpace#1{% + \lst@check@chartype{#1}% + \lst@@ProcessSpace + \lst@whitespacetrue} +\let\lst@@ProcessLetter\lst@ProcessLetter +\def\lst@ProcessLetter#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessLetter{#1}}% + \relax} +\let\lst@@ProcessDigit\lst@ProcessDigit +\def\lst@ProcessDigit#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessDigit{#1}}% + \relax} +\let\lst@@ProcessOther\lst@ProcessOther +\def\lst@ProcessOther#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessOther{#1}}% + \relax} +\let\lst@@ProcessTabulator\lst@ProcessTabulator +\def\lst@ProcessTabulator#1{% + \lst@check@chartype{#1}% + \lst@@ProcessTabulator + \relax} +\def\lst@check@chartype#1#2#3{% + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \afterassignment\remove@to@nnil + \@tempa\@nnil + #2% + \ifnum\lst@nextchar<\@cclvi + #3% + \else + \lst@ifletter \else \lst@OutputOther \fi + \lst@whitespacefalse + \expandafter\lst@AppendJchar + \fi + #1} +\def\lst@AppendJchar#1#2{% + \lst@check@chartype{#2}% + {\advance\lst@length\@ne\lst@Append{#1}}% + \relax} +\def\lst@check@chartype@BOL#1{% + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \afterassignment\remove@to@nnil + \@tempa\@nnil + \ifnum\lst@nextchar<\@cclvi\else + \lst@whitespacefalse + \expandafter\lst@AppendJchar + \fi + #1} +\def\lst@InputListing#1{% + \begingroup + \lsthk@PreSet \gdef\lst@intname{#1}% + \expandafter\lstset\expandafter{\lst@set}% + \lsthk@DisplayStyle + \catcode\active=\active + \lst@Init\relax \let\lst@gobble\z@ + \lst@SkipToFirst + \lst@ifprint \def\lst@next{\lst@get@filecontents{#1}}% + \else \let\lst@next\@empty + \fi + \lst@next + \lst@DeInit + \endgroup} +\newread\lst@inputfile +\def\lst@get@filecontents#1{% + \let\lst@filecontents\@empty + \openin\lst@inputfile=#1\relax + \let\@lst@get@filecontents@prevline\relax + \lst@get@filecontents@loop + \closein\lst@inputfile + \lst@filecontents\empty} +\def\lst@get@filecontents@loop{% + \read\lst@inputfile to\@lst@get@filecontents@currline + \ifx\@lst@get@filecontents@prevline\relax\else + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\lst@filecontents + \expandafter\expandafter\expandafter{% + \expandafter\lst@filecontents\@lst@get@filecontents@prevline}% + \fi + \let\@lst@get@filecontents@prevline\@lst@get@filecontents@currline + \ifeof\lst@inputfile\else + \expandafter\lst@get@filecontents@loop + \fi} +%%% [$B$3$N=hM}$b!$AjEv6/0z$G$9!%(B] +\def\lst@BOLGobble{% + \ifnum\lst@gobble>\z@ + \@tempcnta\lst@gobble\relax + \expandafter\lst@BOLGobble@ + \else + \expandafter\lst@check@chartype@BOL + \fi} +\def\lst@BOLGobble@#1{% + \let\lst@next#1% + \ifx \lst@next\relax\else + \ifx \lst@next\lst@MProcessListing\else + \ifx \lst@next\lst@ProcessFormFeed\else + \ifx \lst@next\lstenv@backslash + \let\lst@next\lstenv@BOLGobble@@ + \else + \let\lst@next\lst@BOLGobble@@ + \ifx #1\lst@ProcessTabulator + \advance\@tempcnta-\lst@tabsize\relax + \ifnum\@tempcnta<\z@ + \lst@length-\@tempcnta \lst@PreGotoTabStop + \fi + \else + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \@tempa + \ifnum\lst@nextchar<\@cclvi\else + \advance\@tempcnta\m@ne + \fi + \advance\@tempcnta\m@ne + \fi + \fi \fi \fi \fi + \lst@next} +\def\lst@BOLGobble@@{% + \ifnum\@tempcnta>\z@ + \expandafter\lst@BOLGobble@ + \else + \expandafter\lst@check@chartype@BOL + \fi +} +% +% \begin{$B=$@5;v9`(B}{1.3} +% $B$A$g$C$H$7$?=$@5(B +\gdef\lst@breakProcessOther#1{\lst@ProcessOther#1} +% $B%=!<%9%3!<%IL\:\$7$^$7$?!#(B + +\begin{quote} + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21172.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21184.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21189.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21197.html} +\end{quote} + + Copyright $B$O5H1JE/H~;a$K$"$k$N$@$H;W$$$^$9!%(B + +\section{$B99?7MzNr(B}% ChageLogs + +\begin{description} + \item[ver.~0.1 (2004/03/24)] + $B$H$j$"$($:8x3+!%(B + \item[ver.~0.2 (2006/02/20)] + \verb|\lst@breakProcessOther| $BL?Na$NDj5A$NDI2C!%(B +\end{description} + +\section{$B%=!<%9%3!<%I(B} +\par\narrowbaselines +\verbatiminput{jlisting.sty} +\end{document} diff -r 484bf45ca3ee -r ddd5a624bb7a sigos.tex --- a/sigos.tex Sun Mar 31 16:35:18 2013 +0900 +++ b/sigos.tex Mon Apr 01 01:52:11 2013 +0900 @@ -1,5 +1,6 @@ \documentclass[techrep]{ipsjpapers} \usepackage[dvipdfm]{graphicx} +\usepackage{listings,jlisting} \usepackage{url} \input{dummy.tex} %% Font @@ -45,12 +46,34 @@ % 英文概要 \begin{eabstract} - +Alice is an distributed programming frame Alice, which uses Data Segment and Code Segment as programming units. We checked that Alice has an ability to write distributed program. \end{eabstract} % 表題などの出力 \maketitle % 本文はここから始まる +\lstset{% + frame=single, + stringstyle={\ttfamily}, + commentstyle={\ttfamily}, + identifierstyle={\ttfamily}, + keywordstyle={\ttfamily}, + basicstyle={\ttfamily}, + breaklines=true, + xleftmargin=0zw, + xrightmargin=0zw, + framerule=.2pt, + columns=[l]{fullflexible}, + numbers=left, + stepnumber=1, + numberstyle={\scriptsize}, + numbersep=1em, + language={Java}, + tabsize=4, + lineskip=-0.5zw, + morecomment={[s][]{/**}{*/}}, +} + \input{introduction} % 研究目的 \input{alice} % Aliceについて diff -r 484bf45ca3ee -r ddd5a624bb7a source/.DS_Store Binary file source/.DS_Store has changed diff -r 484bf45ca3ee -r ddd5a624bb7a source/Cerium_flip.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/Cerium_flip.cc Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,5 @@ +void swap() { + void * tmp = readbuf; + readbuf = writebuf; + writebuf = tmp; +} \ No newline at end of file diff -r 484bf45ca3ee -r ddd5a624bb7a source/MessagePackTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/MessagePackTest.java Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,7 @@ +import org.msgpack.annotation.Message + +@Message +public class MessagePackTest { + public String key; + public int val; +} diff -r 484bf45ca3ee -r ddd5a624bb7a source/StartCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/StartCodeSegment.java Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,15 @@ +public class StartCodeSegment extends CodeSegment { + + @Override + public void run() { + System.out.println("run StartCodeSegment"); + + TestCodeSegment cs = new TestCodeSegment(); + cs.input1.setKey("local", "key1"); + + System.out.println("create TestCodeSegment"); + + ods.update("local", "key1", "String data"); + } + +} \ No newline at end of file diff -r 484bf45ca3ee -r ddd5a624bb7a source/TestCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/TestCodeSegment.java Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,14 @@ +public class TestCodeSegment extends CodeSegment { + Receiver input1 = ids.create(CommandType.PEEK); + + @Override public void run() { + System.out.println("index = " + input1.index); + System.out.println("data = " + input1.val); + + if (input1.index == 10) System.exit(0); + + TestCodeSegment cs = new TestCodeSegment(); + cs.input1.setKey("local", "key1", input1.index); + ods.update("local", "key1", "String data"); + } +} \ No newline at end of file diff -r 484bf45ca3ee -r ddd5a624bb7a source/TestLocalAlice.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/TestLocalAlice.java Mon Apr 01 01:52:11 2013 +0900 @@ -0,0 +1,5 @@ +public class TestLocalAlice { + public static void main(String args[]) { + new StartCodeSegment().execute(); + } +}