Slides for the week

This commit is contained in:
Oliver Kennedy 2021-02-14 22:37:07 -05:00
parent 2a795b7f6c
commit ee1b7eb600
Signed by: okennedy
GPG key ID: 3E5F9B3ABD3FDB60
29 changed files with 18882 additions and 7 deletions

View file

@ -202,7 +202,7 @@ case class AttributeReference(
That all being said, here are unresolved nodes you can expect to encounter:
</p>
<h5>LogicalPlan</h5>
<h4>LogicalPlan</h4>
<pre>
case class UnresolvedRelation(
nameElements: Seq[String],
@ -224,7 +224,7 @@ case class ____(____)
Note that AttributeSet is a subclass of Seq[Attribute]. In general, the output field should be given as a sequence of AttributeReferences (see above).
</p>
<h5>Expression</h5>
<h4>Expression</h4>
<pre>
case class UnresolvedStar(target: Option[Seq[String]])
</pre>

View file

@ -14,26 +14,31 @@ schedule:
- date: "Feb. 9"
topic: "Relational Algebra + Spark"
materials:
lecture: https://youtu.be/xnJNTTirgoY
slides: slide/2021-02-09-RA-Basics-and-Spark.html
- date: "Feb. 11"
topic: "Relational Algebra Equivalence Rules"
materials:
lecture: https://youtu.be/IJLLCB6tdCk
slides: slide/2021-02-11-RA-Equivs.html
- date: "Feb. 16"
topic: "Algorithms, Checkpoint 1"
due: "Checkpoint 0"
materials:
checkpoint1: "checkpoint1.html"
slides: slide/2021-02-16-Checkpoint1.html
- date: "Feb. 18"
topic: "Extended Relational Algebra"
topic: "Relational Algebra Algorithms"
materials:
slides: slide/2021-02-18-QueryAlgorithms.html
- date: "Feb. 23"
topic: "Physical Data Layout"
topic: "Extended Relational Algebra"
- date: "Feb. 25"
topic: "Indexes: Tree-Based"
topic: "Physical Data Layout"
- date: "Mar. 2"
topic: "Indexes: Hash, View-Based"
topic: "Indexes: Tree-Based, Hash"
- date: "Mar. 4"
topic: "Indexes: Modern"
topic: "Indexes: View-Based, Modern"
- date: "Mar. 9"
topic: "Spark's Optimizer + Checkpoint 2"
due: "Checkpoint 1"

View file

@ -0,0 +1,785 @@
---
template: templates/cse4562_2021_slides.erb
title: "Checkpoint 1"
date: February 16, 2021
textbook: "Ch. 16.1"
---
<!-- 2018 by OK
It might be useful to demystify Eval a bit. Show a snippet of the instanceof if/else chain to make it clearer what exactly Eval does.
It might also be useful to cover:
- Typechecking
- Schema Generation for RA Trees
2021 by OK:
- All three of the above go away with the switch to Spark, but the corresponding bits should now highlighted.
-->
<section>
<section>
<h2>Checkpoint 1</h2>
<svg width="900px" height="320px">
<image x="0" y="0" xlink:href="graphics/Clipart/Window.png" width="900px" height="24px" />
<rect x="0" y="24" fill="black" width="900px" height="296px" />
<g transform="translate(0,44)">
<text x="5" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">sif$</text>
<g class="fragment">
<text x="50" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">scalac -cp build:Catalyzer.jar -jar submission.jar {all .java files}</text>
<text x="5" y="20" font-size="12pt" font-family="Courier" fill="#00ff00" class="fragment">sif$</text>
</g>
</g>
<g transform="translate(0,64)" class="fragment">
<text x="50" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">ls data/</text>
<text x="5" y="20" font-size="12pt" font-family="Courier" fill="#00ff00">R.data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S.data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T.data</text>
<text x="5" y="40" font-size="12pt" font-family="Courier" fill="#00ff00">sif$</text>
</g>
<g transform="translate(0,104)" class="fragment">
<text x="50" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">head -n 2 data/R.data</text>
<text x="5" y="20" font-size="12pt" font-family="Courier" fill="#00ff00">1|3|5</text>
<text x="5" y="40" font-size="12pt" font-family="Courier" fill="#00ff00">2|9|1</text>
<text x="5" y="60" font-size="12pt" font-family="Courier" fill="#00ff00">sif$</text>
</g>
<g transform="translate(0,164)" class="fragment">
<text x="50" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">scala -cp submission.jar:Catalyzer.jar microbase.Microbase</text>
</g>
<g transform="translate(0, 184)" class="fragment">
<text x="5" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">$&gt;</text>
</g>
<g transform="translate(0, 204)" class="fragment">
<text x="5" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">CREATE TABLE R(A int, B int, C int);</text>
<text x="5" y="20" font-size="12pt" font-family="Courier" fill="#00ff00">$&gt;</text>
</g>
<g transform="translate(0, 244)" class="fragment">
<text x="5" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">SELECT A, C FROM R WHERE B &lt; 5;</text>
</g>
<g transform="translate(0, 264)" class="fragment">
<text x="5" y="0" font-size="12pt" font-family="Courier" fill="#00ff00">1|5</text>
<text x="5" y="20" font-size="12pt" font-family="Courier" fill="#00ff00">...</text>
<text x="5" y="40" font-size="12pt" font-family="Courier" fill="#00ff00">$&gt;</text>
</g>
</svg>
</section>
<section>
<h2>Checkpoint 1</h2>
<ul style="font-size: 90%">
<li>Your code is compiled just the same as in Checkpoint 0.</li>
<li class="fragment">Print a prompt '$&gt;' at the start and after each command.</li>
<li class="fragment">Read one command per line.</li>
<li class="fragment"><tt>CREATE TABLE</tt> statements tell you the schema of each table.</li>
<li class="fragment">Data lives in a '|'-separated file in 'data/[tablename].data'</li>
<li class="fragment">Print query results '|'-separated</li>
</ul>
</section>
<section>
<h2>Setup</h2>
Add this to your <b>build.sbt</b> (modify as appropriate for your IDE)
<pre><code class="scala">
resolvers += "MimirDB" at "https://maven.mimirdb.info/"
libraryDependencies += "edu.buffalo.cse.odin" %% "catalyzer" % "3.0"
</code></pre>
<p><b>Docs</b>: <a href="https://doc.odin.cse.buffalo.edu/catalyzer/">https://doc.odin.cse.buffalo.edu/catalyzer/</a></p>
<p><b>Code</b>: <a href="https://gitlab.odin.cse.buffalo.edu/okennedy/catalyzer">https://gitlab.odin.cse.buffalo.edu/okennedy/catalyzer</a></p>
</section>
</section>
<section>
<section>
<svg width="800" height="100">
<g transform="translate(0,20)">
<image x="0" y="0" xlink:href="graphics/Clipart/Server.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">→ SQL</text>
</g>
</svg>
<pre><code class="sql">CREATE TABLE PLAYERS(
ID string,
FIRSTNAME string,
LASTNAME string,
FIRSTSEASON int,
LASTSEASON int,
WEIGHT int,
BIRTHDATE date
);
SELECT FIRSTNAME, LASTNAME, WEIGHT, BIRTHDATE
FROM PLAYERS WHERE WEIGHT>200;</code></pre>
</section>
<section>
<svg width="800" height="100">
<g transform="translate(0,20)">
<image x="0" y="0" xlink:href="graphics/Clipart/Server.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt" fill="red">→ SQL</text>
</g>
</svg>
<pre><code class="scala">
import org.apache.spark.sql.execution.SparkSqlParser
import org.apache.spark.sql.catalyst.plans.logical.LogicalPlan
...
def parseSql(sql: String): LogicalPlan =
new SparkSqlParser().parsePlan(sql)
...
</code></pre>
</section>
<section>
<svg width="800" height="100">
<g transform="translate(0,20)">
<image x="0" y="0" xlink:href="graphics/Clipart/Server.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">→ SQL</text>
<text x="95" y="38" font-size="12pt" class="fragment">→ ?</text>
</g>
</svg>
<pre><code class="scala">
...
plan match {
case c:CreateTableStatement =>
/* do something with c.name, c.tableSchema */
case _ =>
/* Interpret plan like a query */
}
...
</code></pre>
</section>
<section>
<svg width="800" height="100">
<g transform="translate(0,20)">
<image x="0" y="0" xlink:href="graphics/Clipart/Server.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">→ SQL</text>
<g transform="translate(115,0)">
<text font-size="18pt" transform="translate(-15,25)rotate(-45)">→</text>
<text x="0" y="0" font-size="14pt" font-family="Courier">CREATE TABLE</text>
</g>
<g transform="translate(115,75)" fill="grey">
<text font-size="18pt" transform="translate(-27,-25)rotate(45)">→</text>
<text x="0" y="0" font-size="14pt" font-family="Courier">SELECT</text>
</g>
</g>
</svg>
<pre><code class="sql">CREATE TABLE PLAYERS(
ID string,
FIRSTNAME string,
LASTNAME string,
FIRSTSEASON int,
LASTSEASON int,
WEIGHT int,
BIRTHDATE date
);</code></pre>
<p style="font-size: 20pt" class="fragment">There is a table named "PLAYERS"...
<ul style="font-size: 18pt">
<li class="fragment" style="margin: 10px;">... with 7 attributes</li>
<li class="fragment" style="margin: 10px;">... who's attributes have the given types</li>
<li class="fragment" style="margin: 10px;">... with data in the file "data/PLAYERS.data"</li>
</ul>
</p>
</section>
<section>
<svg width="800" height="100">
<g transform="translate(0,20)">
<image x="0" y="0" xlink:href="graphics/Clipart/Server.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">→ SQL</text>
<g transform="translate(115,-20)">
<text font-size="18pt" transform="translate(-15,45)rotate(-45)">→</text>
<text x="0" y="20" font-size="14pt" font-family="Courier">CREATE TABLE</text>
<g transform="translate(170,0)">
<text font-size="18pt" transform="translate(-27,23)">→</text>
<image x="0" y="0" xlink:href="graphics/Clipart/DB.png" width="48px" height="50px" />
<rect x="-18" y="25" width="80" height="20" fill="white" opacity="0.7" />
<text font-size="12pt" transform="translate(-28,40)">Saved Schema</text>
</g>
<g transform="translate(400, 0)" class="fragment">
<image x="0" y="0" xlink:href="graphics/Clipart/File.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">.data</text>
</g>
</g>
<g transform="translate(115,75)" fill="grey">
<text font-size="18pt" transform="translate(-27,-25)rotate(45)">→</text>
<text x="0" y="0" font-size="14pt" font-family="Courier">SELECT</text>
</g>
</g>
</svg>
<pre class="fragment">
ABDELAL01|Alaa|Abdelnaby|1990|1994|240|1968-06-24
ABDULKA01|Kareem|Abdul-jabbar|1969|1988|225|1947-04-16
ABDULMA01|Mahmo|Abdul-rauf|1990|2000|162|1969-03-09
ABDULTA01|Tariq|Abdul-wahad|1997|2002|223|1974-11-03
ABDURSH01|Shareef|Abdur-rahim|1996|2007|225|1976-12-11
ABERNTO01|Tom|Abernethy|1976|1980|220|1954-05-06
ABRAMJO01|John|Abramovic|1946|1947|195|1919-02-09
ACKERAL01|Alex|Acker|2005|2008|185|1983-01-21
ACKERDO01|Donald|Ackerman|1953|1953|183|1930-09-04
ACRESMA01|Mark|Acres|1987|1992|220|1962-11-15
ACTONCH01|Charles|Acton|1967|1967|210|1942-01-11
... </pre>
</section>
<section>
<svg width="800" height="100">
<g transform="translate(0,20)">
<image x="0" y="0" xlink:href="graphics/Clipart/Server.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">→ SQL</text>
<g transform="translate(115,-20)" fill="grey">
<text font-size="18pt" transform="translate(-15,45)rotate(-45)">→</text>
<text x="0" y="20" font-size="14pt" font-family="Courier">CREATE TABLE</text>
<g transform="translate(170,0)">
<text font-size="18pt" transform="translate(-27,23)">→</text>
<image x="0" y="0" xlink:href="graphics/Clipart/DB.png" width="48px" height="50px" />
<rect x="-18" y="25" width="80" height="20" fill="white" opacity="0.7" />
<text font-size="12pt" transform="translate(-28,40)">Saved Schema</text>
</g>
<g transform="translate(400, 0)" fill="black">
<image x="0" y="0" xlink:href="graphics/Clipart/File.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">.data</text>
<g transform="translate(30,50)">
<polyline points="0,0 0,40" stroke="black" stroke-width="1.5"/>
</g>
</g>
</g>
<g transform="translate(115,75)">
<text font-size="18pt" transform="translate(-27,-25)rotate(45)">→</text>
<text x="0" y="0" font-size="14pt" font-family="Courier">SELECT</text>
<g transform="translate(70,-6)">
<polyline points="0,0 450,0" stroke="black" stroke-width="1.5"/>
<g transform="translate(440,0)">
<polyline points="0,0 10,0 0,3 0,-3 10,0" stroke="black" stroke-width="1.5"/>
</g>
<g transform="translate(455,0)">
<text x="0" y="6" font-size="14pt">Results</text>
</g>
</g>
</g>
</g>
</svg>
<h3>Example Queries</h3>
<ol>
<li style="font-size: 20pt">SELECT A, B, ... FROM R <b>(Project)</b></li>
<li style="font-size: 20pt">SELECT A, B, ... FROM R WHERE ... <b>(Project+Filter)</b></li>
<li style="font-size: 20pt">SELECT A+B AS C, ... FROM R <b>(Map)</b></li>
<li style="font-size: 20pt">SELECT A+B AS C, ... FROM R WHERE ... <b>(Map+Filter)</b></li>
<li class="fragment highlight-grey" data-fragment-index="1" style="font-size: 20pt">SELECT SUM(A+B) AS C, ... FROM R <b>(Aggregate)</b></li>
<li class="fragment highlight-grey" data-fragment-index="1" style="font-size: 20pt">SELECT SUM(A+B) AS C, ... FROM R WHERE ... <b>(Aggregate+Filter)</b></li>
</ol>
</section>
<section>
<svg width="800" height="100">
<g transform="translate(0,20)">
<image x="0" y="0" xlink:href="graphics/Clipart/Server.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">→ SQL</text>
<g transform="translate(115,-20)" fill="grey">
<text font-size="18pt" transform="translate(-15,45)rotate(-45)">→</text>
<text x="0" y="20" font-size="14pt" font-family="Courier">CREATE TABLE</text>
<g transform="translate(170,0)">
<text font-size="18pt" transform="translate(-27,23)">→</text>
<image x="0" y="0" xlink:href="graphics/Clipart/DB.png" width="48px" height="50px" />
<rect x="-18" y="25" width="80" height="20" fill="white" opacity="0.7" />
<text font-size="12pt" transform="translate(-28,40)">Saved Schema</text>
</g>
<g transform="translate(400, 0)" fill="black">
<image x="0" y="0" xlink:href="graphics/Clipart/File.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">.data</text>
<g transform="translate(30,50)">
<polyline points="0,0 0,40" stroke="black" stroke-width="1.5"/>
</g>
</g>
</g>
<g transform="translate(115,75)">
<text font-size="18pt" transform="translate(-27,-25)rotate(45)">→</text>
<text x="0" y="0" font-size="14pt" font-family="Courier">SELECT</text>
<g transform="translate(70,-6)">
<polyline points="0,0 450,0" stroke="black" stroke-width="1.5"/>
<g transform="translate(440,0)">
<polyline points="0,0 10,0 0,3 0,-3 10,0" stroke="black" stroke-width="1.5"/>
</g>
<g transform="translate(455,0)">
<text x="0" y="6" font-size="14pt">Results</text>
</g>
</g>
</g>
</g>
</svg>
<h4>Spark's Workflow</h4>
<ol style="font-size: 80%">
<li>Analysis</li>
<li class="fragment highlight-grey" data-fragment-index="1">Optimization</li>
<li class="fragment highlight-grey" data-fragment-index="1">Physical Planning</li>
<li>Code Generation</li>
<li>Execution</li>
</ol>
</section>
<section>
<svg width="800" height="100">
<g transform="translate(0,20)">
<image x="0" y="0" xlink:href="graphics/Clipart/Server.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">→ SQL</text>
<g transform="translate(115,-20)" fill="grey">
<text font-size="18pt" transform="translate(-15,45)rotate(-45)">→</text>
<text x="0" y="20" font-size="14pt" font-family="Courier">CREATE TABLE</text>
<g transform="translate(170,0)">
<text font-size="18pt" transform="translate(-27,23)">→</text>
<image x="0" y="0" xlink:href="graphics/Clipart/DB.png" width="48px" height="50px" />
<rect x="-18" y="25" width="80" height="20" fill="white" opacity="0.7" />
<text font-size="12pt" transform="translate(-28,40)">Saved Schema</text>
</g>
<g transform="translate(400, 0)" fill="black">
<image x="0" y="0" xlink:href="graphics/Clipart/File.png" width="50px" height="50px" />
<text x="45" y="38" font-size="12pt">.data</text>
</g>
</g>
<g transform="translate(115,75)">
<text font-size="18pt" transform="translate(-27,-25)rotate(45)">→</text>
<text x="0" y="0" font-size="14pt" font-family="Courier">SELECT</text>
<g transform="translate(70,-6)">
<polyline points="0,0 30,0" stroke="black" stroke-width="1.5"/>
<g transform="translate(20,0)">
<polyline points="0,0 10,0 0,3 0,-3 10,0" stroke="black" stroke-width="1.5"/>
</g>
<g transform="translate(35,0)" class="fragment">
<text x="0" y="6" font-size="14pt" fill="red">LogicalPlan</text>
<g transform="translate(95,0)">
<polyline points="0,0 30,0" stroke="black" stroke-width="1.5"/>
<g transform="translate(20,0)">
<polyline points="0,0 10,0 0,3 0,-3 10,0" stroke="black" stroke-width="1.5"/>
</g>
<g transform="translate(35,0)" class="fragment">
<g transform="translate(-30,-40) rotate(45)">
<polyline points="0,0 40,0" stroke="black" stroke-width="1.5"/>
<g transform="translate(30,0)">
<polyline points="0,0 10,0 0,3 0,-3 10,0" stroke="black" stroke-width="1.5"/>
</g>
</g>
<text x="0" y="6" font-size="14pt" fill="red">Analyzed Plan</text>
<g transform="translate(120,0)" class="fragment">
<polyline points="0,0 30,0" stroke="black" stroke-width="1.5"/>
<g transform="translate(20,0)">
<polyline points="0,0 10,0 0,3 0,-3 10,0" stroke="black" stroke-width="1.5"/>
</g>
<g transform="translate(35,0)">
<text x="0" y="6" font-size="14pt" fill="red">Iterators</text>
<g transform="translate(32,-40)">
<polyline points="0,0 0,25" stroke="black" stroke-width="1.5"/>
<g transform="translate(0,15) rotate(90)">
<polyline points="0,0 10,0 0,3 0,-3 10,0" stroke="black" stroke-width="1.5"/>
</g>
</g>
<g transform="translate(75,0)" class="fragment">
<polyline points="0,0 50,0" stroke="black" stroke-width="1.5"/>
<g transform="translate(40,0)">
<polyline points="0,0 10,0 0,3 0,-3 10,0" stroke="black" stroke-width="1.5"/>
</g>
<g transform="translate(55,0)">
<text x="0" y="6" font-size="14pt">Results</text>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
</section>
</section>
<section>
<section>
<h3>Analysis</h3>
<dl>
<div class="fragment">
<dt>Resolution</dt>
<dd>
<ul>
<li>Replace placeholder values from parsing.</li>
<li>"Wire up" attributes between operators.</li>
</ul>
</dd>
</div>
<div class="fragment">
<dt>Validation</dt>
<dd>
<ul>
<li>Ensure all of the types line up.</li>
</ul>
</dd>
</div>
</dl>
</section>
<section>
<h3>Placeholders</h3>
<pre><code class="scala">
case class UnresolvedRelation(
nameElements: Seq[String],
options: CaseInsensitiveStringMap,
isStreaming: Boolean
)
</code></pre>
<p><b>Separation of concerns:</b> The parser doesn't know what tables have been defined.</p>
</section>
<section>
<h3>Try It</h3>
<pre><code class="scala">
println(
parser.parsePlan("SELECT * FROM R").treeString
)
</code></pre>
<pre><code>
'Project [*]
+- 'UnresolvedRelation [R], [], false
</code></pre>
</section>
<section>
<pre><code class="scala">
Project(Seq(UnresolvedStar(None)),
UnresolvedRelation(Seq("R"), CaseInsensitiveStringMap.empty, false)
)
</code></pre>
<p class="fragment">The interesting thing here is the <tt>nameElements</tt> field<br/>(<tt>Seq("R")</tt> above)</p>
<p class="fragment">This is a sequence to handle multipart names<br/>(e.g., <tt>source.table</tt>→ <tt>Seq("source", "table")</tt>)</p>
</section>
<section>
<h3>Replacing Placeholders</h3>
<pre><code class="scala">
import org.apache.spark.sql.catalyst.analysis.UnresolvedRelation
...
plan.transform {
case UnresolvedRelation(nameElements, _, _) => ???
}
</code></pre>
<p class="fragment">By the way, <tt>???</tt> is valid Scala.<br/>It means "I haven't implemented this yet".</p>
<p class="fragment">So what goes there?</p>
</section>
<section>
<h3>Suggested Approach</h3>
<pre><code class="scala">
import org.apache.spark.sql.catalyst.plans.logical.LeafNode
import org.apache.spark.sql.catalyst.expressions.AttributeSequence
class Table( /* parameters */ ) extends LeafNode
{
def output: AttributeSequence = ???
}
</code></pre>
</section>
<section>
<h3>Expressions</h3>
</section>
<section>
<p style="font-size: 70%"><tt>org.apache.spark.sql.catalyst.analysis.UnresolvedStar</tt></p>
<p>↓</p>
<p><tt>Seq(AttributeReference)</tt></p>
<p style="font-size: 70%; margin-top: 40px"><tt>org.apache.spark.sql.catalyst.analysis.UnresolvedAttribute</tt></p>
<p>↓</p>
<p><tt>AttributeReference</tt></p>
</section>
<section>
<pre><code class="scala">
case class AttributeReference(
name: String,
dataType: DataType,
nullable: Boolean = true,
override val metadata: Metadata = Metadata.empty
)(
val exprId: ExprId = NamedExpression.newExprId,
val qualifier: Seq[String] = Seq.empty[String]
) extends Attribute with Unevaluable { ... }
</code></pre>
<p style="font-size: 80%"><b>Simple Constructor: </b> <tt>AttributeReference(name, dt)()</tt></p>
<p class="fragment" style="font-size: 80%"><b>ExprId Constructor: </b> <tt>AttributeReference(name, dt)(id)</tt></p>
</section>
<section>
<h3>exprId</h3>
<pre><code class="scala">
AttributeReference("a", IntType)().equals(
AttributeReference("a", IntType)())
</code></pre>
<p class="fragment">returns <b>false</b></p>
<p class="fragment">Spark uses exprId equivalence to check whether two attributes are the same.</p>
</section>
<section>
<h3>exprId</h3>
<pre><code class="scala">
val id = NamedExpression.newExprId
AttributeReference("a", IntType)(id).equals(
AttributeReference("a", IntType)(id))
</code></pre>
<p>returns <b>true</b></p>
</section>
<section>
<h3>qualifiers</h3>
<pre><code class="scala">
AttributeReference("foo", IntType)(
qualifier = Seq("bar")
)
</code></pre>
<p>represents <tt>bar.foo</tt></p>
<p class="fragment">You don't need to use this, but Spark already uses it, and it helps during analysis.</p>
</section>
<section>
<h3>Why Do Analysis?</h3>
<ul>
<li>Makes <tt>output</tt> work automagically on all existing <tt>LogicalPlan</tt> nodes.</li>
<li>Makes <tt>dataType</tt> work automagically on all existing <tt>Expression</tt> nodes.</li>
<li>Makes it easier to support <tt>eval</tt> on all existing <tt>Expression</tt> nodes.</li>
</ul>
</section>
</section>
<section>
<section>
<h3>Evaluating Expressions</h3>
<pre><code class="scala">
import org.apache.spark.sql.catalyst.InternalRow
...
def eval(input: InternalRow): Any = ???
</code></pre>
<p><b>Input: </b> An InternalRow</p>
<p><b>Output: </b> The result of evaluating the expression</p>
<p class="fragment"><tt>eval</tt> is implemented for <b>most</b> existing Spark <tt>Expression</tt> nodes.</p>
</section>
<section>
<pre><code class="scala">
case class AttributeReference(
name: String,
dataType: DataType,
nullable: Boolean = true,
override val metadata: Metadata = Metadata.empty
)(
val exprId: ExprId = NamedExpression.newExprId,
val qualifier: Seq[String] = Seq.empty[String]
) extends Attribute with Unevaluable { ... }
</code></pre>
<p><tt>Unevaluable</tt>, huh?</p>
</section>
<section>
<pre><code class="scala">
abstract class InternalRow extends SpecializedGetters with Serializable {
boolean getBoolean(int ordinal);
byte getByte(int ordinal);
short getShort(int ordinal);
int getInt(int ordinal);
long getLong(int ordinal);
float getFloat(int ordinal);
double getDouble(int ordinal);
...
}
</code></pre>
<p><tt>InternalRow</tt> is basically just an <tt>Array[Any]</tt></p>
<p class="fragment"><tt>AttributeReference</tt> doesn't know which position the attribute will be at.</p>
</section>
<section>
<h3>Suggested Approach</h3>
<p>Make your own RowLookup subclass of <tt>Expression</tt></p>
<p class="fragment">Why not use this class instead of <tt>AttributeReference</tt> in the first place?</p>
<p class="fragment">Once we start optimizing, optimization rules (e.g., Projection Pushdown) can change an attribute's position.</p>
</section>
</section>
<section>
<section>
<h3>Evaluating LogicalPlan nodes</h3>
<p>Separation of concerns: Look at each <tt>LogicalPlan</tt> node individually.</p>
<p class="fragment">Naive approach: Compute the full result.</p>
</section>
<section>
<pre><code class="scala">
def eval(plan: LogicalPlan): Seq[InternalRow] =
plan match {
case Project(targets, child) =>
evalProject(targets, eval(child))
case Filter(condition, child) =>
evalFilter(targets, eval(child))
...
}
def evalProject(targets: Seq[Expression],
table: Seq[InternalRow]): Seq[InternalRow] = ???
def evalFilter(condition: Expression,
table: Seq[InternalRow]): Seq[InternalRow] = ???
...
</code></pre>
</section>
<section>
<h3>Basic Mindset</h3>
<img src="graphics/2021-02-16-RA-Tree.svg" style="display: inline-block; vertical-align: middle;" />
<pre style="display: inline-block; vertical-align: middle; margin-left: 20px; width:550px;"><code class="scala">
r = readCSVFile("R")
s = readCSVFile("S")
temp1 = evalCrossProduct(r, s)
temp2 = evalFilter({R.B=S.B AND S.C=10},
temp1)
result = evalProject(Seq( {R.A} ),
temp2)
</code></pre>
</section>
<section>
<h3>Select</h3>
<p class="fragment" style="display: inline-block; vertical-align: middle; margin-right: 100px">
$$\sigma_{A \neq 3} R$$
</p>
<table style="display: inline-block; vertical-align: middle;">
<tr><th>A</th><th>B</th></tr>
<tr><td>1</td><td>2</td></tr>
<tr class="fragment highlight-grey"><td>3</td><td>4</td></tr>
<tr><td>5</td><td>6</td></tr>
</table>
</section>
<section>
<h3>Select</h3>
<pre><code class="python">
def evalFilter(condition: Expression, input: Seq[InternalRow]) =
input.filter { row =>
condition.eval(row).asInstanceOf[Boolean]
}
</code></pre>
<p class="fragment">(All-At-Once)</p>
</section>
<section>
<p><b>Problem:</b> A "table" can get very very big.</p>
</section>
<section>
<h2>Better Idea: Iterators</h2>
<dl>
<dt>hasNext()</dt>
<dd>Returns true if there are more rows to return</dd>
<dt>next()</dt>
<dd>Returns the next row</dd>
<dt>reset()</dt>
<dd>Resets the iterator back to the first row</dd>
</dl>
<p>All "functions" can be implemented as iterators that use constant space</p>
</section>
<section>
<h3>Select</h3>
<p style="display: inline-block; vertical-align: middle; margin-right: 100px">
$$\sigma_{A \neq 3} R$$
</p>
<table style="display: inline-block; vertical-align: middle; font-size: 80%">
<tr><th>A</th><th>B</th><td></td></tr>
<tr class="fragment"><td colspan="2"><code>getNext()</code></td><td style="text-align: left"><code>for row in input:</code></td></tr>
<tr class="fragment"><td>1</td><td>2</td><td class="fragment" style="color: green; text-align: left;"><code style="margin-left: 30px;">return row;</code></td></tr>
<tr class="fragment"><td colspan="2"><code>getNext()</code></td><td style="text-align: left"><code>for row in input:</code></td></tr>
<tr class="fragment"><td>3</td><td>4</td><td class="fragment" style="color: red; text-align: left;"><span style="margin-left: 30px;">X</span></td></tr>
<tr class="fragment" ><td>5</td><td>6</td><td class="fragment" style="color: green; text-align: left;"><code style="margin-left: 30px;">return row;</code></td></tr>
<tr class="fragment"><td colspan="2"><code>getNext()</code></td><td style="text-align: left"><code>for row in input:</code></td></tr>
<tr class="fragment"><td colspan="2"><code>None</code></td><td class="fragment" style="color: red; text-align: left;"><code>return None;</code></td></tr>
</table>
</section>
<section>
<p><b>Hint</b>: Scala makes working with iterators <u>very</u> easy</p>
</section>
<section>
<h3>Joins</h3>
</section>
<section>
<h3>Example: Join (Naive)</h3>
<pre><code class="python">
for r in R:
for s in S:
emit(merge(r, s))
</code></pre>
<p class="fragment">Project challenge: Implement this as an iterator</p>
</section>
<section>
<h3>'|'-separated Value File Suggestions</h3>
<ul>
<li>Use Scala's <tt>scala.io.Source</tt>'s <tt>lineIterator()</tt> method</li>
<li>Use <tt>String</tt>'s <tt>split()</tt> to separate fields.</li>
<li>Parse everything upfront</li>
<li>Iterate over <tt>InternalRow</tt></li>
<li>Use <tt>InternalRow.fromSeq</tt> to create rows.</li>
<li>For Codd's sake, don't store entire tables in memory</li>
</ul>
</section>
<section>
<table>
<tr><th>SQL Type</th><th>Spark type</th><th>Scala Type</th></tr>
<tr><td>string</td><td>StringType</td><td>UTF8String</td></tr>
<tr><td>int</td><td>IntType</td><td>Integer</td></tr>
<tr><td>float</td><td>FloatType</td><td>Float</td></tr>
<tr><td>decimal</td><td>DoubleType</td><td>Double</td></tr>
<tr><td>date</td><td>DateType</td><td>java.time.Date</td></tr>
</table>
<p class="fragment">it's <tt>org.apache.spark.unsafe.types.UTF8String</tt></p>
</section>
</section>
<section>
<h1>Questions?</h1>
</section>
<section>
<h3>Next time...</h3>
<p>Algorithms for Basic RA</p>
</section>

View file

@ -0,0 +1,489 @@
---
template: templates/cse4562_2021_slides.erb
title: "Algorithms for Queries"
date: February 18, 2021
textbook: "Ch. 15.1-15.5, 16.7"
---
<!-- 2019 by OK:
The discussion of accounting needs to be augmented a little bit.
Specifically, something that's still not coming across for some students is the idea of counting only the number of IOs *added*.
An example comparing the cost of individual sub-plans to the overall plan might help.
For example, draw out the full query plan, highlight the subplan, count its cost, then compute the total cost of the entire plan, and repeat.
e.g., after introducing select, show that adding more select operators doesn't add more IOs or memory to the plan.
More similar examples with Union and Cross would also help.
Might help to tighten up the time spent a little too. I had to cut out before introducing Sort-Merge Joins
-->
<section>
<section>
<h3>Query Evaluation Styles</h3>
<dl>
<dt class="fragment highlight-grey" data-fragment-index="2">All-At-Once (Collections)</dt>
<dd class="fragment highlight-grey" data-fragment-index="2">Bottom-up, one operator at a time.</dd>
<dt>Volcano-Style (Iterators)</dt>
<dd>Operators "request" one tuple at a time from children.</dd>
<dt class="fragment highlight-grey" data-fragment-index="1">Push-Style (Buffers)</dt>
<dd class="fragment highlight-grey" data-fragment-index="1">Operators continuously produce/consume tuples.</dd>
</dl>
</section>
<section>
<h3>Analyzing Volcano Operators</h3>
<ul>
<li>Memory Bounds</li>
<li>Disk IO Used</li>
<li class="fragment highlight-grey" data-fragment-index="1">CPU Used</li>
</ul>
<p class="fragment" data-fragment-index="1" style="margin-top: 30px;"><u>Data</u>bases are usually IO- or Memory-bound</p>
</section>
<section>
<h3>Memory Bounds</h3>
<ul>
<li class="fragment">Constant</li>
<li class="fragment">Scales with output</li>
<li class="fragment">Scales with part of the input</li>
<li class="fragment">Worse</li>
</ul>
<p style="font-size: 70%;" class="fragment"><b>Core Question: </b> Do we have enough memory to use this operator?</p>
</section>
<section>
<h3>Disk IO</h3>
<p style="text-align: left; margin-left: 50px;">IO measured in:<br/>
<ul>
<li>Number of Tuples</li>
<li class="fragment highlight-grey">Number of Data Pages (absolute size)</li>
</ul>
</p>
<div class="fragment">
<h3>Accounting</h3>
<p class="fragment" style="margin-top: 50px;">Figure out the cost of each <b>individual</b> operator.</p>
<p class="fragment" style="margin-top: 50px;">Only count the number of IOs <b>added</b> by each operator.</p>
</div>
</section>
</section>
<section>
<h3>Note</h3>
<p>We'll be discussing the "default" algorithm for each operator.</p>
<p class="fragment">Often, there are many algorithms, some of which cover multiple operators.</p>
<p class="fragment">This is why Spark has a <tt>PhysicalPlan</tt></p>
<p class="fragment">In the suggested Iterator-based approach the Iterators are your <tt>PhysicalPlan</tt></p>
</section>
<section>
<section>
<h3>Table Scan ($R$)</h3>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment">Constant!</dd>
<dt>IOs added?</dt>
<dd class="fragment">$|R|$ tuples read</dd>
</dl>
</section>
<section>
<h3>Select ($\sigma(R)$)</h3>
<svg data-src="graphics/2021-02-18-Flow-Select.svg" />
</section>
<section>
<h3>Select ($\sigma(R)$)</h3>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment">Constant!</dd>
<dt>IOs added?</dt>
<dd class="fragment">None! (Can "inline" into cost of $R$)</dd>
</dl>
</section>
<section>
<h3>Example</h3>
<p>Example, assume $R$ is 100 tuples.</p>
<p class="fragment">How many IOs do we need to compute $Q := R$</p>
<p class="fragment">How many IOs do we need to compute $Q := \sigma(R)$</p>
</section>
<section>
<h3>Project ($\pi(R)$)</h3>
<svg data-src="graphics/2021-02-18-Flow-Project.svg" />
</section>
<section>
<h3>Project ($\pi(R)$)</h3>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment">Constant!</dd>
<dt>IOs added?</dt>
<dd class="fragment">None!</dd>
</dl>
</section>
<section>
<h3>Example</h3>
<p>Example, assume $R$ is 100 tuples.</p>
<p class="fragment">How many IOs do we need to compute $Q := \pi(R)$</p>
<p class="fragment">How many IOs do we need to compute $Q := \pi(\sigma(R))$</p>
<p class="fragment">Projection and Selection do not add IO.</p>
</section>
<section>
<h3>Union ($R \cup S$)</h3>
<svg data-src="graphics/2021-02-18-Flow-Union.svg" />
</section>
<section>
<h3>Union ($R \cup S$)</h3>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment">Constant!</dd>
<dt>IOs added?</dt>
<dd class="fragment">None!</dd>
</dl>
</section>
<section>
<h3>Cross ($R \times S$)</h3>
<svg data-src="graphics/2021-02-18-Flow-Cross.svg" />
</section>
<section>
<h3>Cross ($R \times S$)</h3>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment" data-fragment-index="1">It depends</dd>
<dt>IOs added?</dt>
<dd class="fragment" data-fragment-index="1">It depends</dd>
</dl>
</section>
<section>
<h3>Cross ($R \times S$)</h3>
<p>How do you "reset" $S$?</p>
<dl>
<dt class="fragment">"Materialize" S into memory</dt>
<dd class="fragment">No extra IOs <span class="fragment">(but $O(|S|)$ memory)</span></dd>
<dt class="fragment">Rerun the entire iterator</dt>
<dd class="fragment">$(|R|-1) \cdot \texttt{cost}(S)$ extra tuples read</dd>
<dt class="fragment">"Materialize" S onto disk</dt>
<dd class="fragment">$|S|$ tuples written</dd>
<dd class="fragment">$(|R|-1) \cdot |S|$ extra tuples read</dd>
</dl>
<p class="fragment">This can get very expensive</p>
</section>
<section>
<h3>Example</h3>
<p>Example, assume $R$ and $S$ are both 100 tuples.</p>
<p>How many IOs do we need to compute $Q := R \cup S$?</p>
<ol>
<li class="fragment">Getting an Iterator on $R$: 100 tuples</li>
<li class="fragment">Getting an Iterator on $S$: 100 tuples</li>
<li class="fragment">Getting an Iterator on $R \cup S$ using the above iterators: 0 extra tuples</li>
</ol>
</section>
<section>
<h3>Example</h3>
<p>Example, assume $R$ is 20 tuples and $S$ is 100 tuples.</p>
<p>How many IOs do we need to compute $Q := R \times S$?</p>
<ol>
<li class="fragment">Getting an Iterator on $R$: 100 tuples</li>
<li class="fragment">Getting an Iterator on $S$: 20 tuples</li>
<li class="fragment">Getting an Iterator on $R \times S$ using the above iterators: </li>
</ol>
</section>
<section>
<ul>
<li><b>Memory</b>: 0 extra tuples</li>
<li class="fragment"><b>Replay</b>: $(|R|-1) \times \texttt{cost}(S) = 19 \times 100 = 1900$ extra tuples</li>
<li class="fragment"><b>Cache</b>: $|R| \times |S| = 20 \times 100 = 2000$ extra tuples</li>
</ul>
<p class="fragment"><b>Best Total Cost</b> $100 + 20 + 1900 = 2020$</p>
</section>
<section>
<h3>Example</h3>
<p>Example, assume $R$ is 20 tuples and $S$ is 100 tuples, <br/>and $c$ filters out 90% of tuples.</p>
<p>How many IOs do we need to compute $Q := R \times \sigma_c(R \times S)$</p>
<ol>
<li class="fragment">Getting an Iterator on $\sigma_c(R \times S)$: 2020 tuples</li>
<li class="fragment">Getting an Iterator on $R$: 20 tuples</li>
<li class="fragment">Getting an Iterator on $R \times \sigma_c(R \times S)$ using the above iterators: </li>
</ol>
</section>
<section>
<ul>
<li><b>Memory</b>: 0 extra tuples</li>
<li class="fragment"><b>Replay</b>: $(|R|-1) \times \texttt{cost}(\sigma_c(R \times S)) = 19 \times 2020 = 38380$ extra tuples</li>
<li class="fragment"><b>Cache</b>: $|R| \times |S| = 20 \times 200 = 4000$ extra tuples</li>
</ul>
<p class="fragment"><b>Best Total Cost</b> $2020 + 20 + 4000 = 6040$</p>
</section>
<section>
<p>Is there a middle ground?</p>
</section>
</section>
<section>
<section>
<h3>Nested-Loop Join</h3>
<svg data-src="graphics/2021-02-18-Join-NLJ.svg" />
</section>
<section>
<p><b>Problem</b>: We need to evaluate <code>rhs</code> iterator<br/> once per record in <code>lhs</code></p>
</section>
<section>
<h3>Preloading Data</h3>
<p><b>Better Solution</b>: Load both <code>lhs</code> and <code>rhs</code> records in blocks.</p>
<pre><code class="python">
def apply_cross(lhs, rhs):
result = []
while r_block = lhs.take(100):
while s_block = rhs.take(100):
for r in r_block:
for s in s_block:
result += [r + s]
rhs.reset()
return result
</code></pre>
</section>
<section>
<h3>Block-Nested Loop Join</h3>
<svg data-src="graphics/2021-02-18-Join-BNLJ.svg" class="stretch" />
</section>
<section>
<h3>Block-Nested Loop ($R \times S$)</h3>
<p>(with $\mathcal B$ as the block size for $R$)</p>
<p>(and with caching $S$ to disk)</p>
<dl>
<dt>Memory Required?</dt>
<dd class="fragment">$O(\mathcal B)$</dd>
<dt>IOs added?</dt>
<dd class="fragment">$|S|$ tuples written.</dd>
<dd class="fragment">$(\frac{|R|}{\mathcal B} - 1) \cdot |S|$ tuples read.</dd>
</dl>
<p style="font-size: 70%;" class="fragment">In-memory caching is a special case of block-nested loop with $\mathcal B = |S|$</p>
<p style="font-size: 70%;" class="fragment">Does the block size for $R$ matter?</p>
</section>
<section>
<p>How big should the blocks be?</p>
<aside class="notes">As big as possible! Leads to the question of distributing available memory between multiple joins: A simple linear optimization problem.</aside>
</section>
</section>
<section>
<section>
<p>Cross product is expensive!<br/>Can we do better?</p>
<p class="fragment">$\sigma_c(R\times S) \equiv R\bowtie_c S$</p>
</section>
<section>
<h3>Cross Product</h3>
<svg data-src="graphics/2021-02-18-Join-Grid.svg" />
</section>
<section>
<p><b>Problem</b>: Naively, any tuple matches any other</p>
</section>
<section>
<h3>Join Conditions</h3>
<svg data-src="graphics/2021-02-18-Join-OrderGrid.svg" />
<p><b>Solution</b>: First organize the data</p>
</section>
</section>
<section>
<section>
<h3>Strategies for Implementing $R \bowtie_{R.A = S.A} S$</h3>
<dl>
<dt>In-Memory Index Join (1-pass Hash; Hash Join)</dt>
<dd>Build an in-memory index on one table, scan the other.</dd>
<dt>Partition Join (2-pass Hash; External Hash Join)</dt>
<dd>Partition both sides so that tuples don't join across partitions.</dd>
<dt>Sort/Merge Join</dt>
<dd>Sort all of the data upfront, then scan over both sides.</dd>
</dl>
</section>
<section>
<h3>Hash Functions</h3>
<ul>
<li>A hash function is a function that maps a large data value to a small fixed-size value<ul>
<li>Typically is deterministic &amp; pseudorandom</li>
</ul></li>
<li>Used in Checksums, Hash Tables, Partitioning, Bloom Filters, Caching, Cryptography, Password Storage, …</li>
<li>Examples: MD5, SHA1, SHA2<ul>
<li>MD5() part of OpenSSL (on most OSX / Linux / Unix)</li>
</ul></li>
<li>Can map h(k) to range [0,N) with h(k) % N (modulus)</li>
</ul>
</section>
<section>
<h3>Hash Functions</h3>
<p style="margin-top: 50px">
$$h(X) \mod N$$
<ul>
<li>Pseudorandom output between $[0, N)$</li>
<li>Always the same output for a given $X$</li>
</ul>
</p>
</section>
<section>
<h3>1-Pass Hash Join</h3>
<svg data-src="graphics/2021-02-18-Join-1PassHash.svg" />
</section>
<section>
<h3>1-Pass Hash Join</h3>
<dl>
<dt>Limited Queries</dt>
<dd>Only supports join conditions of the form $R.A = S.B$</dd>
<dt>Moderate-High Memory</dt>
<dd>Keeps 1 full relation in memory</dd>
<dt>Low Added IO Cost</dt>
<dd>Only requires 1 scan over each input.</dd>
</dl>
</section>
<section>
<p><b>Alternative: </b> Build an in-memory tree (e.g., B+Tree) instead of a hash table!</p>
<dl>
<dt>Limited Queries</dt>
<dd>Also supports $R.A \geq S.B$, $R.A > S.B$</dd>
<dt>Moderate-High Memory</dt>
<dd>Keeps 1 full relation in memory</dd>
<dt>Low Added IO Cost</dt>
<dd>Only requires 1 scan over each input.</dd>
</dl>
</section>
<section>
<h3>2-Pass Hash Join</h3>
<svg data-src="graphics/2021-02-18-Join-2PassHash.svg" />
</section>
<section>
<h3>2-Pass Hash Join</h3>
<dl>
<dt>Limited Queries</dt>
<dd>Only supports join conditions of the form $R.A = S.B$</dd>
<dt>Low Memory</dt>
<dd>Never need more than 1 pair of partitions in memory</dd>
<dt>High IO Cost</dt>
<dd>$|R| + |S|$ tuples written out</dd>
<dd>$|R| + |S|$ tuples read in</dd>
</dl>
</section>
<section>
<p>Why is it important that the hash function is pseudorandom?</p>
</section>
<section>
<p>What if the data is already organized (e.g., sorted) in a useful way?</p>
</section>
<section>
<!-- 2018-OK: The motivation for this algorithm fell completely flat.
It might help if we approach SortMerge with IOs/Mem/CPU in mind.
The slide also deserves some discussion of *which* conditions it
can be used to support efficiently.
It might also help to discuss use cases where it's appropriate.
2019-OK: resolved
-->
<h3>Sort/Merge Join</h3>
<svg data-src="graphics/2021-02-18-Join-SortMerge.svg" />
</section>
<section>
<h3>Sort/Merge Join</h3>
<dl>
<dt>Limited Queries</dt>
<dd>Only supports join conditions of the form $R.A = S.B$</dd>
<dt>Low Memory</dt>
<dd>Only needs to keep ~2 rows in memory at a time (not counting sort).</dd>
<dt>Low Added IO Cost</dt>
<dd>No added IO! (not counting sort).</dd>
</dl>
</section>
</section>
<section>
<h3>Next time...</h3>
<p>Extended Relational Algebra</p>
</section>

View file

@ -0,0 +1,258 @@
---
template: templates/cse4562_2021_slides.erb
textbook: "Ch. 13.1-13.7, 15.7, 16.7"
date: February 25, 2021
title: "Physical Layout &amp; Memory Management"
---
<section>
<section>
<div style="width: 800px; overflow-x: scroll; font-size: small; margin-left: auto; margin-right: auto;">
<table>
<tr><th>CREATED_AT</th><th>TREE_ID</th><th>BLOCK_ID</th><th>THE_GEOM</th><th>TREE_DBH</th><th>STUMP_DIAM</th><th>CURB_LOC</th><th>STATUS</th><th>HEALTH</th><th>SPC_LATIN</th><th>SPC_COMMON</th><th>STEWARD</th><th>GUARDS</th><th>SIDEWALK</th><th>USER_TYPE</th><th>PROBLEMS</th><th>ROOT_STONE</th><th>ROOT_GRATE</th><th>ROOT_OTHER</th><th>TRNK_WIRE</th><th>TRNK_LIGHT</th><th>TRNK_OTHER</th><th>BRNCH_LIGH</th><th>BRNCH_SHOE</th><th>BRNCH_OTHE</th><th>ADDRESS</th><th>ZIPCODE</th><th>ZIP_CITY</th><th>CB_NUM</th><th>BOROCODE</th><th>BORONAME</th><th>CNCLDIST</th><th>ST_ASSEM</th><th>ST_SENATE</th><th>NTA</th><th>NTA_NAME</th><th>BORO_CT</th><th>STATE</th><th>LATITUDE</th><th>LONGITUDE</th><th>X_SP</th><th>Y_SP</th></tr>
<tr><td>'08/27/2015'</td><td>180683</td><td>348711</td><td>'POINT (-73.84421521958048 40.723091773924274)'</td><td>3</td><td>0</td><td>'OnCurb'</td><td>'Alive'</td><td>'Fair'</td><td>'Acer rubrum'</td><td>'red maple'</td><td>'None'</td><td>'None'</td><td>'NoDamage'</td><td>'TreesCount Staff'</td><td>'None'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'108-005 70 AVENUE'</td><td>'11375'</td><td>'Forest Hills'</td><td>406</td><td>4</td><td>'Queens'</td><td>29</td><td>28</td><td>16</td><td>'QN17'</td><td>'Forest Hills'</td><td>4073900</td><td>'New York'</td><td>40.72309177</td><td>-73.84421522</td><td>1027431.14821</td><td>202756.768749</td></tr>
<tr><td>'09/03/2015'</td><td>200540</td><td>315986</td><td>'POINT (-73.81867945834878 40.79411066708779)'</td><td>21</td><td>0</td><td>'OnCurb'</td><td>'Alive'</td><td>'Fair'</td><td>'Quercus palustris'</td><td>'pin oak'</td><td>'None'</td><td>'None'</td><td>'Damage'</td><td>'TreesCount Staff'</td><td>'Stones'</td><td>'Yes'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'147-074 7 AVENUE'</td><td>'11357'</td><td>'Whitestone'</td><td>407</td><td>4</td><td>'Queens'</td><td>19</td><td>27</td><td>11</td><td>'QN49'</td><td>'Whitestone'</td><td>4097300</td><td>'New York'</td><td>40.79411067</td><td>-73.81867946</td><td>1034455.70109</td><td>228644.837379</td></tr>
<tr><td>'09/05/2015'</td><td>204026</td><td>218365</td><td>'POINT (-73.93660770459083 40.717580740099116)'</td><td>3</td><td>0</td><td>'OnCurb'</td><td>'Alive'</td><td>'Good'</td><td>'Gleditsia triacanthos var. inermis'</td><td>'honeylocust'</td><td>'1or2'</td><td>'None'</td><td>'Damage'</td><td>'Volunteer'</td><td>'None'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'390 MORGAN AVENUE'</td><td>'11211'</td><td>'Brooklyn'</td><td>301</td><td>3</td><td>'Brooklyn'</td><td>34</td><td>50</td><td>18</td><td>'BK90'</td><td>'East Williamsburg'</td><td>3044900</td><td>'New York'</td><td>40.71758074</td><td>-73.9366077</td><td>1001822.83131</td><td>200716.891267</td></tr>
<tr><td>'09/05/2015'</td><td>204337</td><td>217969</td><td>'POINT (-73.93445615919741 40.713537494833226)'</td><td>10</td><td>0</td><td>'OnCurb'</td><td>'Alive'</td><td>'Good'</td><td>'Gleditsia triacanthos var. inermis'</td><td>'honeylocust'</td><td>'None'</td><td>'None'</td><td>'Damage'</td><td>'Volunteer'</td><td>'Stones'</td><td>'Yes'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'1027 GRAND STREET'</td><td>'11211'</td><td>'Brooklyn'</td><td>301</td><td>3</td><td>'Brooklyn'</td><td>34</td><td>53</td><td>18</td><td>'BK90'</td><td>'East Williamsburg'</td><td>3044900</td><td>'New York'</td><td>40.71353749</td><td>-73.93445616</td><td>1002420.35833</td><td>199244.253136</td></tr>
<tr><td>'08/30/2015'</td><td>189565</td><td>223043</td><td>'POINT (-73.97597938483258 40.66677775537875)'</td><td>21</td><td>0</td><td>'OnCurb'</td><td>'Alive'</td><td>'Good'</td><td>'Tilia americana'</td><td>'American linden'</td><td>'None'</td><td>'None'</td><td>'Damage'</td><td>'Volunteer'</td><td>'Stones'</td><td>'Yes'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'No'</td><td>'603 6 STREET'</td><td>'11215'</td><td>'Brooklyn'</td><td>306</td><td>3</td><td>'Brooklyn'</td><td>39</td><td>44</td><td>21</td><td>'BK37'</td><td>'Park Slope-Gowanus'</td><td>3016500</td><td>'New York'</td><td>40.66677776</td><td>-73.97597938</td><td>990913.775046</td><td>182202.425999</td></tr>
</table>
</div>
<p style="font-size: 200%">↓</p>
<pre><code>0101010010111010101010001010101001101001001010010001010101001...</code></pre>
</section>
</section>
<section>
<section>
<h2>Record Layouts</h2>
<p>How is data stored?</p>
</section>
<section>
<p><b>Problem 1:</b> How should you encode one tuple?</p>
</section>
<section>
<h3>Record Layout 1: Fixed</h3>
<svg data-src="graphics/2021-02-25-record-fixed.svg" />
</section>
<section>
<h3>Record Layout 2: Delimiters</h3>
<svg data-src="graphics/2021-02-25-record-separator.svg" />
</section>
<section>
<h3>Record Layout 3: Headers</h3>
<svg data-src="graphics/2021-02-25-record-header.svg" />
</section>
<section>
<h3>Record Formats</h3>
<dl>
<dt>Fixed</dt>
<dd>Constant-size fields. Field $i$ at byte $\sum_{j < i} |Field_j|$</dd>
<dt>Delimited</dt>
<dd>Special character or string (e.g., <code>,</code>) between fields</dd>
<dt>Header</dt>
<dd>Fixed-size header points to start of each field</dd>
<dt>&nbsp;</dt>
<dd>&nbsp;</dd>
</dl>
</section>
<section>
<p><b>Problem 2:</b> How should you encode a file of tuples?</p>
</section>
<section>
<h3>File Formats</h3>
<dl>
<dt>Fixed</dt>
<dd>Constant-size records. Record $i$ at byte $|Record| \times i$</dd>
<dt>Delimited</dt>
<dd>Special character or string (e.g., <code>\r\n</code>) at record end</dd>
<dt>Header</dt>
<dd>Index in file points to start of each record</dd>
<dt class="fragment" data-fragment-index="1">Paged</dt>
<dd class="fragment" data-fragment-index="1">Align records to paging boundaries</dd>
</dl>
</section>
<section>
<img src="graphics/2021-02-25-mem_hierarchy.png">
</section>
<section>
<svg data-src="graphics/2021-02-25-mem_bulk_loading.svg" class="stretch"/>
<imagecredits>openclipart.org</imagecredits>
</section>
</section>
<section>
<section>
<dl>
<dt>File</dt>
<dd>A collection of pages (or records)</dd>
<dt>Page</dt>
<dd>A fixed-size collection of records</dd>
<dd style="font-size: smaller;">Page size is usually dictated by hardware.<br/>Mem Page $\approx$ 4KB&nbsp;&nbsp;&nbsp;Cache Line $\approx$ 64B</dd>
<dt>Record</dt>
<dd>One or more fields (for now)</dd>
<dt>Field</dt>
<dd>A primitive value (for now)</dd>
</dl>
</section>
<section>
<p><b>Problem 2.b:</b> How should you store records in a <i>page</i>?</p>
</section>
<section>
<p><b>Goal 1:</b> Where is record $X$?</p>
<p class="fragment"><b>Goal 2:</b> Support updates/deletions</p>
</section>
<section>
<h2>Fixed size records</h2>
</section>
<section>
<img src="graphics/2021-02-25-Page-Layouts-1.svg" />
<p class="fragment">What about variable-size records?</p>
</section>
<section>
<img src="graphics/2021-02-25-Page-Layouts-2.svg" height="400px"/>
<p class="fragment">Why store the key and records from opposite ends?</p>
</section>
</section>
<section>
<section>
<p><b>Problem 3: </b> How should you organize pages in a file?</p>
<p class="fragment"><b>Key question: </b> What happens when all records on a page are deleted?</p>
<p class="fragment"><b>Idea: </b> Track empty pages.</p>
</section>
<section>
<img src="graphics/2021-02-25-Heap-File-1.svg" />
</section>
<section>
<img src="graphics/2021-02-25-Heap-File-2.svg" />
</section>
</section>
<section>
<section>
<h2>An Alternative Layout</h2>
</section>
<section>
<h3>Row-Wise Layouts</h3>
<img src="graphics/2021-02-25-Layout-RowWise.svg" height="400px"/>
</section>
<section>
<h3>Column-Wise Layouts</h3>
<img src="graphics/2021-02-25-Layout-ColumnWise.svg" height="400px"/>
</section>
<section>
<p>Each file stores 2-tuples $\left< RowID, Value\right >$.</p>
<p>Values only for one attribute.</p>
</section>
<section>
<h3>Benefits</h3>
<ul>
<li>Only one attribute to sort per file.</li>
<li>No IO cost for unused attributes ($\pi$-pushdown!)</li>
</ul>
<h3 style="margin-top: 50px;">Drawbacks</h3>
<ul>
<li>Result attributes must be stitched back together ($\bowtie$)</li>
</ul>
<p style="font-size: 70%; margin-top: 50px;" class="fragment">Great for <b>wide</b>, <b>rarely-updated</b> tables where <b>only a few attributes are used</b> per-query</p>
</section>
<section>
<h3>Example Column Stores</h3>
<p style="margin-bottom: 100px; margin-top: 30px;">
<a href="https://commons.wikimedia.org/wiki/File:Cassandra_logo.svg#/media/File:Cassandra_logo.svg"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Cassandra_logo.svg/1200px-Cassandra_logo.svg.png" width="150px" alt="Cassandra logo"></a>
<a href="https://commons.wikimedia.org/wiki/File:Vertica_pos_blk_rgb.svg#/media/File:Vertica_pos_blk_rgb.svg"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Vertica_pos_blk_rgb.svg/1200px-Vertica_pos_blk_rgb.svg.png" width="200px" alt="Vertica pos blk rgb.svg"></a>
<a href="https://en.wikipedia.org/wiki/File:Monetdb-logo.png#/media/File:Monetdb-logo.png"><img src="https://upload.wikimedia.org/wikipedia/en/b/b9/Monetdb-logo.png" width="150px" alt="MonetDB logo"></a>
</p>
<imagecredits>By Apache Software Foundation - <a rel="nofollow" class="external free" href="https://svn.apache.org/repos/asf/cassandra/logo/cassandra.svg">https://svn.apache.org/repos/asf/cassandra/logo/cassandra.svg</a>, <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache License, Version 2.0">Apache License 2.0</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=25112706">Link</a><br/>
By <a href="//commons.wikimedia.org/w/index.php?title=User:Ariolica&amp;action=edit&amp;redlink=1" class="new" title="User:Ariolica (page does not exist)">Ariolica</a> - <span class="int-own-work" lang="en">Own work</span>, <a href="https://creativecommons.org/licenses/by-sa/4.0" title="Creative Commons Attribution-Share Alike 4.0">CC BY-SA 4.0</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=63164269">Link</a><br/>
By <span title="must have been published or publicly displayed outside Wikipedia">Source</span> (<a href="//en.wikipedia.org/wiki/Wikipedia:Non-free_content_criteria#4" title="Wikipedia:Non-free content criteria">WP:NFCC#4</a>), <a href="//en.wikipedia.org/wiki/File:Monetdb-logo.png" title="Fair use of copyrighted material in the context of MonetDB">Fair use</a>, <a href="https://en.wikipedia.org/w/index.php?curid=42303989">Link</a></imagecredits>
</section>
</section>
<section>
<section>
<h2>Buffer Manager</h2>
<p>Abstract the messy details of File-IO</p>
</section>
<section>
<img src="graphics/2021-02-25-Buffer-Manager.svg" />
<imagecredits>openclipart.org</imagecredits>
</section>
<section>
<dl>
<dt>Frame</dt>
<dd>A "slot" managed by the buffer manager that holds one page.</dd>
<dt>Pinned Page</dt>
<dd>A page currently in use by part of the database. Must stay in its current frame until unpinned. (A page may be pinned multiple times)</dd>
<dt>Dirty Page</dt>
<dd>A page that has been modified since it was last read in.</dd>
</dl>
</section>
<section>
<h3>When a page is requested</h3>
<p>Is the page in the buffer pool?
<ul>
<li><b>Yes?</b> Pin the page (again) and return the address.</li>
<li><b>No?</b><ul>
<li>Pick a frame for replacement with your favorite algorithm (e.g., LRU)...</li>
<li>If the frame is dirty, write it to disk</li>
<li>Read requested page into chosen frame</li>
<li>Pin the page and return its address</li>
</ul></li>
</ul>
</section>
<section>
<p>Does this all sound familiar?</p>
<p class="fragment">Isn't this just Virtual Memory?</p>
</section>
<section>
<h1>Yes!</h1>
<p class="fragment">(Many databases use memory-mapped files as a buffer manager)</p>
</section>
<section>
<h3>Why Re-implement VMem?</h3>
<div class="fragment">
<img src="graphics/Clipart/BenBois-Magic-ball.svg" height="200px" />
<p>Databases can predict the future!</p>
</div>
<p class="fragment" style="font-size: 70%;"><code>SELECT * FROM R WHERE A > 500 AND A < 2000</code><span class="fragment">&nbsp;&nbsp; → &nbsp;&nbsp; <b>Pages 10-12</b></span></p>
</section>
<section>
<p>How do we decide which pages hold the query results?</p>
<p class="fragment">Answers next class!</p>
</section>
</section>

View file

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="70.793213mm"
height="99.454781mm"
viewBox="0 0 70.793213 99.454781"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-02-05-RA-Tree.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="322.8304"
inkscape:cy="-5.2800578"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="10"
fit-margin-left="10"
fit-margin-right="10"
fit-margin-bottom="10"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-61.865121,-51.13384)">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="84.520554"
y="90.656136"
id="text12"><tspan
sodipodi:role="line"
x="84.520554"
y="90.656136"
style="stroke-width:0.26458332"
id="tspan16">σ<tspan
style="font-size:4.93888903px;baseline-shift:sub"
id="tspan22">S.C=10</tspan></tspan></text>
<text
id="text28"
y="66.906097"
x="89.329224"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
id="tspan26"
style="stroke-width:0.26458332"
y="66.906097"
x="89.329224"
sodipodi:role="line">π<tspan
id="tspan24"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;baseline-shift:sub;text-anchor:start">R.A</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="83.719574"
y="114.66895"
id="text34"><tspan
sodipodi:role="line"
x="83.719574"
y="114.66895"
style="stroke-width:0.26458332"
id="tspan39">⋈<tspan
style="font-size:4.93888903px;baseline-shift:sub"
id="tspan30">R.B=S.B</tspan></tspan></text>
<g
id="g58"
transform="translate(21.114293,-9.3544271)">
<text
id="text48"
y="149.79836"
x="49.712132"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="149.79836"
x="49.712132"
id="tspan46"
sodipodi:role="line">R</tspan></text>
<text
id="text52"
y="149.79318"
x="95.415215"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="149.79318"
x="95.415215"
id="tspan50"
sodipodi:role="line">S</tspan></text>
</g>
<g
id="g957"
transform="translate(-0.28091898)">
<path
inkscape:connector-curvature="0"
id="path60"
d="M 74.578941,131.02562 95.425965,118.46395"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 120.50635,131.02562 99.659303,118.46395"
id="path62"
inkscape:connector-curvature="0" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 97.261726,109.91133 V 94.944236"
id="path64"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 97.261726,84.520724 V 70.622709"
id="path66"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

@ -0,0 +1,423 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="185.3418mm"
height="107.16741mm"
viewBox="0 0 185.3418 107.16741"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-02-12-Flow-Cross.svg">
<defs
id="defs2">
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker10141"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path10139"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path868"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker9660"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path9658"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker8965"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path8963"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker7249"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
inkscape:connector-curvature="0"
id="path7247"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker5139"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path5137"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker4462"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
inkscape:connector-curvature="0"
id="path4460"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker3960"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path3958"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1227"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1225"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1193"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1191"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="331.24022"
inkscape:cy="251.75303"
inkscape:document-units="mm"
inkscape:current-layer="g8961"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(23.819361,-13.025584)">
<g
id="g9869">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path40"
d="m 129.79702,13.026488 0.0756,20.902083"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)" />
<text
id="text3432"
y="21.11385"
x="131.89551"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-size:7.05555534px;stroke-width:0.26458332"
y="21.11385"
x="131.89551"
id="tspan3430"
sodipodi:role="line">start</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="94.508446"
y="45.230064"
id="text12"
class="fragment"><tspan
sodipodi:role="line"
id="tspan10"
x="94.508446"
y="45.230064"
style="stroke-width:0.26458332">Have Old 'r'?</tspan></text>
<g
id="g8961"
class="fragment"
transform="translate(-39.952084,-46.566667)">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="113.11009"
y="88.318016"
id="text8953"><tspan
sodipodi:role="line"
id="tspan8951"
x="113.11009"
y="88.318016"
style="font-size:7.05555534px;stroke-width:0.26458332">no</tspan></text>
<text
id="text8957"
y="68.449379"
x="17.008928"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="68.449379"
x="17.008928"
id="tspan8955"
sodipodi:role="line">Read LHS Row 'r'</tspan><tspan
style="stroke-width:0.26458332"
y="81.678543"
x="17.008928"
sodipodi:role="line"
id="tspan10281">and Reset RHS</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path8959"
d="M 133.46339,85.862501 97.97143,76.526488"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker8965)" />
</g>
<g
id="g9929"
class="fragment">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="57.490177"
y="81.94313"
id="text5083"><tspan
sodipodi:role="line"
id="tspan5081"
x="57.490177"
y="81.94313"
style="stroke-width:0.26458332">Read RHS Row 's'</tspan></text>
<text
id="text9648"
y="60.801346"
x="53.843437"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-size:7.05555534px;stroke-width:0.26458332"
y="60.801346"
x="53.843437"
id="tspan9646"
sodipodi:role="line">not empty</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker9660)"
d="m 41.652975,38.502083 17.160118,32.99732"
id="path9654"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
id="g9644"
transform="translate(-0.26458367,56.35625)"
class="fragment">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="98.028847"
y="39.634682"
id="text3391"><tspan
sodipodi:role="line"
id="tspan3389"
x="98.028847"
y="39.634682"
style="font-size:7.05555534px;stroke-width:0.26458332">not empty</tspan></text>
<text
id="text16"
y="63.686882"
x="70.719345"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="63.686882"
x="70.719345"
id="tspan14"
sodipodi:role="line">Return &lt;r s&gt;</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path32"
d="M 88.219642,27.91875 104.85059,53.243153"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7249)" />
</g>
<g
id="g9907"
class="fragment">
<text
id="text5079"
y="61.330517"
x="117.60801"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-size:7.05555534px;stroke-width:0.26458332"
y="61.330517"
x="117.60801"
id="tspan5077"
sodipodi:role="line">yes</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker10141)"
d="m 121.55714,48.820834 -15.11905,22.67857"
id="path5085"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
transform="translate(-143.13958,-8.9958333)"
class="fragment"
id="g3932">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="126.65983"
y="82.309517"
id="text3924"><tspan
sodipodi:role="line"
id="tspan3922"
x="126.65983"
y="82.309517"
style="stroke-width:0.26458332">Done</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4462)"
d="m 146.84375,46.628571 -8.20208,24.984226"
id="path3926"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
id="text3930"
y="58.420097"
x="118.93092"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-size:7.05555534px;stroke-width:0.26458332"
y="58.420097"
x="118.93092"
id="tspan3928"
sodipodi:role="line">empty</tspan></text>
</g>
<g
id="g5135"
class="fragment"
transform="translate(-22.754167,35.983333)">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5129"
d="M 86.783333,51.126488 C 59.680757,74.970227 41.200165,10.149137 39.612512,1.2878217"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5139)" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="44.847588"
y="58.420097"
id="text5133"><tspan
sodipodi:role="line"
id="tspan5131"
x="44.847588"
y="58.420097"
style="font-size:7.05555534px;stroke-width:0.26458332">empty</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="162.57216mm"
height="105.71951mm"
viewBox="0 0 162.57216 105.71951"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-02-12-Flow-Project.svg">
<defs
id="defs2">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1227"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1225"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1193"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1191"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1165"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1163"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1143"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1141"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path850"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="42.71157"
inkscape:cy="326.28069"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-7.012178,-13.025584)">
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
d="m 95.930357,13.026488 0.07559,20.902083"
id="path40"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="56.143864"
y="46.023815"
id="text12"
class="fragment"><tspan
sodipodi:role="line"
id="tspan10"
x="56.143864"
y="46.023815"
style="stroke-width:0.26458332">Read One Row</tspan></text>
<g
id="g3198"
class="fragment">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="37.439262"
y="59.478432"
id="text3391"><tspan
sodipodi:role="line"
id="tspan3389"
x="37.439262"
y="59.478432"
style="font-size:7.05555534px;stroke-width:0.26458332">not empty</tspan></text>
<text
id="text16"
y="82.472298"
x="19.65476"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="82.472298"
x="19.65476"
id="tspan14"
sodipodi:role="line">Compute New Row</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path32"
d="M 82.398808,48.291667 67.27976,70.970237"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1165)" />
</g>
<g
id="g3232"
class="fragment">
<text
id="text24"
y="118.59524"
x="36.537827"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="118.59524"
x="36.537827"
id="tspan22"
sodipodi:role="line">Return Row</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path36"
d="M 65.578867,86.089285 65.389881,108.61667"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1227)" />
</g>
<g
id="g3215"
class="fragment">
<text
id="text20"
y="82.309517"
x="139.09525"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="82.309517"
x="139.09525"
id="tspan18"
sodipodi:role="line">Done!</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path34"
d="m 121.70833,49.803571 15.875,18.898809"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1143)" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="130.57259"
y="59.213848"
id="text3377"><tspan
sodipodi:role="line"
id="tspan3375"
x="130.57259"
y="59.213848"
style="font-size:7.05555534px;stroke-width:0.26458332">empty</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="98.028847"
y="21.11385"
id="text3432"><tspan
sodipodi:role="line"
id="tspan3430"
x="98.028847"
y="21.11385"
style="font-size:7.05555534px;stroke-width:0.26458332">start</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="162.57216mm"
height="105.71951mm"
viewBox="0 0 162.57216 105.71951"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-02-12-Flow-Select.svg">
<defs
id="defs2">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1227"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1225"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1193"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1191"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1165"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1163"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1143"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1141"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path850"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="42.71157"
inkscape:cy="326.28069"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-7.012178,-13.025584)">
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
d="m 95.930357,13.026488 0.07559,20.902083"
id="path40"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="56.143864"
y="46.023815"
id="text12"
class="fragment"><tspan
sodipodi:role="line"
id="tspan10"
x="56.143864"
y="46.023815"
style="stroke-width:0.26458332">Read One Row</tspan></text>
<g
id="g3198"
class="fragment">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="37.439262"
y="59.743015"
id="text3391"><tspan
sodipodi:role="line"
id="tspan3389"
x="37.439262"
y="59.743015"
style="font-size:7.05555534px;stroke-width:0.26458332">not empty</tspan></text>
<text
id="text16"
y="82.472298"
x="19.65476"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="82.472298"
x="19.65476"
id="tspan14"
sodipodi:role="line">Check Condition</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path32"
d="M 82.398808,48.291667 67.27976,70.970237"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1165)" />
</g>
<g
id="g3232"
class="fragment">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="80.830925"
y="93.345093"
id="text3383"><tspan
sodipodi:role="line"
id="tspan3381"
x="80.830925"
y="93.345093"
style="font-size:7.05555534px;stroke-width:0.26458332">satisfied</tspan></text>
<text
id="text24"
y="118.59524"
x="64.319077"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="118.59524"
x="64.319077"
id="tspan22"
sodipodi:role="line">Return Row</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path36"
d="M 74.839284,86.089285 89.202381,106.5"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1227)" />
</g>
<g
id="g3416"
class="fragment">
<path
class=""
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path38"
d="m 45.357142,86.089285 c 0,0 -9.751785,23.812495 -27.214285,21.166665 C 6.7657737,105.13928 6.7657738,74.069643 7.5595238,56.607143 c 0,-14.022917 5.7844582,-34.311254 27.2898812,-38.780357 20.396751,-0.385142 30.1625,16.101785 30.1625,16.101785"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1193)" />
<text
id="text3387"
y="112.92427"
x="10.187177"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-size:7.05555534px;stroke-width:0.26458332"
y="112.92427"
x="10.187177"
id="tspan3385"
sodipodi:role="line">unsatisfied</tspan></text>
</g>
<g
id="g3215"
class="fragment">
<text
id="text20"
y="82.309517"
x="139.09525"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="82.309517"
x="139.09525"
id="tspan18"
sodipodi:role="line">Done!</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path34"
d="m 121.70833,49.803571 15.875,18.898809"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1143)" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="130.57259"
y="59.213848"
id="text3377"><tspan
sodipodi:role="line"
id="tspan3375"
x="130.57259"
y="59.213848"
style="font-size:7.05555534px;stroke-width:0.26458332">empty</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="98.028847"
y="21.11385"
id="text3432"><tspan
sodipodi:role="line"
id="tspan3430"
x="98.028847"
y="21.11385"
style="font-size:7.05555534px;stroke-width:0.26458332">start</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,372 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="173.15916mm"
height="103.56505mm"
viewBox="0 0 173.15917 103.56505"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="2018-02-12-Flow-Union.svg">
<defs
id="defs2">
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker1886"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lend">
<path
transform="scale(1.1) rotate(180) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path1884" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker1816"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lend">
<path
transform="scale(1.1) rotate(180) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path1814" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker1752"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lend">
<path
transform="scale(1.1) rotate(180) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path1750" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker1688"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path1686"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path1431"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker1228"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path1226"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1089"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1087"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1047"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1045"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker3960"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path3958"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1227"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1225"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1193"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1191"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-193.9972"
inkscape:cy="198.13782"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-20.693457,-13.025584)">
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1886)"
d="m 95.930357,13.026488 0.07559,20.902083"
id="path40"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="98.028847"
y="21.11385"
id="text3432"><tspan
sodipodi:role="line"
id="tspan3430"
x="98.028847"
y="21.11385"
style="font-size:7.05555534px;stroke-width:0.26458332">start</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="56.143864"
y="46.023815"
id="text12"
class="fragment"><tspan
sodipodi:role="line"
id="tspan10"
x="56.143864"
y="46.023815"
style="stroke-width:0.26458332">Read LHS Row</tspan></text>
<g
id="g3198"
class="fragment">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="37.703846"
y="59.743015"
id="text3391"><tspan
sodipodi:role="line"
id="tspan3389"
x="37.703846"
y="59.743015"
style="font-size:7.05555534px;stroke-width:0.26458332">not empty</tspan></text>
<text
id="text16"
y="82.472298"
x="19.65476"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="82.472298"
x="19.65476"
id="tspan14"
sodipodi:role="line">Return Row</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path32"
d="M 82.398808,48.291667 67.27976,70.970237"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1688)" />
</g>
<g
transform="translate(-8.2020834,-0.52916667)"
class="fragment"
id="g3932">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="125.07233"
y="82.309517"
id="text3924"><tspan
sodipodi:role="line"
id="tspan3922"
x="125.07233"
y="82.309517"
style="stroke-width:0.26458332">Read RHS Row</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1816)"
d="m 120.65,48.745238 17.99167,22.867559"
id="path3926"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
id="text3930"
y="59.213848"
x="130.57259"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-size:7.05555534px;stroke-width:0.26458332"
y="59.213848"
x="130.57259"
id="tspan3928"
sodipodi:role="line">empty</tspan></text>
</g>
<g
class="fragment"
id="g3956"
transform="translate(57.414583,44.45)">
<text
id="text3948"
y="45.190933"
x="30.824678"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-size:7.05555534px;stroke-width:0.26458332"
y="45.190933"
x="30.824678"
id="tspan3946"
sodipodi:role="line">not empty</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1752)"
d="M 56.998808,33.475 25.475593,33.663987"
id="path3954"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
id="g3215"
class="fragment"
transform="translate(-3.175,34.13125)">
<text
id="text20"
y="82.309517"
x="139.09525"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="82.309517"
x="139.09525"
id="tspan18"
sodipodi:role="line">Done!</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path34"
d="M 151.87083,50.597321 152.4,72.406547"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="126.86842"
y="68.474266"
id="text3377"><tspan
sodipodi:role="line"
id="tspan3375"
x="126.86842"
y="68.474266"
style="font-size:7.05555534px;stroke-width:0.26458332">empty</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,430 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="141.67162mm"
height="80.71843mm"
viewBox="0 0 501.98604 286.01019"
id="svg4281"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="2018-02-12-Join-1PassHash.svg">
<defs
id="defs4283" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="306.9147"
inkscape:cy="123.17883"
inkscape:document-units="px"
inkscape:current-layer="g8432"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1388"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata4286">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-60.364196,-146.85447)">
<g
id="g8400">
<rect
y="179.89833"
x="177.75493"
height="108.78987"
width="188.7899"
id="rect8348"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.61618328;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.61618328;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8350"
width="188.7899"
height="108.78987"
x="177.75493"
y="291.3269" />
<text
sodipodi:linespacing="125%"
id="text8352"
y="282.86465"
x="279.29282"
style="font-style:normal;font-weight:normal;font-size:20.00000191px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="282.86465"
x="279.29282"
id="tspan8354"
sodipodi:role="line">h(A) = 0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:20.00000191px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="279.29282"
y="394.29324"
id="text8356"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8358"
x="279.29282"
y="394.29324">h(A) = 1</tspan></text>
</g>
<g
id="g8474">
<g
class="fragment"
id="g4208">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471"
width="96.428566"
height="64.285713"
x="61.250008"
y="148.79077" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="194.5051"
id="text5040"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5042"
x="107.99999"
y="194.5051">1</tspan></text>
</g>
<g
transform="matrix(0.37283942,0,0,0.37283942,188.92948,137.71923)"
id="g8368"
class="fragment">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8370"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text8372"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8374"
x="107.99999"
y="260.21939">1</tspan></text>
</g>
<g
class="fragment"
id="g4213">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4837"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text5044"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan5046"
sodipodi:role="line">3</tspan></text>
</g>
<g
id="g8392"
transform="matrix(0.37283942,0,0,0.37283942,240.7152,257.3621)"
class="fragment">
<rect
y="212.50505"
x="-77.6455"
height="64.285713"
width="96.428566"
id="rect8394"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text8396"
y="260.21939"
x="-30.895515"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="-30.895515"
id="tspan8398"
sodipodi:role="line">3</tspan></text>
</g>
<g
class="fragment"
id="g8341">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4839"
width="96.428566"
height="64.285713"
x="61.250008"
y="276.21933" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="323.07654"
id="text5048"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5050"
x="107.99999"
y="323.07654">2</tspan></text>
</g>
<g
id="g8376"
transform="matrix(0.37283942,0,0,0.37283942,228.2152,137.71923)"
class="fragment">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect8378"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text8380"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan8382"
sodipodi:role="line">2</tspan></text>
</g>
<g
class="fragment"
id="g4223">
<rect
y="339.50504"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4841"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text5052"
y="386.64798"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="386.64798"
x="107.99999"
id="tspan5054"
sodipodi:role="line">1</tspan></text>
</g>
<g
transform="matrix(0.37283942,0,0,0.37283942,266.78663,137.71923)"
id="g8384"
class="fragment">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8386"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text8388"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8390"
x="107.99999"
y="260.21939">1</tspan></text>
</g>
<text
class="fragment"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="91.792862"
y="436.34125"
id="text8275"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8277"
x="91.792862"
y="436.34125">✔</tspan></text>
</g>
<g
id="g8432">
<g
transform="translate(258.42869,-16.764772)"
id="g4228"
class="fragment">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471-7"
width="96.428566"
height="64.285713"
x="206.60716"
y="164.50507" />
<text
sodipodi:linespacing="125%"
id="text5060"
y="209.5051"
x="252.28571"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="209.5051"
x="252.28571"
id="tspan5062"
sodipodi:role="line">3</tspan></text>
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 464.64989,183.22184 367.86417,344.65041"
id="path8596"
inkscape:connector-curvature="0"
class="fragment"
sodipodi:nodetypes="cc" />
<g
transform="translate(162.57156,47.292695)"
id="g4233"
class="fragment">
<rect
y="164.50507"
x="302.46429"
height="64.285713"
width="96.428566"
id="rect4843"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="348.71426"
y="209.5051"
id="text5064"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5066"
x="348.71426"
y="209.5051">2</tspan></text>
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 465.00703,243.57898 368.57846,233.22184"
id="path8598"
inkscape:connector-curvature="0"
class="fragment"
sodipodi:nodetypes="cc" />
<g
transform="translate(67.428701,111.35016)"
id="g4238"
class="fragment">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4845"
width="96.428566"
height="64.285713"
x="397.60715"
y="164.50507" />
<text
sodipodi:linespacing="125%"
id="text5068"
y="209.5051"
x="446.57141"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="209.5051"
x="446.57141"
id="tspan5070"
sodipodi:role="line">1</tspan></text>
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 464.29274,310.00755 368.57846,233.93612"
id="path8600"
inkscape:connector-curvature="0"
class="fragment"
sodipodi:nodetypes="cc" />
<g
transform="translate(184.57145,0)"
id="g8336"
class="fragment">
<rect
y="339.91269"
x="280.46442"
height="64.285713"
width="96.428566"
id="rect4847"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="328.00009"
y="384.91272"
id="text5072"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5074"
x="328.00009"
y="384.91272">3</tspan></text>
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 464.29274,371.79327 367.86417,344.65041"
id="path8602"
inkscape:connector-curvature="0"
class="fragment"
sodipodi:nodetypes="cc" />
<text
class="fragment"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="497.79276"
y="435.36218"
id="text8279"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8281"
x="497.79276"
y="435.36218">✔</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,608 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="191.83719mm"
height="80.718437mm"
viewBox="0 0 679.73807 286.01022"
id="svg4281"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="2018-02-12-Join-2PassHash.svg">
<defs
id="defs4283">
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4535"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4282"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4633"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path4635"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4605"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path4607"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4271"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="203.30987"
inkscape:cy="173.41795"
inkscape:document-units="px"
inkscape:current-layer="g8432"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1388"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata4286">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-60.364181,-146.85447)">
<g
id="g8632"
transform="translate(265.60915,0)">
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.61618328;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8634"
width="188.7899"
height="108.78987"
x="177.75493"
y="179.89833" />
<rect
y="291.3269"
x="177.75493"
height="108.78987"
width="188.7899"
id="rect8636"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.61618328;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:20.00000191px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="279.29282"
y="282.86465"
id="text8638"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8640"
x="279.29282"
y="282.86465">h(A) = 0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text8642"
y="394.29324"
x="279.29282"
style="font-style:normal;font-weight:normal;font-size:20.00000191px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="394.29324"
x="279.29282"
id="tspan8644"
sodipodi:role="line">h(A) = 1</tspan></text>
</g>
<g
id="g8400">
<rect
y="179.89833"
x="177.75493"
height="108.78987"
width="188.7899"
id="rect8348"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.61618328;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.61618328;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8350"
width="188.7899"
height="108.78987"
x="177.75493"
y="291.3269" />
<text
sodipodi:linespacing="125%"
id="text8352"
y="282.86465"
x="279.29282"
style="font-style:normal;font-weight:normal;font-size:20.00000191px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="282.86465"
x="279.29282"
id="tspan8354"
sodipodi:role="line">h(A) = 0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:20.00000191px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="279.29282"
y="394.29324"
id="text8356"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8358"
x="279.29282"
y="394.29324">h(A) = 1</tspan></text>
</g>
<g
id="g8474">
<g
class="fragment"
id="g4208">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471"
width="96.428566"
height="64.285713"
x="61.250008"
y="148.79077" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="194.5051"
id="text5040"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5042"
x="107.99999"
y="194.5051">1</tspan></text>
</g>
<g
transform="matrix(0.37283942,0,0,0.37283942,188.92948,137.71923)"
id="g8368"
class="fragment">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8370"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text8372"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8374"
x="107.99999"
y="260.21939">1</tspan></text>
</g>
<g
class="fragment"
id="g4213">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4837"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text5044"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan5046"
sodipodi:role="line">3</tspan></text>
</g>
<g
id="g8392"
transform="matrix(0.37283942,0,0,0.37283942,240.7152,257.3621)"
class="fragment">
<rect
y="212.50505"
x="-77.6455"
height="64.285713"
width="96.428566"
id="rect8394"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text8396"
y="260.21939"
x="-30.895515"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="-30.895515"
id="tspan8398"
sodipodi:role="line">3</tspan></text>
</g>
<g
class="fragment"
id="g8341">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4839"
width="96.428566"
height="64.285713"
x="61.250008"
y="276.21933" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="323.07654"
id="text5048"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5050"
x="107.99999"
y="323.07654">2</tspan></text>
</g>
<g
id="g8376"
transform="matrix(0.37283942,0,0,0.37283942,228.2152,137.71923)"
class="fragment">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect8378"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text8380"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan8382"
sodipodi:role="line">2</tspan></text>
</g>
<g
class="fragment"
id="g4223">
<rect
y="339.50504"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4841"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text5052"
y="386.64798"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="386.64798"
x="107.99999"
id="tspan5054"
sodipodi:role="line">1</tspan></text>
</g>
<g
transform="matrix(0.37283942,0,0,0.37283942,266.78663,137.71923)"
id="g8384"
class="fragment">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8386"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text8388"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8390"
x="107.99999"
y="260.21939">1</tspan></text>
</g>
<text
class="fragment"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="91.792862"
y="436.34125"
id="text8275"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8277"
x="91.792862"
y="436.34125">✔</tspan></text>
</g>
<g
id="g8432"
transform="translate(-117.85714,0)">
<g
transform="translate(554.03784,-16.764772)"
id="g4228"
class="fragment">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471-7"
width="96.428566"
height="64.285713"
x="206.60716"
y="164.50507" />
<text
sodipodi:linespacing="125%"
id="text5060"
y="209.5051"
x="252.28571"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="209.5051"
x="252.28571"
id="tspan5062"
sodipodi:role="line">3</tspan></text>
</g>
<g
class="fragment"
id="g4249"
transform="matrix(0.37283942,0,0,0.37283942,552.58143,258.81777)">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4251"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4253"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan4255"
sodipodi:role="line">3</tspan></text>
</g>
<g
transform="translate(458.18071,47.292695)"
id="g4233"
class="fragment">
<rect
y="164.50507"
x="302.46429"
height="64.285713"
width="96.428566"
id="rect4843"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="348.71426"
y="209.5051"
id="text5064"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5066"
x="348.71426"
y="209.5051">2</tspan></text>
</g>
<g
transform="matrix(0.37283942,0,0,0.37283942,552.58143,137.59946)"
id="g8384-4"
class="fragment">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect8386-2"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text8388-5"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8390-1"
x="107.99999"
y="260.21939">2</tspan></text>
</g>
<g
transform="translate(363.03785,111.35016)"
id="g4238"
class="fragment">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4845"
width="96.428566"
height="64.285713"
x="397.60715"
y="164.50507" />
<text
sodipodi:linespacing="125%"
id="text5068"
y="209.5051"
x="446.57141"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="209.5051"
x="446.57141"
id="tspan5070"
sodipodi:role="line">1</tspan></text>
</g>
<g
class="fragment"
id="g4229"
transform="matrix(0.37283942,0,0,0.37283942,590.96723,137.59946)">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4231"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4233"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan4235"
sodipodi:role="line">1</tspan></text>
</g>
<g
transform="translate(480.1806,0)"
id="g8336"
class="fragment">
<rect
y="339.91269"
x="280.46442"
height="64.285713"
width="96.428566"
id="rect4847"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="328.00009"
y="384.91272"
id="text5072"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5074"
x="328.00009"
y="384.91272">3</tspan></text>
</g>
<g
transform="matrix(0.37283942,0,0,0.37283942,590.96723,258.81777)"
id="g4241"
class="fragment">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4243"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text4245"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4247"
x="107.99999"
y="260.21939">3</tspan></text>
</g>
<text
class="fragment"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="793.40186"
y="435.36218"
id="text8279"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8281"
x="793.40186"
y="435.36218">✔</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#marker4535)"
d="m 486.07848,230.7218 72.14286,0"
id="path4265"
inkscape:connector-curvature="0"
class="fragment" />
<path
inkscape:connector-curvature="0"
id="path4603"
d="m 486.07848,350.00751 72.14286,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker4605);marker-end:url(#marker4633)"
class="fragment" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -0,0 +1,274 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="107.84523mm"
height="153.58023mm"
viewBox="0 0 107.84523 153.58023"
version="1.1"
id="svg10469"
inkscape:version="0.91 r13725"
sodipodi:docname="2018-02-12-Join-BNLJ.svg">
<defs
id="defs10463" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-108.00703"
inkscape:cy="177.30339"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1388"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata10466">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-24.696428,-35.190475)">
<g
id="g10604">
<g
id="g10525">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471"
width="27.214285"
height="18.142857"
x="24.946428"
y="35.440475" />
<rect
y="53.583332"
x="24.946428"
height="18.142857"
width="27.214285"
id="rect10473"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g10529">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10475"
width="27.214285"
height="18.142857"
x="24.946428"
y="74.372025" />
<rect
y="92.514885"
x="24.946428"
height="18.142857"
width="27.214285"
id="rect10477"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g10533">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10479"
width="27.214285"
height="18.142857"
x="24.946428"
y="113.30355" />
<rect
y="131.44637"
x="24.946428"
height="18.142857"
width="27.214285"
id="rect10481"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g10537">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10483"
width="27.214285"
height="18.142857"
x="24.946428"
y="152.235" />
<rect
y="170.37785"
x="24.946428"
height="18.142857"
width="27.214285"
id="rect10485"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g10558">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471-7"
width="27.214285"
height="18.142857"
x="105.07738"
y="35.440475" />
<rect
y="53.583328"
x="105.07738"
height="18.142857"
width="27.214285"
id="rect10473-9"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g10554">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10475-3"
width="27.214285"
height="18.142857"
x="105.07738"
y="74.372032" />
<rect
y="92.514885"
x="105.07738"
height="18.142857"
width="27.214285"
id="rect10477-8"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g10550">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10479-0"
width="27.214285"
height="18.142857"
x="105.07738"
y="113.30355" />
<rect
y="131.44637"
x="105.07738"
height="18.142857"
width="27.214285"
id="rect10481-2"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g10546">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10483-4"
width="27.214285"
height="18.142857"
x="105.07738"
y="152.235" />
<rect
y="170.37785"
x="105.07738"
height="18.142857"
width="27.214285"
id="rect10485-8"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
<g
id="g10615"
style="stroke:#000000"
class="fragment">
<path
inkscape:connector-curvature="0"
id="path10560"
d="m 52.160712,53.583331 52.916668,0"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path10562"
d="M 105.07738,92.514886 52.160713,53.583332 105.07738,131.44637"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path10564"
d="M 52.160712,53.583331 105.07738,170.37785"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g10619"
style="stroke:#000000"
class="fragment">
<path
inkscape:connector-curvature="0"
id="path10566"
d="m 105.07738,53.583331 -52.916668,38.931554 52.916668,0"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path10568"
d="M 105.07738,131.44637 52.160712,92.514877 105.07738,170.37785"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g10629"
style="stroke:#000000"
class="fragment">
<path
inkscape:connector-curvature="0"
id="path10570"
d="M 52.160712,131.44636 105.07738,53.583329"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<g
style="stroke:#000000"
id="g10623">
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 105.07738,92.514885 -52.916668,38.931525 52.916668,0"
id="path10572"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 52.160712,131.44636 52.916668,38.93149"
id="path10574"
inkscape:connector-curvature="0" />
</g>
</g>
<g
id="g10633"
style="stroke:#000000"
class="fragment">
<path
inkscape:connector-curvature="0"
id="path10576"
d="M 105.07738,53.583331 52.160712,170.37785 105.07738,92.514885"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path10578"
d="m 105.07738,131.44637 -52.916668,38.93148 52.916668,0"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.7 KiB

View file

@ -0,0 +1,368 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="148.66866mm"
height="101.85mm"
viewBox="0 0 526.7787 360.88582"
id="svg4281"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="2018-02-12-Join-Grid.svg">
<defs
id="defs4283" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="-117.32522"
inkscape:cy="65.003142"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1388"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata4286">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-60.364181,-64.333526)">
<g
id="g4882"
class="fragment">
<path
inkscape:connector-curvature="0"
id="path4849"
d="m 229.28571,425.21935 0,-320.71429"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 325.71428,425.21935 0,-320.71429"
id="path4851"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4853"
d="m 420.71428,425.21935 0,-320.71429"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 515.71428,425.21935 0,-320.71429"
id="path4855"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4857"
d="m 128.57143,183.79078 458.57143,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 128.57143,246.64792 458.57143,0"
id="path4859"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4861"
d="m 128.57143,312.36221 458.57143,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 128.57143,374.50507 458.57143,0"
id="path4863"
inkscape:connector-curvature="0" />
</g>
<g
id="g5084">
<rect
y="148.79077"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect10471"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4837"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<rect
y="276.21933"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4839"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4841"
width="96.428566"
height="64.285713"
x="61.250008"
y="339.50504" />
<g
id="g4188"
class="fragment">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="194.5051"
id="text5040"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5042"
x="107.99999"
y="194.5051">1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5044"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan5046"
sodipodi:role="line">3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="323.07654"
id="text5048"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5050"
x="107.99999"
y="323.07654">2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5052"
y="386.64798"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="386.64798"
x="107.99999"
id="tspan5054"
sodipodi:role="line">1</tspan></text>
</g>
</g>
<g
id="g5102">
<rect
y="65.219353"
x="182.32144"
height="64.285713"
width="96.428566"
id="rect10471-7"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4843"
width="96.428566"
height="64.285713"
x="278.17859"
y="65.219353" />
<rect
y="65.219353"
x="373.32144"
height="64.285713"
width="96.428566"
id="rect4845"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847"
width="96.428566"
height="64.285713"
x="469.03574"
y="65.219353" />
<g
id="g4198"
class="fragment">
<text
sodipodi:linespacing="125%"
id="text5060"
y="110.21938"
x="227.99998"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="110.21938"
x="227.99998"
id="tspan5062"
sodipodi:role="line">3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="324.42856"
y="110.21938"
id="text5064"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5066"
x="324.42856"
y="110.21938">2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5068"
y="110.21938"
x="422.28571"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="110.21938"
x="422.28571"
id="tspan5070"
sodipodi:role="line">3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="516.57141"
y="110.21938"
id="text5072"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5074"
x="516.57141"
y="110.21938">1</tspan></text>
</g>
</g>
<g
id="g4875"
class="fragment">
<rect
y="280.36221"
x="276.39288"
height="64.285713"
width="96.428566"
id="rect4865"
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4867"
width="96.428566"
height="64.285713"
x="373.53574"
y="216.07649" />
<rect
y="340.50507"
x="471.25003"
height="64.285713"
width="96.428566"
id="rect4869"
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4871"
width="96.428566"
height="64.285713"
x="471.25003"
y="151.21935" />
<rect
y="215.50505"
x="180.53574"
height="64.285713"
width="96.428566"
id="rect4873"
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="228.71426"
y="262.21939"
id="text5076"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5078"
x="228.71426"
y="262.21939">3</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5135"
y="328.07654"
x="324.42856"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="328.07654"
x="324.42856"
id="tspan5137"
sodipodi:role="line">2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5139"
y="262.21939"
x="420.85712"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="262.21939"
x="420.85712"
id="tspan5141"
sodipodi:role="line">3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="519.85712"
y="197.36224"
id="text5143"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5145"
x="519.85712"
y="197.36224">1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5147"
y="387.36224"
x="519.85712"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="387.36224"
x="519.85712"
id="tspan5149"
sodipodi:role="line">1</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="513.22131"
y="112.36221"
id="text4184"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4186"
x="513.22131"
y="112.36221"></tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,263 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="107.84523mm"
height="145.11356mm"
viewBox="0 0 107.84523 145.11356"
version="1.1"
id="svg10469"
inkscape:version="0.91 r13725"
sodipodi:docname="2018-02-12-Join-NLJ.svg">
<defs
id="defs10463" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-113.84083"
inkscape:cy="81.737399"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1388"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata10466">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-24.696428,-35.190484)">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471"
width="27.214285"
height="18.142857"
x="24.946428"
y="35.440475" />
<rect
y="53.583332"
x="24.946428"
height="18.142857"
width="27.214285"
id="rect10473"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10475"
width="27.214285"
height="18.142857"
x="24.946428"
y="71.549805" />
<rect
y="89.692665"
x="24.946428"
height="18.142857"
width="27.214285"
id="rect10477"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10479"
width="27.214285"
height="18.142857"
x="24.946428"
y="107.6591" />
<rect
y="125.80192"
x="24.946428"
height="18.142857"
width="27.214285"
id="rect10481"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10483"
width="27.214285"
height="18.142857"
x="24.946428"
y="143.76833" />
<rect
y="161.91118"
x="24.946428"
height="18.142857"
width="27.214285"
id="rect10485"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
id="g4221"
class="fragment"
transform="matrix(1.0317471,0,0,0.99998823,-1.6524342,0.00126849)">
<path
inkscape:connector-curvature="0"
id="path4213"
d="m 105.41198,44.555142 -53.339997,0 52.493337,18.062224"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4215"
d="M 104.56532,79.268477 52.354206,45.119586 105.12976,99.024035"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4217"
d="M 104.28309,116.52181 52.354206,44.837364 104.56532,135.71293"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4219"
d="M 104.84754,153.49293 52.354206,44.837364 104.56532,170.99071"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471-7"
width="27.214285"
height="18.142857"
x="105.07738"
y="35.440475" />
<rect
y="53.583328"
x="105.07738"
height="18.142857"
width="27.214285"
id="rect10473-9"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10475-3"
width="27.214285"
height="18.142857"
x="105.07738"
y="71.549812" />
<rect
y="89.692665"
x="105.07738"
height="18.142857"
width="27.214285"
id="rect10477-8"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10479-0"
width="27.214285"
height="18.142857"
x="105.07738"
y="107.6591" />
<rect
y="125.80192"
x="105.07738"
height="18.142857"
width="27.214285"
id="rect10481-2"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10483-4"
width="27.214285"
height="18.142857"
x="105.07738"
y="143.76833" />
<rect
y="161.91118"
x="105.07738"
height="18.142857"
width="27.214285"
id="rect10485-8"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
id="g4235"
class="fragment"
transform="matrix(1.0107094,0,0,1.0068195,-0.55954858,-0.30465241)">
<path
inkscape:connector-curvature="0"
id="path4227"
d="m 104.56531,44.837371 -52.211108,18.908888 51.928888,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4229"
d="M 104.56531,78.421814 52.636424,63.746259 104.56531,97.612927"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4231"
d="M 104.84753,115.39293 52.636424,64.028481 104.84754,133.45515"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4233"
d="M 104.56531,150.38848 52.354202,63.746259 104.84754,168.73293"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g4263"
class="fragment">
<text
class=""
sodipodi:linespacing="125%"
id="text4255"
y="149.25945"
x="72.674202"
style="font-style:normal;font-weight:normal;font-size:11.28888893px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="149.25945"
x="72.674202"
id="tspan4257"
sodipodi:role="line">...</tspan></text>
<text
class=""
sodipodi:linespacing="125%"
id="text4251"
y="136.84181"
x="72.674202"
style="font-style:normal;font-weight:normal;font-size:11.28888893px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="136.84181"
x="72.674202"
id="tspan4253"
sodipodi:role="line">...</tspan></text>
<text
class=""
sodipodi:linespacing="125%"
id="text4259"
y="161.67708"
x="72.674202"
style="font-style:normal;font-weight:normal;font-size:11.28888893px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="161.67708"
x="72.674202"
id="tspan4261"
sodipodi:role="line">...</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -0,0 +1,353 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="148.66866mm"
height="101.85mm"
viewBox="0 0 526.7787 360.88582"
id="svg4281"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="2018-02-12-Join-OrderGrid.svg">
<defs
id="defs4283" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="-117.32522"
inkscape:cy="65.358271"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1388"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata4286">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-60.364181,-64.333526)">
<g
id="g4218"
transform="translate(194.85714,193.57143)">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.52339476px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 229.28571,230.21936 0,-87.85714"
id="path5172"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path5174"
d="m 325.71428,232.36222 0,-90.00001"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5297392px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.68472427px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 173.57143,183.79078 215,0"
id="path5180"
inkscape:connector-curvature="0" />
<rect
y="149.07648"
x="276.39288"
height="64.285713"
width="96.428566"
id="rect4865"
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="149.07648"
x="180.53574"
height="64.285713"
width="96.428566"
id="rect4873"
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="228.71426"
y="195.79941"
id="text5076"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5078"
x="228.71426"
y="195.79941">3</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5135"
y="195.77988"
x="324.42856"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="195.77988"
x="324.42856"
id="tspan5137"
sodipodi:role="line">3</tspan></text>
</g>
<g
id="g4229"
transform="translate(-95.714286,64.285714)">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.55035925px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 420.71428,294.50507 0,-97.14285"
id="path5176"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path5182"
d="m 351.42857,246.64792 137.85715,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.54829103px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4867"
width="96.428566"
height="64.285713"
x="373.53574"
y="214.07649" />
<text
sodipodi:linespacing="125%"
id="text5139"
y="260.21939"
x="420.85712"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="420.85712"
id="tspan5141"
sodipodi:role="line">2</tspan></text>
</g>
<g
id="g4207"
transform="translate(-290,-128.57143)">
<path
inkscape:connector-curvature="0"
id="path5178"
d="m 515.71428,425.21936 0,-166.42858"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.72036862px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.55394369px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.42857,312.36221 140.71429,0"
id="path5184"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path5186"
d="m 445,374.50507 142.14286,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.55674845px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="342.50507"
x="471.25003"
height="64.285713"
width="96.428566"
id="rect4869"
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800080;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4871"
width="96.428566"
height="64.285713"
x="471.25003"
y="278.21936" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="519.85712"
y="326.36224"
id="text5143"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5145"
x="519.85712"
y="326.36224">1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5147"
y="391.36224"
x="519.85712"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="391.36224"
x="519.85712"
id="tspan5149"
sodipodi:role="line">1</tspan></text>
</g>
<g
id="g5084">
<rect
y="148.79077"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect10471"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4837"
width="96.428566"
height="64.285713"
x="61.250008"
y="212.50505" />
<rect
y="276.21933"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4839"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4841"
width="96.428566"
height="64.285713"
x="61.250008"
y="339.50504" />
<text
sodipodi:linespacing="125%"
id="text5040"
y="194.5051"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="194.5051"
x="107.99999"
id="tspan5042"
sodipodi:role="line">1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="260.21939"
id="text5044"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5046"
x="107.99999"
y="260.21939">1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5048"
y="323.07654"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="323.07654"
x="107.99999"
id="tspan5050"
sodipodi:role="line">2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="386.64798"
id="text5052"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5054"
x="107.99999"
y="386.64798">3</tspan></text>
</g>
<g
id="g5102">
<rect
y="65.219353"
x="182.32144"
height="64.285713"
width="96.428566"
id="rect10471-7"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4843"
width="96.428566"
height="64.285713"
x="278.17859"
y="65.219353" />
<rect
y="65.219353"
x="373.32144"
height="64.285713"
width="96.428566"
id="rect4845"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847"
width="96.428566"
height="64.285713"
x="469.03574"
y="65.219353" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="227.99998"
y="110.21938"
id="text5060"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5062"
x="227.99998"
y="110.21938">1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5064"
y="110.21938"
x="324.42856"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="110.21938"
x="324.42856"
id="tspan5066"
sodipodi:role="line">2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="422.28571"
y="110.21938"
id="text5068"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5070"
x="422.28571"
y="110.21938">3</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5072"
y="110.21938"
x="516.57141"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="110.21938"
x="516.57141"
id="tspan5074"
sodipodi:role="line">3</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -0,0 +1,303 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="89.581459mm"
height="80.718445mm"
viewBox="0 0 317.41462 286.01024"
id="svg4281"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="2018-02-12-Join-SortMerge.svg">
<defs
id="defs4283" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="-118.03951"
inkscape:cy="101.21991"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1388"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata4286">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-60.364181,-146.85447)">
<g
id="g4248"
class="fragment">
<g
id="g4208">
<rect
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471"
width="96.428566"
height="64.285713"
x="61.250008"
y="148.79077" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="107.99999"
y="194.5051"
id="text5040"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5042"
x="107.99999"
y="194.5051">1</tspan></text>
</g>
<g
transform="translate(73.857238,-16.764772)"
id="g4228">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10471-7"
width="96.428566"
height="64.285713"
x="206.60716"
y="164.50507" />
<text
sodipodi:linespacing="125%"
id="text5060"
y="209.5051"
x="252.28571"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="209.5051"
x="252.28571"
id="tspan5062"
sodipodi:role="line">1</tspan></text>
</g>
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 158.22132,179.50507 120.71429,0"
id="path4258"
inkscape:connector-curvature="0"
class="fragment" />
<g
id="g4260"
class="fragment">
<g
id="g4213">
<rect
y="212.50505"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4837"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text5044"
y="260.21939"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="260.21939"
x="107.99999"
id="tspan5046"
sodipodi:role="line">1</tspan></text>
</g>
<g
transform="translate(-21.999894,47.292695)"
id="g4233">
<rect
y="164.50507"
x="302.46429"
height="64.285713"
width="96.428566"
id="rect4843"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="348.71426"
y="209.5051"
id="text5064"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5066"
x="348.71426"
y="209.5051">2</tspan></text>
</g>
</g>
<path
class="fragment"
inkscape:connector-curvature="0"
id="path4288"
d="m 158.22132,245.21936 120.71429,-65"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<g
id="g4218"
class="fragment">
<rect
y="276.21933"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4839"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text5048"
y="323.07654"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="323.07654"
x="107.99999"
id="tspan5050"
sodipodi:role="line">2</tspan></text>
</g>
<path
sodipodi:nodetypes="cc"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 158.22132,311.64793 120.71429,-65"
id="path4290"
inkscape:connector-curvature="0"
class="fragment" />
<g
id="g4292"
class="fragment">
<g
id="g4223">
<rect
y="339.50504"
x="61.250008"
height="64.285713"
width="96.428566"
id="rect4841"
style="fill:#0000ff;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text5052"
y="386.64798"
x="107.99999"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="386.64798"
x="107.99999"
id="tspan5054"
sodipodi:role="line">3</tspan></text>
</g>
<g
transform="translate(-117.14275,111.35016)"
id="g4238">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4845"
width="96.428566"
height="64.285713"
x="397.60715"
y="164.50507" />
<text
sodipodi:linespacing="125%"
id="text5068"
y="209.5051"
x="446.57141"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="209.5051"
x="446.57141"
id="tspan5070"
sodipodi:role="line">3</tspan></text>
</g>
</g>
<path
class="fragment"
inkscape:connector-curvature="0"
id="path4302"
d="m 158.22132,379.50507 120.71429,-65"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<g
id="g4243"
transform="translate(-212.85704,175.40763)"
class="fragment">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:1.77165353;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4847"
width="96.428566"
height="64.285713"
x="493.32144"
y="164.50507" />
<text
sodipodi:linespacing="125%"
id="text5072"
y="209.5051"
x="540.85712"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="209.5051"
x="540.85712"
id="tspan5074"
sodipodi:role="line">3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="304.6499"
y="260.93362"
id="text8275"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8277"
x="304.6499"
y="260.93362">✔</tspan></text>
</g>
<path
class="fragment"
inkscape:connector-curvature="0"
id="path4304"
d="m 158.22132,379.50507 120.71429,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text8279"
y="435.36218"
x="313.22131"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
class="fragment"><tspan
y="435.36218"
x="313.22131"
id="tspan8281"
sodipodi:role="line">✔</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -0,0 +1,390 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="1292.7303"
height="614.19531"
viewBox="0 0 1292.7304 614.19531"
sodipodi:docname="2019-02-15-Heap-File-1.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath24"><path
d="M 0,0 H 1024 V 768 H 0 Z"
id="path22"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1027"
id="namedview4"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.22778322"
inkscape:cx="-165.37108"
inkscape:cy="418.07552"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g10" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="04-Storage2"
transform="matrix(1.3333333,0,0,-1.3333333,-35.861973,708.11979)"><g
id="g12" /><g
id="g34"
transform="translate(502.5,18.14844)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:18px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text38"><tspan
x="0"
y="0"
id="tspan36"></tspan></text>
</g><path
d="M 257,479 H 367 V 390 H 257 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path46"
inkscape:connector-curvature="0" /><g
id="g48"
transform="matrix(1,0,0,-1,257,479)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path50"
inkscape:connector-curvature="0" /></g><path
d="M 387,479 H 497 V 390 H 387 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path52"
inkscape:connector-curvature="0" /><g
id="g54"
transform="matrix(1,0,0,-1,387,479)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path56"
inkscape:connector-curvature="0" /></g><path
d="M 517,479 H 627 V 390 H 517 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path58"
inkscape:connector-curvature="0" /><g
id="g60"
transform="matrix(1,0,0,-1,517,479)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path62"
inkscape:connector-curvature="0" /></g><path
d="M 647,479 H 757 V 390 H 647 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path64"
inkscape:connector-curvature="0" /><g
id="g66"
transform="matrix(1,0,0,-1,647,479)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path68"
inkscape:connector-curvature="0" /></g><path
d="M 257,347 H 367 V 258 H 257 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path70"
inkscape:connector-curvature="0" /><g
id="g72"
transform="matrix(1,0,0,-1,257,347)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path74"
inkscape:connector-curvature="0" /></g><path
d="M 387,347 H 497 V 258 H 387 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path76"
inkscape:connector-curvature="0" /><g
id="g78"
transform="matrix(1,0,0,-1,387,347)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path80"
inkscape:connector-curvature="0" /></g><path
d="M 517,347 H 627 V 258 H 517 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path82"
inkscape:connector-curvature="0" /><g
id="g84"
transform="matrix(1,0,0,-1,517,347)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path86"
inkscape:connector-curvature="0" /></g><path
d="M 647,347 H 757 V 258 H 647 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path88"
inkscape:connector-curvature="0" /><g
id="g90"
transform="matrix(1,0,0,-1,647,347)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path92"
inkscape:connector-curvature="0" /></g><path
d="M 38,413 H 148 V 324 H 38 Z"
style="fill:#b51a00;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path94"
inkscape:connector-curvature="0" /><g
id="g96"
transform="matrix(1,0,0,-1,38,413)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path98"
inkscape:connector-curvature="0" /></g><g
id="g100"
transform="matrix(1,0,0,-1,126.0104,499.8279)"><path
d="m 6.489578,107.8279 v -0.8708 C 40.80061,48.92837 88.00368,-32.50836 126.4896,13.55427 l 1,1.27367"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path102"
inkscape:connector-curvature="0" /></g><path
d="m 247.2207,482.4739 12.943,-7.0908 -2.0931,14.6088 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path104"
inkscape:connector-curvature="0" /><path
d="m 127.5944,396.6632 -1.0756,-14.7188 12.4204,7.9708 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path106"
inkscape:connector-curvature="0" /><g
id="g108"
transform="matrix(1,0,0,-1,348.4375,500.4984)"><path
d="m 8.0625,12.49841 1,-0.78672 c 16.09962,-15.918995 28.66852,-14.998871 39,-0.93955 l 1,1.72627"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path110"
inkscape:connector-curvature="0" /></g><path
d="m 391.02,486.0455 12.2572,-8.2197 -0.7786,14.7375 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path112"
inkscape:connector-curvature="0" /><path
d="m 352.525,493.478 -3.7363,-14.2772 13.6636,5.5774 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path114"
inkscape:connector-curvature="0" /><g
id="g116"
transform="matrix(1,0,0,-1,478,501)"><path
d="m 7.5,13 1,-1.28831 C 24.59962,-4.207305 38.16852,-3.287181 48.5,10.77214 L 49.5,12"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path118"
inkscape:connector-curvature="0" /></g><path
d="m 521.02,487.0455 12.2572,-8.2197 -0.7786,14.7375 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path120"
inkscape:connector-curvature="0" /><path
d="m 481.525,493.478 -3.7363,-14.2772 13.6636,5.5774 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path122"
inkscape:connector-curvature="0" /><g
id="g124"
transform="matrix(1,0,0,-1,608,501)"><path
d="m 7.5,13 1,-1.28831 C 24.59962,-4.207305 38.16852,-3.287181 48.5,10.77214 L 49.5,12"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path126"
inkscape:connector-curvature="0" /></g><path
d="m 651.02,487.0455 12.2572,-8.2197 -0.7786,14.7375 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path128"
inkscape:connector-curvature="0" /><path
d="m 611.525,493.478 -3.7363,-14.2772 13.6636,5.5774 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path130"
inkscape:connector-curvature="0" /><g
id="g132"
transform="translate(348,234.7464)"><path
d="m 7.5,13.25363 1,-1.54194 c 16.09962,-15.918995 29.66852,-14.998871 40,-0.93955 l 1,1.48149"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path134"
inkscape:connector-curvature="0" /></g><path
d="m 391.02,248.9545 12.2572,8.2197 -0.7786,-14.7375 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path136"
inkscape:connector-curvature="0" /><path
d="m 351.525,242.522 -3.7363,14.2772 13.6636,-5.5774 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path138"
inkscape:connector-curvature="0" /><g
id="g140"
transform="translate(478,235.7464)"><path
d="m 7.5,13.25363 1,-1.54194 c 16.09962,-15.918995 29.66852,-14.998871 40,-0.93955 l 1,1.48149"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path142"
inkscape:connector-curvature="0" /></g><path
d="m 521.02,249.9545 12.2572,8.2197 -0.7786,-14.7375 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path144"
inkscape:connector-curvature="0" /><path
d="m 481.525,243.522 -3.7363,14.2772 13.6636,-5.5774 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path146"
inkscape:connector-curvature="0" /><g
id="g148"
transform="translate(608,235.7464)"><path
d="m 7.5,13.25363 1,-1.54194 c 16.09962,-15.918995 29.66852,-14.998871 40,-0.93955 l 1,1.48149"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path150"
inkscape:connector-curvature="0" /></g><path
d="m 651.02,249.9545 12.2572,8.2197 -0.7786,-14.7375 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path152"
inkscape:connector-curvature="0" /><path
d="m 611.525,243.522 -3.7363,14.2772 13.6636,-5.5774 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path154"
inkscape:connector-curvature="0" /><g
id="g156"
transform="translate(127,235.6981)"><path
d="m 5.5,108.3019 1,-1.3448 C 40.81103,48.92837 88.0141,-32.50836 126.5,13.55427 l 1,0.74759"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path158"
inkscape:connector-curvature="0" /></g><path
d="m 248.2207,252.5261 12.943,7.0908 -2.0931,-14.6088 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path160"
inkscape:connector-curvature="0" /><path
d="m 127.5944,339.3368 -1.0756,14.7188 12.4204,-7.9708 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path162"
inkscape:connector-curvature="0" /><g
id="g164"
transform="matrix(1,0,0,-1,740,501)"><path
d="m 7.5,13 1,-1.28831 C 24.59962,-4.207305 38.16852,-3.287181 48.5,10.77214 L 49.5,12"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path166"
inkscape:connector-curvature="0" /></g><path
d="m 783.02,487.0455 12.2572,-8.2197 -0.7786,14.7375 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path168"
inkscape:connector-curvature="0" /><path
d="m 743.525,493.478 -3.7363,-14.2772 13.6636,5.5774 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path170"
inkscape:connector-curvature="0" /><g
id="g172"
transform="translate(740,235.7464)"><path
d="m 7.5,13.25363 1,-1.54194 c 16.09962,-15.918995 29.66852,-14.998871 40,-0.93955 l 1,1.48149"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path174"
inkscape:connector-curvature="0" /></g><path
d="m 783.02,249.9545 12.2572,8.2197 -0.7786,-14.7375 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path176"
inkscape:connector-curvature="0" /><path
d="m 743.525,243.522 -3.7363,14.2772 13.6636,-5.5774 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path178"
inkscape:connector-curvature="0" /><g
id="g180"
transform="translate(794.0015,458.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text184"><tspan
x="0"
y="0"
id="tspan182">ø</tspan></text>
</g><g
id="g186"
transform="translate(793.5,263.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text190"><tspan
x="0"
y="0"
id="tspan188">ø</tspan></text>
</g><g
id="g192"
transform="translate(814.7847,499.1797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text196"><tspan
x="0 21.4116 39.3372 57.262798 77.380798 93.542397 105.21 135.4164 144.6228 158.6088 179.6088"
y="0"
sodipodi:role="line"
id="tspan194">Pages with </tspan></text>
<text
transform="matrix(1,0,0,-1,191.2764,0)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text200"><tspan
x="0"
y="0"
id="tspan198"> </tspan></text>
</g><g
id="g202"
transform="translate(863.9214,450.1797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text206"><tspan
x="0 31.5 49.425598 63.411598"
y="0"
sodipodi:role="line"
id="tspan204">Data</tspan></text>
</g><g
id="g208"
transform="translate(851.7563,272.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text212"><tspan
x="0 21 53.382 74.382004 88.367996 106.764"
y="0"
sodipodi:role="line"
id="tspan210">Empty </tspan></text>
</g><g
id="g214"
transform="translate(858.3701,223.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text218"><tspan
x="0 21.4116 39.3372 57.262798 77.380798"
y="0"
sodipodi:role="line"
id="tspan216">Pages</tspan></text>
</g><g
id="g220"
transform="translate(22.77441,210.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text224"><tspan
x="0 31.5 40.706402 56.498402 76.616402 95.012398 108.9984 132.174 150.0576 168.4536"
y="0"
sodipodi:role="line"
id="tspan222">Directory </tspan></text>
</g><g
id="g226"
transform="translate(68.31201,161.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text230"><tspan
x="0 21.4116 39.3372 57.262798"
y="0"
sodipodi:role="line"
id="tspan228">Page</tspan></text>
</g><g
id="g232"
transform="translate(178.4814,79.17969)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text236"><tspan
x="0 21 38.925598 57.321602 78.321602 89.989197 110.9892 128.91479 146.84039 166.9584 178.62601 197.022 220.1976 241.1976 255.18359 273.10919 282.31561 303.31561 319.4772 331.14481 352.14481 363.81241 384.81241 407.98801 417.1944 438.1944 452.18039 472.2984 488.93039 505.09201 516.75958 537.75958 546.966 567.966 584.12762 595.79523 617.20679 635.13239 649.11841"
y="0"
sodipodi:role="line"
id="tspan234">Each page contains 2 pointers plus data</tspan></text>
</g></g></svg>

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -0,0 +1,269 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="1103.2744"
height="687.20691"
viewBox="0 0 1103.2745 687.20691"
sodipodi:docname="2019-02-15-Heap-File-2.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath24"><path
d="M 0,0 H 1024 V 768 H 0 Z"
id="path22"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1752"
inkscape:window-height="971"
id="namedview4"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.64426823"
inkscape:cx="385.60126"
inkscape:cy="511.08556"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="g10" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="04-Storage2"
transform="matrix(1.3333333,0,0,-1.3333333,-132.36068,759.01157)"><g
id="g12" /><g
id="g34"
transform="translate(502.5,18.14844)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:18px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text38"><tspan
x="0"
y="0"
id="tspan36"></tspan></text>
</g><path
d="M 336,531 H 446 V 442 H 336 Z"
style="fill:#b51a00;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path46"
inkscape:connector-curvature="0" /><g
id="g48"
transform="matrix(1,0,0,-1,336,531)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path50"
inkscape:connector-curvature="0" /></g><g
id="g52"
transform="translate(115.7744,406.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text56"><tspan
x="0 31.5 40.706402 56.498402 76.616402 95.012398 108.9984 132.174 150.0576 168.4536"
y="0"
sodipodi:role="line"
id="tspan54">Directory </tspan></text>
</g><g
id="g58"
transform="translate(153.2319,357.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text62"><tspan
x="0 21.4116 39.3372 57.262798 77.380798"
y="0"
sodipodi:role="line"
id="tspan60">Pages</tspan></text>
</g><g
id="g64"
transform="translate(95.54102,149.7578)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:38px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text68"><tspan
x="0 28.5 36.829601 51.117599 69.319603 85.9636 98.617599 119.586 134.634 142.96359 161.1656 175.78799 186.34441 202.56281 216.8508 235.0528 245.60921 261.82761 272.384 289.02802 309.9964 318.32599 326.65561 344.8576 361.50159 374.15561 382.4852 403.45361 422.45361 433.01001 453.97839 463.47839 474.03479 493.03479 509.2532 525.47162 543.67358 558.29602 568.85242 581.13397 600.09601 608.4256 624.64398 632.97357 637.49939 648.05579 664.27417 674.83063 683.16022 691.48981 710.48981 727.55939 745.76141 765.13379 775.69019 784.01978 792.34943 806.9718 819.62579"
y="0"
sodipodi:role="line"
id="tspan66">Directories are a collection of pages (e.g., a linked list)</tspan></text>
<text
transform="matrix(1,0,0,-1,831.9074,0)"
style="font-variant:normal;font-weight:normal;font-size:38px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text72"><tspan
x="0"
y="0"
id="tspan70"> </tspan></text>
</g><g
id="g74"
transform="translate(249.6284,105.7578)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:38px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text78"><tspan
x="0 28.5 36.829601 51.117599 69.319603 85.9636 98.617599 119.586 134.634 142.96359 161.1656 175.78799 186.34441 205.34441 226.31281 234.6424 253.6424 266.29639 276.85281 289.50681 310.47519 321.03159 337.25 345.57959 353.90921 364.46561 383.83801 400.0564 412.71039 428.9288 439.4852 458.4852 474.70361 490.922 509.12399 523.7464"
y="0"
sodipodi:role="line"
id="tspan76">Directories point to all data pages </tspan></text>
<text
transform="matrix(1,0,0,-1,534.3028,0)"
style="font-variant:normal;font-weight:normal;font-size:38px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text82"><tspan
x="0"
y="0"
id="tspan80"> </tspan></text>
</g><g
id="g84"
transform="translate(235.5918,61.75781)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:38px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text88"><tspan
x="0 12.2816 30.483601 49.483601 62.1376 77.1856 85.515198 103.7172 118.3396 128.896 145.53999 161.75841 180.75841 191.3148 199.64439 218.64439 235.28841 243.618 262.61801 281.99039 300.19241 310.74881 332.9408 343.49719 364.46561 373.96561 384.522 394.022 408.31 426.51199 444.71399 455.27039 474.27039 490.4888 506.70721 524.90918 539.53162"
y="0"
sodipodi:role="line"
id="tspan86">(entries can include # of free pages)</tspan></text>
</g><path
d="M 587,559 H 697 V 492 H 587 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path90"
inkscape:connector-curvature="0" /><g
id="g92"
transform="matrix(1,0,0,-1,587,559)"><path
d="M 0,0 H 110 V 67 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path94"
inkscape:connector-curvature="0" /></g><path
d="M 587,477 H 697 V 409 H 587 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path96"
inkscape:connector-curvature="0" /><g
id="g98"
transform="matrix(1,0,0,-1,587,476.6751)"><path
d="M 0,-0.3249207 H 110 V 67.67508 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path100"
inkscape:connector-curvature="0" /></g><path
d="M 587,394 H 697 V 327 H 587 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path102"
inkscape:connector-curvature="0" /><g
id="g104"
transform="matrix(1,0,0,-1,587,394.3502)"><path
d="M 0,0.3501587 H 110 V 67.35016 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path106"
inkscape:connector-curvature="0" /></g><path
d="M 587,268 H 697 V 201 H 587 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path108"
inkscape:connector-curvature="0" /><g
id="g110"
transform="matrix(1,0,0,-1,587,268.2192)"><path
d="M 0,0.2192383 H 110 V 67.21924 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path112"
inkscape:connector-curvature="0" /></g><g
id="g114"
transform="translate(620.5884,296.2492)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text118"><tspan
x="0"
y="0"
id="tspan116">…</tspan></text>
</g><path
d="M 336,400 H 446 V 311 H 336 Z"
style="fill:#b51a00;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path120"
inkscape:connector-curvature="0" /><g
id="g122"
transform="matrix(1,0,0,-1,336,400)"><path
d="M 0,0 H 110 V 89 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path124"
inkscape:connector-curvature="0" /></g><g
id="g126"
transform="matrix(-0.01437671,0.9998966,0.9998966,0.01437671,311.7987,395.1876)"><path
d="M 7.711257,12.8398 8.69988,11.71169 C 24.7995,-4.207305 38.20631,-3.287181 48.53779,10.77214 l 0.74232,1.30729"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path128"
inkscape:connector-curvature="0" /></g><path
d="m 325.2159,438.1851 8.0426,12.374 -14.7248,-0.9903 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path130"
inkscape:connector-curvature="0" /><path
d="m 319.106,399.0293 14.3295,-3.5306 -5.7732,13.582 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path132"
inkscape:connector-curvature="0" /><g
id="g134"
transform="matrix(1,0,0,-1,354.0104,567.7402)"><path
d="M 0,60.21407 C 34.9322,2.044751 200.1945,-26.25142 253.4896,32.12509 l 1,1.61508"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path136"
inkscape:connector-curvature="0" /></g><path
d="m 602.3014,531.2819 13.155,-6.6893 -2.5415,14.5376 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path138"
inkscape:connector-curvature="0" /><g
id="g140"
transform="matrix(1,0,0,-1,381,534.5056)"><path
d="M 0,26.71967 C 34.99212,-31.54944 178.7777,14.18914 229.5,80.56377 V 81.5056"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path142"
inkscape:connector-curvature="0" /></g><path
d="m 604.1907,450.5499 12.8564,-7.2466 -1.9166,14.6331 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path144"
inkscape:connector-curvature="0" /><g
id="g146"
transform="matrix(1,0,0,-1,409,523.931)"><path
d="M 0,16.65064 C 35.03381,-41.68788 150.766,66.3579 198.5,139.0983 l 1,0.8327"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path148"
inkscape:connector-curvature="0" /></g><path
d="m 602.1045,381.7847 12.5799,-7.7166 -1.3747,14.6939 z"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path150"
inkscape:connector-curvature="0" /><g
id="g152"
transform="translate(783.333,432.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text156"><tspan
x="0 31.5 49.425598 63.411598 81.337196"
y="0"
sodipodi:role="line"
id="tspan154">Data </tspan></text>
<text
transform="matrix(1,0,0,-1,93.0048,0)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text160"><tspan
x="0"
y="0"
id="tspan158"> </tspan></text>
</g><g
id="g162"
transform="translate(777.2319,383.6797)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text166"><tspan
x="0 21.4116 39.3372 57.262798 77.380798"
y="0"
sodipodi:role="line"
id="tspan164">Pages</tspan></text>
</g></g></svg>

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,473 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="227.2872mm"
height="157.99657mm"
viewBox="0 0 227.2872 157.99657"
version="1.1"
id="svg1378"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="2019-02-15-Layout-RowWise.svg">
<defs
id="defs1372" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="41.106128"
inkscape:cy="484.44526"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-right="20"
fit-margin-bottom="20"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata1375">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(13.101936,-53.33258)">
<g
id="g1389"
transform="translate(-15.875,31.750001)">
<rect
rx="0.52964824"
y="42.244038"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380"
style="fill:#c83737;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384"
y="58.574898"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="58.574898"
x="36.17424"
id="tspan1382"
sodipodi:role="line">A1</tspan></text>
</g>
<g
transform="translate(33.261901,31.750001)"
id="g1389-8">
<rect
rx="0.52964824"
y="42.244038"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380-6"
style="fill:#c83737;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-2"
y="58.574898"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="58.574898"
x="36.17424"
id="tspan1382-4"
sodipodi:role="line">B1</tspan></text>
</g>
<g
transform="translate(82.398803,31.750001)"
id="g1389-7">
<rect
rx="0.52964824"
y="42.244038"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380-9"
style="fill:#c83737;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-3"
y="58.574898"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="58.574898"
x="36.17424"
id="tspan1382-9"
sodipodi:role="line">C1</tspan></text>
</g>
<g
transform="translate(131.53571,31.750001)"
id="g1389-8-2">
<rect
rx="0.52964824"
y="42.244038"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380-6-8"
style="fill:#c83737;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-2-3"
y="58.574898"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="58.574898"
x="36.17424"
id="tspan1382-4-0"
sodipodi:role="line">D1</tspan></text>
</g>
<g
id="g1781"
transform="translate(-15.875,21.166667)">
<rect
rx="0.52964824"
y="77.773804"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380-5"
style="fill:#37abc8;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-4"
y="94.10466"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="94.10466"
x="36.17424"
id="tspan1382-92"
sodipodi:role="line">A2</tspan></text>
</g>
<g
id="g1786"
transform="translate(-5.2916667,21.166667)">
<rect
rx="0.52964824"
y="77.773804"
x="61.988091"
height="24.946428"
width="38.55357"
id="rect1380-6-7"
style="fill:#37abc8;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-2-4"
y="94.10466"
x="74.727806"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="94.10466"
x="74.727806"
id="tspan1382-4-9"
sodipodi:role="line">B2</tspan></text>
</g>
<g
id="g1791"
transform="translate(5.2916667,21.166667)">
<rect
rx="0.52964824"
y="77.773804"
x="100.54166"
height="24.946428"
width="38.55357"
id="rect1380-9-4"
style="fill:#37abc8;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-3-5"
y="94.10466"
x="113.28138"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="94.10466"
x="113.28138"
id="tspan1382-9-9"
sodipodi:role="line">C2</tspan></text>
</g>
<g
id="g1796"
transform="translate(15.875,21.166667)">
<rect
rx="0.52964824"
y="77.773804"
x="139.09523"
height="24.946428"
width="38.55357"
id="rect1380-6-8-5"
style="fill:#37abc8;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-2-3-7"
y="94.10466"
x="151.83495"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="94.10466"
x="151.83495"
id="tspan1382-4-0-0"
sodipodi:role="line">D2</tspan></text>
</g>
<g
id="g1828"
transform="translate(-15.875,10.583333)">
<rect
style="fill:#00aa88;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect1532"
width="38.55357"
height="24.946428"
x="23.434523"
y="113.30357"
rx="0.52964824" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="36.17424"
y="129.63443"
id="text1536"><tspan
sodipodi:role="line"
id="tspan1534"
x="36.17424"
y="129.63443"
style="fill:#ffffff;stroke-width:0.26458332">A3</tspan></text>
</g>
<g
id="g1823"
transform="translate(-5.2916667,10.583333)">
<rect
style="fill:#00aa88;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect1540"
width="38.55357"
height="24.946428"
x="61.988091"
y="113.30357"
rx="0.52964824" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="74.727806"
y="129.63443"
id="text1544"><tspan
sodipodi:role="line"
id="tspan1542"
x="74.727806"
y="129.63443"
style="fill:#ffffff;stroke-width:0.26458332">B3</tspan></text>
</g>
<g
id="g1818"
transform="translate(5.2916667,10.583333)">
<rect
style="fill:#00aa88;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect1548"
width="38.55357"
height="24.946428"
x="100.54166"
y="113.30357"
rx="0.52964824" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="113.28138"
y="129.63443"
id="text1552"><tspan
sodipodi:role="line"
id="tspan1550"
x="113.28138"
y="129.63443"
style="fill:#ffffff;stroke-width:0.26458332">C3</tspan></text>
</g>
<g
id="g1813"
transform="translate(15.875,10.583333)">
<rect
style="fill:#00aa88;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect1556"
width="38.55357"
height="24.946428"
x="139.09523"
y="113.30357"
rx="0.52964824" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="151.83495"
y="129.63443"
id="text1560"><tspan
sodipodi:role="line"
id="tspan1558"
x="151.83495"
y="129.63443"
style="fill:#ffffff;stroke-width:0.26458332">D3</tspan></text>
</g>
<g
id="g1845"
transform="translate(-15.875)">
<rect
rx="0.52964824"
y="148.83333"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1566"
style="fill:#6600ff;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1570"
y="165.16418"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="165.16418"
x="36.17424"
id="tspan1568"
sodipodi:role="line">A4</tspan></text>
</g>
<g
id="g1850"
transform="translate(-5.2916667)">
<rect
rx="0.52964824"
y="148.83333"
x="61.988091"
height="24.946428"
width="38.55357"
id="rect1574"
style="fill:#6600ff;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1578"
y="165.16418"
x="74.727806"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="165.16418"
x="74.727806"
id="tspan1576"
sodipodi:role="line">B4</tspan></text>
</g>
<g
id="g1855"
transform="translate(5.2916667)">
<rect
rx="0.52964824"
y="148.83333"
x="100.54166"
height="24.946428"
width="38.55357"
id="rect1582"
style="fill:#6600ff;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1586"
y="165.16418"
x="113.28138"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="165.16418"
x="113.28138"
id="tspan1584"
sodipodi:role="line">C4</tspan></text>
</g>
<g
id="g1860"
transform="translate(15.875)">
<rect
rx="0.52964824"
y="148.83333"
x="139.09523"
height="24.946428"
width="38.55357"
id="rect1590"
style="fill:#6600ff;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1594"
y="165.16418"
x="151.83495"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="165.16418"
x="151.83495"
id="tspan1592"
sodipodi:role="line">D4</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="12.89659"
y="191.17929"
id="text1864"><tspan
sodipodi:role="line"
id="tspan1862"
x="12.89659"
y="191.17929"
style="stroke-width:0.26458332">File 1</tspan></text>
<text
id="text1868"
y="191.17929"
x="62.074833"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="191.17929"
x="62.074833"
id="tspan1866"
sodipodi:role="line">File 2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="111.1058"
y="191.17929"
id="text1872"><tspan
sodipodi:role="line"
id="tspan1870"
x="111.1058"
y="191.17929"
style="stroke-width:0.26458332">File 3</tspan></text>
<text
id="text1876"
y="191.17929"
x="160.11609"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="191.17929"
x="160.11609"
id="tspan1874"
sodipodi:role="line">File 4</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,416 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="155.5372mm"
height="132.85863mm"
viewBox="0 0 155.5372 132.85863"
version="1.1"
id="svg1378"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="2019-02-15-Layout-RowWise.svg">
<defs
id="defs1372" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="41.106128"
inkscape:cy="484.44526"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata1375">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-22.773064,-41.582579)">
<g
id="g1389">
<rect
rx="0.52964824"
y="42.244038"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380"
style="fill:#c83737;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384"
y="58.574898"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="58.574898"
x="36.17424"
id="tspan1382"
sodipodi:role="line">A1</tspan></text>
</g>
<g
transform="translate(38.553568)"
id="g1389-8">
<rect
rx="0.52964824"
y="42.244038"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380-6"
style="fill:#c83737;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-2"
y="58.574898"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="58.574898"
x="36.17424"
id="tspan1382-4"
sodipodi:role="line">B1</tspan></text>
</g>
<g
transform="translate(77.107136)"
id="g1389-7">
<rect
rx="0.52964824"
y="42.244038"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380-9"
style="fill:#c83737;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-3"
y="58.574898"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="58.574898"
x="36.17424"
id="tspan1382-9"
sodipodi:role="line">C1</tspan></text>
</g>
<g
transform="translate(115.6607)"
id="g1389-8-2">
<rect
rx="0.52964824"
y="42.244038"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380-6-8"
style="fill:#c83737;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-2-3"
y="58.574898"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="58.574898"
x="36.17424"
id="tspan1382-4-0"
sodipodi:role="line">D1</tspan></text>
</g>
<g
id="g1781">
<rect
rx="0.52964824"
y="77.773804"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1380-5"
style="fill:#37abc8;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-4"
y="94.10466"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="94.10466"
x="36.17424"
id="tspan1382-92"
sodipodi:role="line">A2</tspan></text>
</g>
<g
id="g1786">
<rect
rx="0.52964824"
y="77.773804"
x="61.988091"
height="24.946428"
width="38.55357"
id="rect1380-6-7"
style="fill:#37abc8;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-2-4"
y="94.10466"
x="74.727806"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="94.10466"
x="74.727806"
id="tspan1382-4-9"
sodipodi:role="line">B2</tspan></text>
</g>
<g
id="g1791">
<rect
rx="0.52964824"
y="77.773804"
x="100.54166"
height="24.946428"
width="38.55357"
id="rect1380-9-4"
style="fill:#37abc8;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-3-5"
y="94.10466"
x="113.28138"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="94.10466"
x="113.28138"
id="tspan1382-9-9"
sodipodi:role="line">C2</tspan></text>
</g>
<g
id="g1796">
<rect
rx="0.52964824"
y="77.773804"
x="139.09523"
height="24.946428"
width="38.55357"
id="rect1380-6-8-5"
style="fill:#37abc8;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1384-2-3-7"
y="94.10466"
x="151.83495"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="94.10466"
x="151.83495"
id="tspan1382-4-0-0"
sodipodi:role="line">D2</tspan></text>
</g>
<g
id="g1828">
<rect
style="fill:#00aa88;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect1532"
width="38.55357"
height="24.946428"
x="23.434523"
y="113.30357"
rx="0.52964824" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="36.17424"
y="129.63443"
id="text1536"><tspan
sodipodi:role="line"
id="tspan1534"
x="36.17424"
y="129.63443"
style="fill:#ffffff;stroke-width:0.26458332">A3</tspan></text>
</g>
<g
id="g1823">
<rect
style="fill:#00aa88;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect1540"
width="38.55357"
height="24.946428"
x="61.988091"
y="113.30357"
rx="0.52964824" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="74.727806"
y="129.63443"
id="text1544"><tspan
sodipodi:role="line"
id="tspan1542"
x="74.727806"
y="129.63443"
style="fill:#ffffff;stroke-width:0.26458332">B3</tspan></text>
</g>
<g
id="g1818">
<rect
style="fill:#00aa88;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect1548"
width="38.55357"
height="24.946428"
x="100.54166"
y="113.30357"
rx="0.52964824" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="113.28138"
y="129.63443"
id="text1552"><tspan
sodipodi:role="line"
id="tspan1550"
x="113.28138"
y="129.63443"
style="fill:#ffffff;stroke-width:0.26458332">C3</tspan></text>
</g>
<g
id="g1813">
<rect
style="fill:#00aa88;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect1556"
width="38.55357"
height="24.946428"
x="139.09523"
y="113.30357"
rx="0.52964824" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="151.83495"
y="129.63443"
id="text1560"><tspan
sodipodi:role="line"
id="tspan1558"
x="151.83495"
y="129.63443"
style="fill:#ffffff;stroke-width:0.26458332">D3</tspan></text>
</g>
<g
id="g1845">
<rect
rx="0.52964824"
y="148.83333"
x="23.434523"
height="24.946428"
width="38.55357"
id="rect1566"
style="fill:#6600ff;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1570"
y="165.16418"
x="36.17424"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="165.16418"
x="36.17424"
id="tspan1568"
sodipodi:role="line">A4</tspan></text>
</g>
<g
id="g1850">
<rect
rx="0.52964824"
y="148.83333"
x="61.988091"
height="24.946428"
width="38.55357"
id="rect1574"
style="fill:#6600ff;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1578"
y="165.16418"
x="74.727806"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="165.16418"
x="74.727806"
id="tspan1576"
sodipodi:role="line">B4</tspan></text>
</g>
<g
id="g1855">
<rect
rx="0.52964824"
y="148.83333"
x="100.54166"
height="24.946428"
width="38.55357"
id="rect1582"
style="fill:#6600ff;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1586"
y="165.16418"
x="113.28138"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="165.16418"
x="113.28138"
id="tspan1584"
sodipodi:role="line">C4</tspan></text>
</g>
<g
id="g1860">
<rect
rx="0.52964824"
y="148.83333"
x="139.09523"
height="24.946428"
width="38.55357"
id="rect1590"
style="fill:#6600ff;stroke:#808080;stroke-width:1.32291663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
<text
id="text1594"
y="165.16418"
x="151.83495"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.26458332"
y="165.16418"
x="151.83495"
id="tspan1592"
sodipodi:role="line">D4</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -0,0 +1,729 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="1121.3973"
height="589.88092"
viewBox="0 0 1121.3974 589.88092"
sodipodi:docname="2019-02-15-Page-Layouts.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath24"><path
d="M 0,0 H 1024 V 768 H 0 Z"
id="path22"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath338"><path
d="m 384.2173,469.9414 h 258.7422 v 73.11719 H 384.2173 Z"
id="path336"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath352"><path
d="m 360.2193,501.6646 h 35.46381 v 21.08885 H 360.2193 Z"
id="path350"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath364"><path
d="m 363.6866,493.0195 h 31.76735 v 12.01958 H 363.6866 Z"
id="path362"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath376"><path
d="m 363.339,466.048 h 30.91183 v 38.8571 H 363.339 Z"
id="path374"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath388"><path
d="m 381.0884,298.9414 h 209.1953 v 73.11719 H 381.0884 Z"
id="path386"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath402"><path
d="m 360.3169,335.6646 h 35.46381 v 21.08885 H 360.3169 Z"
id="path400"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath414"><path
d="m 363.7843,327.0195 h 31.76735 v 12.01958 H 363.7843 Z"
id="path412"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath426"><path
d="m 363.4367,300.048 h 30.91183 v 38.8571 H 363.4367 Z"
id="path424"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath438"><path
d="m 99.03955,148.9414 h 357.0977 v 73.11719 H 99.03955 Z"
id="path436"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath452"><path
d="m 302.0163,202.1779 h 50.51816 v 37.5582 H 302.0163 Z"
id="path450"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath464"><path
d="M 0,0 H 1024 V 768 H 0 Z"
id="path462"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1027"
id="namedview4"
showgrid="false"
inkscape:zoom="0.64426823"
inkscape:cx="229.12267"
inkscape:cy="417.5211"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g10"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="04-Storage2"
transform="matrix(1.3333333,0,0,-1.3333333,-164.16585,812.40664)"><g
id="g12" /><g
id="g28"
transform="translate(283.625,623.3594)" /><g
id="g34"
transform="translate(502.5,18.14844)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:18px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text38"><tspan
x="0"
y="0"
id="tspan36"></tspan></text>
</g><g
id="g1679"><path
inkscape:connector-curvature="0"
id="path46"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,535 H 376 V 508 H 219 Z" /><g
transform="matrix(1,0,0,-1,218.9905,535)"
id="g48"><path
inkscape:connector-curvature="0"
id="path50"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0.00946045,0 H 157.0095 V 27 H 0.00946045 Z" /></g><path
inkscape:connector-curvature="0"
id="path52"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,508 H 376 V 481 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,508)"
id="g54"><path
inkscape:connector-curvature="0"
id="path56"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path58"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,481 H 376 V 454 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,481)"
id="g60"><path
inkscape:connector-curvature="0"
id="path62"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path64"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,454 H 376 V 427 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,454)"
id="g66"><path
inkscape:connector-curvature="0"
id="path68"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path70"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,427 H 376 V 400 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,427)"
id="g72"><path
inkscape:connector-curvature="0"
id="path74"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path76"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,400 H 376 V 373 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,400)"
id="g78"><path
inkscape:connector-curvature="0"
id="path80"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path82"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,373 H 376 V 346 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,373)"
id="g84"><path
inkscape:connector-curvature="0"
id="path86"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path88"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,346 H 376 V 319 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,346)"
id="g90"><path
inkscape:connector-curvature="0"
id="path92"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path94"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,319 H 376 V 292 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,319)"
id="g96"><path
inkscape:connector-curvature="0"
id="path98"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path100"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,292 H 376 V 265 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,292)"
id="g102"><path
inkscape:connector-curvature="0"
id="path104"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path106"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 219,265 H 376 V 238 H 219 Z" /><g
transform="matrix(1,0,0,-1,219,265)"
id="g108"><path
inkscape:connector-curvature="0"
id="path110"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><g
transform="translate(356.0884,242.4922)"
id="g112"><text
id="text116"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan114"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">6</tspan></text>
</g><g
transform="translate(192.4801,511.9922)"
id="g118"><text
id="text122"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan120"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">1</tspan></text>
</g><g
transform="translate(193.1821,484.9922)"
id="g124"><text
id="text128"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan126"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">2</tspan></text>
</g><g
transform="translate(193.2341,457.9922)"
id="g130"><text
id="text134"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan132"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">3</tspan></text>
</g><g
transform="translate(193.1951,430.9922)"
id="g136"><text
id="text140"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan138"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">4</tspan></text>
</g><g
transform="translate(192.8571,403.9922)"
id="g142"><text
id="text146"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan144"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">5</tspan></text>
</g><g
transform="translate(192.7531,376.9922)"
id="g148"><text
id="text152"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan150"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">6</tspan></text>
</g><g
transform="translate(192.8181,349.9922)"
id="g154"><text
id="text158"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan156"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">7</tspan></text>
</g><g
transform="translate(192.5971,322.9922)"
id="g160"><text
id="text164"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan162"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">8</tspan></text>
</g><g
transform="translate(192.5971,295.9922)"
id="g166"><text
id="text170"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan168"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">…</tspan></text>
</g><g
transform="translate(187.8501,270.4922)"
id="g172"><text
id="text176"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"
x="4.5"><tspan
id="tspan174"
y="0"
x="4.5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">N</tspan></text>
</g></g><g
id="g346"><g
id="g348"
clip-path="url(#clipPath352)"><g
id="g354"
transform="matrix(1,0,0,-1,361.9023,520.418)"><path
d="M 0,0 32.09766,16.41797"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path356"
inkscape:connector-curvature="0" /></g></g></g><g
id="g358"><g
id="g360"
clip-path="url(#clipPath364)"><g
id="g366"
transform="matrix(1,0,0,-1,365.043,502.582)"><path
d="M 0,7.105461 29.05469,0"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path368"
inkscape:connector-curvature="0" /></g></g></g><g
id="g370"><g
id="g372"
clip-path="url(#clipPath376)"><g
id="g378"
transform="matrix(1,0,0,-1,365.5352,503)"><path
d="M 0,35.04688 26.51953,0"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path380"
inkscape:connector-curvature="0" /></g></g></g><g
id="g396"><g
id="g398"
clip-path="url(#clipPath402)"><g
id="g404"
transform="matrix(1,0,0,-1,362,354.418)"><path
d="M 0,0 32.09766,16.41797"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path406"
inkscape:connector-curvature="0" /></g></g></g><g
id="g408"><g
id="g410"
clip-path="url(#clipPath414)"><g
id="g416"
transform="matrix(1,0,0,-1,365.1406,336.582)"><path
d="M 0,7.105461 29.05469,0"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path418"
inkscape:connector-curvature="0" /></g></g></g><g
id="g420"><g
id="g422"
clip-path="url(#clipPath426)"><g
id="g428"
transform="matrix(1,0,0,-1,365.6328,337)"><path
d="M 0,35.04688 26.51953,0"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path430"
inkscape:connector-curvature="0" /></g></g></g><g
id="g446"><g
id="g448"
clip-path="url(#clipPath452)"><g
id="g454"
transform="matrix(1,0,0,-1,303.8828,237.5117)"><path
d="M 46.78516,0 0,33.10938"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path456"
inkscape:connector-curvature="0" /></g></g></g><g
id="g1927"
transform="translate(4.7167969)"><path
inkscape:connector-curvature="0"
id="path178"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,292 H 846 V 265 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,292)"
id="g180"><path
inkscape:connector-curvature="0"
id="path182"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path184"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,508 H 846 V 481 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,508)"
id="g186"><path
inkscape:connector-curvature="0"
id="path188"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path190"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,481 H 846 V 454 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,481)"
id="g192"><path
inkscape:connector-curvature="0"
id="path194"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path196"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,454 H 846 V 427 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,454)"
id="g198"><path
inkscape:connector-curvature="0"
id="path200"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path202"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,427 H 846 V 400 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,427)"
id="g204"><path
inkscape:connector-curvature="0"
id="path206"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path208"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,346 H 846 V 319 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,346)"
id="g210"><path
inkscape:connector-curvature="0"
id="path212"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path214"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,373 H 846 V 346 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,373)"
id="g216"><path
inkscape:connector-curvature="0"
id="path218"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path220"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,535 H 846 V 508 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,535)"
id="g222"><path
inkscape:connector-curvature="0"
id="path224"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path226"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,319 H 846 V 292 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,319)"
id="g228"><path
inkscape:connector-curvature="0"
id="path230"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path232"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,400 H 846 V 373 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,400)"
id="g234"><path
inkscape:connector-curvature="0"
id="path236"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><path
inkscape:connector-curvature="0"
id="path238"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 689,265 H 846 V 238 H 689 Z" /><g
transform="matrix(1,0,0,-1,689,265)"
id="g240"><path
inkscape:connector-curvature="0"
id="path242"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 0,0 H 157 V 27 H 0 Z" /></g><g
transform="translate(666.447,511.9922)"
id="g250"><text
id="text254"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan252"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier">1</tspan></text>
</g><g
transform="translate(667.149,484.9922)"
id="g256"><text
id="text260"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan258"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">2</tspan></text>
</g><g
transform="translate(667.201,457.9922)"
id="g262"><text
id="text266"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan264"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">3</tspan></text>
</g><g
transform="translate(667.162,430.9922)"
id="g268"><text
id="text272"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan270"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">4</tspan></text>
</g><g
transform="translate(666.824,403.9922)"
id="g274"><text
id="text278"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan276"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">5</tspan></text>
</g><g
transform="translate(666.72,376.9922)"
id="g280"><text
id="text284"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan282"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">6</tspan></text>
</g><g
transform="translate(666.785,349.9922)"
id="g286"><text
id="text290"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan288"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">7</tspan></text>
</g><g
transform="translate(666.564,322.9922)"
id="g292"><text
id="text296"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan294"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">8</tspan></text>
</g><g
transform="translate(666.564,295.9922)"
id="g298"><text
id="text302"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan300"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">…</tspan></text>
</g><g
transform="translate(666.317,268.9922)"
id="g304"><text
id="text308"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan306"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">N</tspan></text>
</g><g
transform="translate(821.8501,241.9922)"
id="g478"><text
id="text482"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan480"
y="0"
x="0"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">N</tspan></text>
</g><g
id="g1995"
transform="translate(142.5,4.4999996)"><text
y="-238.3318"
x="553.33319"
id="text248"
style="font-variant:normal;font-weight:normal;font-size:22px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="scale(1,-1)"><tspan
id="tspan246"
sodipodi:role="line"
y="-238.3318"
x="553.33319 564.33319 575.33319 586.33319 597.33319 608.33319 619.33319 655.80042"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start">01101011</tspan></text>
<g
id="g298-1"
transform="translate(636.40634,238.52242)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:26px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text302-1"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26px;font-family:Courier;-inkscape-font-specification:'Courier, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start"
x="0"
y="0"
id="tspan300-1">…</tspan></text>
</g></g></g><text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
x="214.541"
y="-578.91437"
id="text1939"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1937"
x="214.541"
y="-578.91437"
style="font-size:40px;stroke-width:0.75">Packed</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
x="564.68164"
y="-578.91437"
id="text1943"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1941"
x="564.68164"
y="-578.91437"
style="font-size:40px;stroke-width:0.75">Unpacked (Bitmap)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
x="120.18005"
y="-174.50804"
id="text1947"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1945"
x="120.18005"
y="-174.50804"
style="stroke-width:0.75">Number of Records</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
x="769.8902"
y="-203.13452"
id="text1951"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1949"
x="769.8902"
y="-203.13452"
style="line-height:1;text-align:center;text-anchor:middle;stroke-width:0.75">Bit array of occupied slots</tspan><tspan
sodipodi:role="line"
x="769.8902"
y="-173.13452"
style="line-height:1;text-align:center;text-anchor:middle;stroke-width:0.75"
id="tspan1957">(and size of page)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
x="401.69772"
y="-492.24435"
id="text1961"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1959"
x="401.69772"
y="-492.24435"
style="stroke-width:0.75">Data Records</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
x="398.40512"
y="-327.61414"
id="text1965"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1963"
x="398.40512"
y="-327.61414"
style="stroke-width:0.75">Free Space</tspan></text>
</g></svg>

After

Width:  |  Height:  |  Size: 41 KiB

View file

@ -0,0 +1,385 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="1009.2916"
height="672.81763"
viewBox="0 0 1009.2917 672.81763"
sodipodi:docname="2019-02-15-Page-Layouts-2.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6"><marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="marker4727"
style="overflow:visible"
inkscape:isstock="true"><path
id="path4725"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4589"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mend"
inkscape:collect="always"><path
transform="scale(-0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
id="path4587"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="marker4523"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always"><path
id="path4521"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4379"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mend"
inkscape:collect="always"><path
transform="scale(-0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
id="path4377"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible"
inkscape:isstock="true"><path
id="path1081"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible"
inkscape:isstock="true"><path
id="path1075"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always"><path
id="path1093"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker1523"
style="overflow:visible"
inkscape:isstock="true"><path
id="path1521"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true"><path
id="path1069"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" /></marker><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath24"><path
d="M 0,0 H 1024 V 768 H 0 Z"
id="path22"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath52"><path
d="M 144,218.0001 H 879 V 504 H 144 Z"
id="path50"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath66"><path
d="m 239,434.4186 h 161 v 39.41397 H 239 Z"
id="path64"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath80"><path
d="m 395,366.2139 h 161 v 39.41397 H 395 Z"
id="path78"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath94"><path
d="m 483,330.7999 h 161 v 39.41397 H 483 Z"
id="path92"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath108"><path
d="M 144,218.0001 H 879 V 337.4234 H 144 Z"
id="path106"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath122"><path
d="m 506,217.9999 h 373 v 39.41397 H 506 Z"
id="path120"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath136"><path
d="M 0,0 H 1024 V 768 H 0 Z"
id="path134"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1027"
id="namedview4"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.22778322"
inkscape:cx="331.6435"
inkscape:cy="-231.63071"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g10" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="04-Storage2"
transform="matrix(1.3333333,0,0,-1.3333333,-162.45037,796.20148)"><g
id="g12" /><g
id="g46"><g
id="g48"
clip-path="url(#clipPath52)"><path
d="M 146,502 H 877 V 220 H 146 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path54"
inkscape:connector-curvature="0" /><g
id="g56"
transform="matrix(1,0,0,-1,146,502)"><path
d="M 0,0 H 731 V 282 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path58"
inkscape:connector-curvature="0" /></g></g></g><g
id="g60"
transform="translate(-94.5,29.038228)"><g
id="g62"
clip-path="url(#clipPath66)"><path
d="M 241,472 H 398 V 436 H 241 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path68"
inkscape:connector-curvature="0" /><g
id="g70"
transform="matrix(1,0,0,-1,241,471.8326)"><path
d="m 0,-0.16745 h 157 v 36 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path72"
inkscape:connector-curvature="0" /></g></g></g><g
id="g74"
transform="translate(-93,97.038288)"><g
id="g76"
clip-path="url(#clipPath80)"><path
d="M 397,404 H 554 V 368 H 397 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path82"
inkscape:connector-curvature="0" /><g
id="g84"
transform="matrix(1,0,0,-1,397,403.6279)"><path
d="M 0,-0.3720932 H 157 V 35.62791 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path86"
inkscape:connector-curvature="0" /></g></g></g><g
id="g88"
transform="matrix(0.99943352,0,0,1.0457674,-23.68079,116.84348)"><g
id="g90"
clip-path="url(#clipPath94)"><path
d="M 485,368 H 642 V 333 H 485 Z"
style="fill:#4f7a28;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path96"
inkscape:connector-curvature="0" /><g
id="g98"
transform="matrix(1,0,0,-1,485,368.2139)"><path
d="M 0,0.2138824 H 157 V 35.21388 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path100"
inkscape:connector-curvature="0" /></g></g></g><g
id="g102"><g
id="g104"
clip-path="url(#clipPath108)"><path
d="M 146,335 H 877 V 220 H 146 Z"
style="fill:#0056d6;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path110"
inkscape:connector-curvature="0" /><g
id="g112"
transform="matrix(1,0,0,-1,146,335.4233)"><path
d="M 0,0.4233246 H 731 V 115.4233 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path114"
inkscape:connector-curvature="0" /></g></g></g><g
id="g116"><g
id="g118"
clip-path="url(#clipPath122)"><path
d="M 508,255 H 877 V 220 H 508 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path124"
inkscape:connector-curvature="0" /><g
id="g126"
transform="matrix(1,0,0,-1,508,255.4139)"><path
d="M 0,0.4139099 H 369 V 35.41391 H 0 Z"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path128"
inkscape:connector-curvature="0" /></g></g></g><g
id="g138"
transform="translate(519.9185,226.9141)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:30px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text142"><tspan
x="0 15 23.334 38.334 46.667999 61.667999 70.001999 85.001999 93.335999"
y="0"
sodipodi:role="line"
id="tspan140">1 2 3 4 …</tspan></text>
</g><g
id="g162"
transform="matrix(0,1,1,0,838.7148,221.0143)"><path
d="M -0.01434326,-0.2148438 H 32.98566"
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path164"
inkscape:connector-curvature="0" /></g><g
id="g166"
transform="matrix(1,0,0,-1,123.2528,331.0742)" /><g
id="g178"
transform="translate(197.43968,506.59931)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text182"><tspan
x="0 25.368"
y="0"
sodipodi:role="line"
id="tspan180">R1</tspan></text>
</g><g
id="g184"
transform="translate(357.65113,506.85976)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text188"><tspan
x="0 25.368"
y="0"
sodipodi:role="line"
id="tspan186">R2</tspan></text>
</g><g
id="g190"
transform="translate(518.26528,511.90156)"><text
transform="scale(1,-1)"
style="font-variant:normal;font-weight:normal;font-size:42px;font-family:GillSans;-inkscape-font-specification:GillSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="text194"><tspan
x="0 25.368"
y="0"
sodipodi:role="line"
id="tspan192">R3</tspan></text>
</g><text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
x="366.30222"
y="-567.15112"
id="text1054"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1052"
x="366.30222"
y="-567.15112"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;font-family:Cabin;-inkscape-font-specification:Cabin;stroke-width:0.75">Variable Size Records</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1000;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
x="451.08679"
y="-98.778122"
id="text1058"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1056"
x="451.08679"
y="-98.778122"
style="stroke-width:0.75">Pointer to start of free space</tspan></text>
<path
inkscape:connector-curvature="0"
id="path1348"
d="m 853.60772,123.47267 c 3.486,107.64841 3.486,107.64841 3.486,107.64841"
style="fill:none;stroke:#808080;stroke-width:1.80000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
style="fill:none;stroke:#000000;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
d="M 517.4023,245.5587 C 295.97465,296.59407 121.80546,245.50185 146.5,461.16743"
id="path1519"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /><path
style="fill:none;stroke:#000000;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4379)"
d="M 547.54178,253.53054 C 537.66397,298.80385 276.77011,303.70948 303.5,461.16743"
id="path4287"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /><path
style="fill:none;stroke:#000000;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4523)"
d="M 573.88262,251.88424 C 576.35207,325.96784 439.48716,355.31226 461,461.03956"
id="path4513"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /><path
style="fill:none;stroke:#000000;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4589)"
d="m 602.5466,253.53054 c 6.58521,62.55948 20.64744,88.66968 16.90893,205.55349"
id="path4579"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /><path
style="fill:none;stroke:#000000;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4727)"
d="M 857.09372,231.12108 C 778.70096,137.46624 28.207399,180.5177 141.5,332"
id="path4717"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g></svg>

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 378 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

View file

@ -0,0 +1,209 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="176.25287mm"
height="50.51762mm"
viewBox="0 0 176.25287 50.51762"
version="1.1"
id="svg2182"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-01-31-record-fixed.svg">
<defs
id="defs2176">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker2906"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path2904"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path848"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="144.10146"
inkscape:cy="-2.546985"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata2179">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-13.327202,-43.623451)">
<rect
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2184"
width="48.380955"
height="24.190477"
x="14.02756"
y="43.755951" />
<rect
y="43.755951"
x="93.149078"
height="24.245546"
width="30.293167"
id="rect2749"
style="fill:#008000;fill-opacity:1;stroke:#000000;stroke-width:0.20993012;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#000080;fill-opacity:1;stroke:#000000;stroke-width:0.20993012;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2751"
width="30.293167"
height="24.245546"
x="62.645981"
y="43.755951" />
<rect
style="fill:#aa8800;fill-opacity:1;stroke:#000000;stroke-width:0.30858862;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2753"
width="65.724274"
height="24.146889"
x="123.7015"
y="43.805279" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="34.695065"
y="59.966011"
id="text2757"><tspan
sodipodi:role="line"
id="tspan2755"
x="34.695065"
y="59.966011"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332">A</tspan></text>
<text
id="text2761"
y="59.993546"
x="73.864006"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332"
y="59.993546"
x="73.864006"
sodipodi:role="line"
id="tspan2763">B</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="104.23158"
y="59.988033"
id="text2771"><tspan
id="tspan2769"
sodipodi:role="line"
x="104.23158"
y="59.988033"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332">C</tspan></text>
<text
id="text2775"
y="59.993546"
x="151.99681"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332"
y="59.993546"
x="151.99681"
sodipodi:role="line"
id="tspan2773">D</tspan></text>
<g
id="g3106"
class="fragment">
<text
id="text2862"
y="92.212502"
x="16.139584"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="92.212502"
x="16.139584"
id="tspan2860"
sodipodi:role="line">Base Address (X)</tspan></text>
<g
id="g3089">
<path
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2906)"
d="M 16.66875,85.333334 C 14.02756,67.946425 14.02756,67.946425 14.02756,67.946425"
id="path2880"
inkscape:connector-curvature="0" />
</g>
</g>
<g
id="g3100"
class="fragment">
<text
id="text2878"
y="92.477089"
x="94.720833"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="92.477089"
x="94.720833"
id="tspan2876"
sodipodi:role="line">Address of C (X+|A|+|B|) </tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2882"
d="M 98.425003,85.06875 93.149078,68.001496"
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -0,0 +1,372 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="242.32359mm"
height="72.466888mm"
viewBox="0 0 242.32359 72.466889"
version="1.1"
id="svg2182"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-01-31-record-header.svg">
<defs
id="defs2176">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker6037"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path6035"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker5617"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
inkscape:connector-curvature="0"
id="path5615"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker5161"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:collect="always">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path5159"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker4579"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
inkscape:connector-curvature="0"
id="path4577"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4119"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:collect="always">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path4117"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker3266"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path3264"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.8101934"
inkscape:cx="188.28422"
inkscape:cy="299.3423"
inkscape:document-units="mm"
inkscape:current-layer="g3349"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata2179">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(26.211064,-52.655236)">
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4119)"
d="m -17.921086,74.863698 c 0,0 16.1230464,-22.07617 35.139974,-22.07617 17.363281,0.826822 24.04778,22.168172 24.04778,22.168172"
id="path3363"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
sodipodi:nodetypes="ccc"
inkscape:connector-curvature="0"
id="path4115"
d="m 1.5092526,74.863698 c 0,0 30.9397134,-22.07617 49.9566414,-22.07617 C 68.829175,53.61435 89.272007,74.9557 89.272007,74.9557"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4579)" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5161)"
d="m 17.384257,74.863698 c 0,0 43.639719,-22.07617 62.656647,-22.07617 C 97.404185,53.61435 119.43454,74.9557 119.43454,74.9557"
id="path5157"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
sodipodi:nodetypes="ccc"
inkscape:connector-curvature="0"
id="path5613"
d="m 32.7301,74.863698 c 0,0 58.985552,-22.07617 78.00248,-22.07617 C 128.09593,53.61435 150.1263,74.9557 150.1263,74.9557"
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5617)" />
<g
id="g3136"
transform="translate(27.239109,31.275902)">
<rect
y="43.755951"
x="14.02756"
height="24.190477"
width="48.380955"
id="rect2184"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text2757"
y="59.966011"
x="34.695065"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332"
y="59.966011"
x="34.695065"
id="tspan2755"
sodipodi:role="line">A</tspan></text>
</g>
<g
id="g3141"
transform="translate(27.001644,31.220833)">
<rect
y="43.755951"
x="62.645981"
height="24.245546"
width="30.293167"
id="rect2751"
style="fill:#000080;fill-opacity:1;stroke:#000000;stroke-width:0.20993012;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="73.864006"
y="59.993546"
id="text2761"><tspan
id="tspan2763"
sodipodi:role="line"
x="73.864006"
y="59.993546"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332">B</tspan></text>
</g>
<g
id="g3146"
transform="translate(26.791714,31.220833)">
<rect
style="fill:#008000;fill-opacity:1;stroke:#000000;stroke-width:0.20993012;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2749"
width="30.293167"
height="24.245546"
x="93.149078"
y="43.755951" />
<text
id="text2771"
y="59.988033"
x="104.23158"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332"
y="59.988033"
x="104.23158"
sodipodi:role="line"
id="tspan2769">C</tspan></text>
</g>
<g
id="g3151"
transform="translate(26.53246,31.270165)">
<rect
y="43.805279"
x="123.7015"
height="24.146889"
width="65.724274"
id="rect2753"
style="fill:#aa8800;fill-opacity:1;stroke:#000000;stroke-width:0.30858862;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="151.99681"
y="59.993546"
id="text2775"><tspan
id="tspan2773"
sodipodi:role="line"
x="151.99681"
y="59.993546"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332">D</tspan></text>
</g>
<g
id="g3159"
transform="translate(-79.561899,31.210289)">
<rect
style="fill:#4d4d4d;fill-opacity:1;stroke:#000000;stroke-width:0.15663512;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3153"
width="16.849852"
height="24.266626"
x="70.279007"
y="43.745411" />
<text
id="text3157"
y="58.860798"
x="78.591034"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ececec;stroke-width:0.26458332"
y="58.860798"
x="78.591034"
sodipodi:role="line"
id="tspan3155">|A|</tspan></text>
</g>
<g
transform="translate(-62.712045,31.210289)"
id="g3341">
<rect
y="43.745411"
x="70.279007"
height="24.266626"
width="16.849852"
id="rect3335"
style="fill:#4d4d4d;fill-opacity:1;stroke:#000000;stroke-width:0.15663512;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.44487"
y="58.860798"
id="text3339"><tspan
id="tspan3337"
sodipodi:role="line"
x="78.44487"
y="58.860798"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ececec;stroke-width:0.26458332">|B|</tspan></text>
</g>
<g
id="g3349"
transform="translate(-45.862191,31.210289)">
<rect
style="fill:#4d4d4d;fill-opacity:1;stroke:#000000;stroke-width:0.15663512;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3343"
width="16.849852"
height="24.266626"
x="70.279007"
y="43.745411" />
<text
id="text3347"
y="58.860798"
x="78.974037"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ececec;stroke-width:0.26458332"
y="58.860798"
x="78.974037"
sodipodi:role="line"
id="tspan3345">|C|</tspan></text>
</g>
<g
transform="translate(-96.411753,31.210289)"
id="g3357">
<rect
y="43.745411"
x="70.279007"
height="24.266626"
width="16.849852"
id="rect3351"
style="fill:#4d4d4d;fill-opacity:1;stroke:#000000;stroke-width:0.15663512;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="78.89135"
y="58.860798"
id="text3355"><tspan
id="tspan3353"
sodipodi:role="line"
x="78.89135"
y="58.860798"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ececec;stroke-width:0.26458332">|H|</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="11.844539"
y="123.06747"
id="text3361"><tspan
sodipodi:role="line"
id="tspan3359"
x="11.844539"
y="123.06747"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87777805px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">Record header points to each field</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6037)"
d="M 21.766414,113.55901 7.5669619,99.222328"
id="path6027"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -0,0 +1,288 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="225.76538mm"
height="63.106003mm"
viewBox="0 0 225.76538 63.106003"
version="1.1"
id="svg2182"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="2018-01-31-record-separator.svg">
<defs
id="defs2176">
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker3266"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path3264"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker3244"
style="overflow:visible"
inkscape:isstock="true">
<path
inkscape:connector-curvature="0"
id="path3242"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker2906"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:collect="always">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path2904"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.64"
inkscape:cx="314.63591"
inkscape:cy="640.79928"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1031"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata2179">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(9.6528568,-74.844284)">
<g
id="g3136"
transform="translate(-23.547917,31.220833)">
<rect
y="43.755951"
x="14.02756"
height="24.190477"
width="48.380955"
id="rect2184"
style="fill:#800000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text2757"
y="59.966011"
x="34.695065"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332"
y="59.966011"
x="34.695065"
id="tspan2755"
sodipodi:role="line">A</tspan></text>
</g>
<g
id="g3141"
transform="translate(-6.6980634,31.220834)">
<rect
y="43.755951"
x="62.645981"
height="24.245546"
width="30.293167"
id="rect2751"
style="fill:#000080;fill-opacity:1;stroke:#000000;stroke-width:0.20993012;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="73.864006"
y="59.993546"
id="text2761"><tspan
id="tspan2763"
sodipodi:role="line"
x="73.864006"
y="59.993546"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332">B</tspan></text>
</g>
<g
id="g3146"
transform="translate(9.9418601,31.220834)">
<rect
style="fill:#008000;fill-opacity:1;stroke:#000000;stroke-width:0.20993012;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2749"
width="30.293167"
height="24.245546"
x="93.149078"
y="43.755951" />
<text
id="text2771"
y="59.988033"
x="104.23158"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332"
y="59.988033"
x="104.23158"
sodipodi:role="line"
id="tspan2769">C</tspan></text>
</g>
<g
id="g3151"
transform="translate(26.53246,31.270165)">
<rect
y="43.805279"
x="123.7015"
height="24.146889"
width="65.724274"
id="rect2753"
style="fill:#aa8800;fill-opacity:1;stroke:#000000;stroke-width:0.30858862;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="151.99681"
y="59.993546"
id="text2775"><tspan
id="tspan2773"
sodipodi:role="line"
x="151.99681"
y="59.993546"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332">D</tspan></text>
</g>
<g
id="g3159"
transform="translate(-31.180943,31.21029)">
<rect
style="fill:#4d4d4d;fill-opacity:1;stroke:#000000;stroke-width:0.15663512;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3153"
width="16.849852"
height="24.266626"
x="70.279007"
y="43.745411" />
<text
id="text3157"
y="59.337601"
x="73.798119"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332"
y="59.337601"
x="73.798119"
sodipodi:role="line"
id="tspan3155">','</tspan></text>
</g>
<g
transform="translate(15.962078,31.21029)"
id="g3167">
<rect
y="43.745411"
x="70.279007"
height="24.266626"
width="16.849852"
id="rect3161"
style="fill:#4d4d4d;fill-opacity:1;stroke:#000000;stroke-width:0.15663512;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="73.798119"
y="59.337601"
id="text3165"><tspan
id="tspan3163"
sodipodi:role="line"
x="73.798119"
y="59.337601"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332">','</tspan></text>
</g>
<g
id="g3175"
transform="translate(63.105099,31.21029)">
<rect
style="fill:#4d4d4d;fill-opacity:1;stroke:#000000;stroke-width:0.15663512;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3169"
width="16.849852"
height="24.266626"
x="70.279007"
y="43.745411" />
<text
id="text3173"
y="59.337601"
x="73.798119"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ececec;stroke-width:0.26458332"
y="59.337601"
x="73.798119"
sodipodi:role="line"
id="tspan3171">','</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="-4.036077"
y="135.89563"
id="text3222"><tspan
sodipodi:role="line"
id="tspan3220"
x="-4.036077"
y="135.89563"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87777805px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332">Special Separator Characters Delimit Fields</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3244)"
d="M 53.014701,125.56034 47.640353,102.82271"
id="path3224"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2906)"
d="M 95.18267,125.97375 94.769258,103.64953"
id="path3226"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3266)"
d="m 139.00428,125.56034 2.89388,-21.91081"
id="path3228"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB