# HG changeset patch
# User sugi
# Date 1423153573 -32400
# Node ID f77de7e7fb66bc8f9f265fd83a23c451350fc35c
# Parent 46a09e9020a30ec9a88069a9f0839d5fb25a22df
add slide
diff -r 46a09e9020a3 -r f77de7e7fb66 paper/images/aquarium.graffle/data.plist
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/aquarium.graffle/data.plist Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,620 @@
+
+
+
+
+ ActiveLayerIndex
+ 0
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle6
+ 156.11.0.206384
+
+ AutoAdjust
+
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {1676.9999198913574, 1566}}
+ Class
+ SolidGraphic
+ ID
+ 2
+ Style
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasOrigin
+ {0, 0}
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ CreationDate
+ 2012-02-07 06:56:51 +0000
+ Creator
+ Kazuki AKAMINE
+ DisplayScale
+ 1 in = 1 in
+ GraphDocumentVersion
+ 11
+ GraphicsList
+
+
+ Bounds
+ {{824.53227665706208, 777.01499999999896}, {138.44610951008639, 58.859999999999765}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 32
+
+ ID
+ 1870
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client3}
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{13.500000000000483, 772.72312499999873}, {138.44610951008639, 58.859999999999765}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 32
+
+ ID
+ 1869
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client1}
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{419.01613832852979, 772.72312499999873}, {138.44610951008639, 58.859999999999765}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 32
+
+ ID
+ 1868
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client2}
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{13.500000000000227, 467.99999999999932}, {1217.2500000000007, 363.58312499999857}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 12
+
+ ID
+ 1867
+ ImageID
+ 3
+ ManualSizeImage
+ YES
+ Scale
+ 0.4999999888241291
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+
+ Bounds
+ {{818.91959654178788, 319.2134831460674}, {138.44610951008616, 58.78651685393249}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 32
+
+ ID
+ 1866
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client3}
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{419.01613832853093, 319.2134831460674}, {138.44610951008616, 58.78651685393249}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 32
+
+ ID
+ 1865
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client2}
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{13.50000000000162, 319.2134831460674}, {138.44610951008616, 58.78651685393249}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 32
+
+ ID
+ 1863
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client1}
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{13.499999999999659, 10.125000000000114}, {1217.2500000000002, 367.87499999999932}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 12
+
+ ID
+ 1862
+ ImageID
+ 1
+ ManualSizeImage
+ YES
+ Scale
+ 0.4999999888241291
+ Shape
+ Rectangle
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+
+ GridInfo
+
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ HPages
+ 3
+ ImageCounter
+ 4
+ ImageLinkBack
+
+
+
+
+ ImageList
+
+ image3.pdf
+ image1.pdf
+
+ KeepToScale
+
+ Layers
+
+
+ Lock
+ NO
+ Name
+ レイヤー 1
+ Print
+ YES
+ View
+ YES
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoLineLength
+ 0.20000000298023224
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2015-01-30 08:01:32 +0000
+ Modifier
+ YuSugimoto
+ NotesVisible
+ NO
+ Orientation
+ 2
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {594.99997329711914, 842}
+
+ NSPrintReverseOrientation
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ PrintOnePage
+
+ ReadOnly
+ NO
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ キャンバス 1
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UniqueID
+ 1
+ UseEntirePage
+
+ VPages
+ 2
+ WindowInfo
+
+ BottomSlabHeight
+ 714
+ CurrentSheet
+ 0
+ Expanded_Canvases
+
+ Frame
+ {{100, 0}, {1744, 1058}}
+ ShowInfo
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 230
+ VisibleRegion
+ {{0, 52.293577981651374}, {1098.1651376146788, 840.36697247706422}}
+ Zoom
+ 1.0900000000000001
+ ZoomValues
+
+
+ キャンバス 1
+ 1.0900000000000001
+ 1.0900000333786011
+
+
+
+
+
diff -r 46a09e9020a3 -r f77de7e7fb66 paper/images/aquarium.graffle/image1.pdf
Binary file paper/images/aquarium.graffle/image1.pdf has changed
diff -r 46a09e9020a3 -r f77de7e7fb66 paper/images/aquarium.graffle/image3.pdf
Binary file paper/images/aquarium.graffle/image3.pdf has changed
diff -r 46a09e9020a3 -r f77de7e7fb66 paper/images/changeServer.graffle
--- a/paper/images/changeServer.graffle Thu Feb 05 04:23:37 2015 +0900
+++ b/paper/images/changeServer.graffle Fri Feb 06 01:26:13 2015 +0900
@@ -1641,7 +1641,7 @@
ID
51
Position
- 0.50388238797085216
+ 0.50388240814208984
RotationType
0
@@ -1696,7 +1696,7 @@
HPages
1
ImageCounter
- 1
+ 5
KeepToScale
Layers
@@ -1736,7 +1736,7 @@
MasterSheets
ModificationDate
- 2015-01-12 02:43:55 +0000
+ 2015-02-05 16:25:22 +0000
Modifier
YuSugimoto
NotesVisible
@@ -1808,13 +1808,13 @@
WindowInfo
BottomSlabHeight
- 350
+ 434
CurrentSheet
0
Expanded_Canvases
Frame
- {{181, 364}, {1155, 694}}
+ {{4, 0}, {1216, 778}}
ShowInfo
ShowRuler
@@ -1824,15 +1824,15 @@
SidebarWidth
230
VisibleRegion
- {{0, 0}, {506.66666666666669, 460}}
+ {{0.83333330021964314, 0}, {557.49997784694119, 529.99997893969305}}
Zoom
- 1.2
+ 1.2000000476837158
ZoomValues
キャンバス 1
+ 1.2000000476837158
1.2
- 1.2000000476837158
diff -r 46a09e9020a3 -r f77de7e7fb66 paper/images/topologyring.graffle
--- a/paper/images/topologyring.graffle Thu Feb 05 04:23:37 2015 +0900
+++ b/paper/images/topologyring.graffle Fri Feb 06 01:26:13 2015 +0900
@@ -6,26 +6,21 @@
0
ApplicationVersion
- com.omnigroup.OmniGraffle
- 138.17.0.133677
+ com.omnigroup.OmniGraffle6
+ 156.11.0.206384
AutoAdjust
BackgroundGraphic
Bounds
- {{0, 0}, {559, 783}}
+ {{0, 0}, {558.99997329711914, 783}}
Class
SolidGraphic
ID
2
Style
- shadow
-
- Draws
- NO
-
stroke
Draws
@@ -33,6 +28,8 @@
+ BaseZoom
+ 0
CanvasOrigin
{0, 0}
ColumnAlign
@@ -40,13 +37,13 @@
ColumnSpacing
36
CreationDate
- 2012-02-10 10:32:09 +0900
+ 2012-02-10 01:32:09 +0000
Creator
Kazuki AKAMINE
DisplayScale
- 1 0/72 in = 1 0/72 in
+ 1 in = 1 in
GraphDocumentVersion
- 6
+ 11
GraphicsList
@@ -59,7 +56,7 @@
Flow
Resize
ID
- 48
+ 49
Shape
Rectangle
Style
@@ -85,10 +82,10 @@
Pad
0
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 4096 bytes}
VerticalPad
@@ -133,10 +130,10 @@
Pad
0
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Message
\f1 \'82\'aa
@@ -169,6 +166,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
Pattern
1
TailArrow
@@ -226,10 +225,10 @@
Pad
0
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Message}
VerticalPad
@@ -284,8 +283,8 @@
43
Points
- {166.448, 267.454}
- {196.568, 245.546}
+ {166.45020715443511, 267.45391307190465}
+ {196.57330359476339, 245.54608364614884}
Style
@@ -295,6 +294,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -328,8 +329,8 @@
42
Points
- {448.505, 412.727}
- {428.519, 473.273}
+ {448.50509498031374, 412.72680060480872}
+ {428.51890518589335, 473.27319939630041}
Style
@@ -339,6 +340,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -372,8 +375,8 @@
40
Points
- {428.519, 309.727}
- {448.505, 370.273}
+ {428.51890501968614, 309.72680060480877}
+ {448.50509481410654, 370.27319939630041}
Style
@@ -383,6 +386,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -416,8 +421,8 @@
39
Points
- {362.45, 245.546}
- {392.573, 267.454}
+ {362.45034705681303, 245.54608598960982}
+ {392.57358912791574, 267.4539144384708}
Style
@@ -427,6 +432,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -460,8 +467,8 @@
38
Points
- {259.256, 224.5}
- {299.768, 224.5}
+ {259.25599999999997, 224.5}
+ {299.76799999999992, 224.5}
Style
@@ -471,6 +478,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -504,8 +513,8 @@
37
Points
- {110.519, 370.273}
- {130.504, 309.727}
+ {110.51890384367, 370.27319938734399}
+ {130.50509028367324, 309.72680057346906}
Style
@@ -515,6 +524,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -548,8 +559,8 @@
36
Points
- {130.505, 473.273}
- {110.519, 412.727}
+ {130.50509498031383, 473.27319939519123}
+ {110.51890518589343, 412.72680060369964}
Style
@@ -559,6 +570,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -592,8 +605,8 @@
35
Points
- {196.574, 537.454}
- {166.451, 515.546}
+ {196.57365294318706, 537.45391401039024}
+ {166.45041087208418, 515.54608556152914}
Style
@@ -603,6 +616,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -636,8 +651,8 @@
34
Points
- {299.768, 558.5}
- {259.256, 558.5}
+ {299.76799999999992, 558.5}
+ {259.25599999999997, 558.5}
Style
@@ -647,6 +662,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -680,8 +697,8 @@
33
Points
- {392.574, 515.546}
- {362.45, 537.454}
+ {392.57362496273652, 515.54608580191336}
+ {362.45035376550953, 537.45391405539294}
Style
@@ -691,6 +708,8 @@
FilledArrow
HeadScale
1.4285709857940674
+ Legacy
+
TailArrow
0
TailScale
@@ -705,7 +724,7 @@
Bounds
- {{104.268, 267.748}, {66.488, 41.504}}
+ {{104.268, 267.74799999999999}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -730,10 +749,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -741,7 +760,7 @@
Bounds
- {{192.268, 537.748}, {66.488, 41.504}}
+ {{192.268, 537.74800000000005}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -766,10 +785,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -777,7 +796,7 @@
Bounds
- {{70.268, 370.748}, {66.488, 41.504}}
+ {{70.268000000000001, 370.74799999999999}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -802,10 +821,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -813,7 +832,7 @@
Bounds
- {{422.268, 370.748}, {66.488, 41.504}}
+ {{422.26799999999997, 370.74799999999999}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -838,10 +857,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -849,7 +868,7 @@
Bounds
- {{104.268, 473.748}, {66.488, 41.504}}
+ {{104.268, 473.74799999999999}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -874,10 +893,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -885,7 +904,7 @@
Bounds
- {{388.268, 267.748}, {66.488, 41.504}}
+ {{388.26799999999997, 267.74799999999999}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -910,10 +929,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -921,7 +940,7 @@
Bounds
- {{192.268, 203.748}, {66.488, 41.504}}
+ {{192.268, 203.74799999999999}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -946,10 +965,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -957,7 +976,7 @@
Bounds
- {{300.268, 203.748}, {66.488, 41.504}}
+ {{300.26799999999997, 203.74799999999999}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -982,10 +1001,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -993,7 +1012,7 @@
Bounds
- {{300.268, 537.748}, {66.488, 41.504}}
+ {{300.26799999999997, 537.74800000000005}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -1018,10 +1037,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -1029,7 +1048,7 @@
Bounds
- {{388.268, 473.748}, {66.488, 41.504}}
+ {{388.26799999999997, 473.74799999999999}, {66.488, 41.503999999999998}}
Class
ShapedGraphic
FontInfo
@@ -1054,10 +1073,10 @@
Text
Text
- {\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+ {\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\fs24 \cf0 Topology\
Node}
@@ -1101,6 +1120,8 @@
0.0
layoutEngine
circo
+ neatoLineLength
+ 0.20000000298023224
neatoSeparation
0.0
twopiSeparation
@@ -1113,9 +1134,9 @@
MasterSheets
ModificationDate
- 2012-02-10 10:41:06 +0900
+ 2015-02-05 12:03:59 +0000
Modifier
- Kazuki AKAMINE
+ YuSugimoto
NotesVisible
NO
Orientation
@@ -1131,6 +1152,11 @@
float
41
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
NSLeftMargin
float
@@ -1139,7 +1165,12 @@
NSPaperSize
size
- {595, 842}
+ {594.99997329711914, 842}
+
+ NSPrintReverseOrientation
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
NSRightMargin
@@ -1154,405 +1185,6 @@
PrintOnePage
- QuickLookPreview
-
- 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
- CLPHbWihL/duJfTTydCXf4oegy5Xdg1Puzd+mLt37GoEOkP+kzLOvRhd+XX6GE3oG2/o
- MKcpUgHIQuHuXSIptVzHjV2dVfebTwzWCSTgm8LO2aTfoU3ihiFZFbdb5Yk/v1dBf1Dv
- 1fbF6NR5rgQ0zbKM3hY4D+u3fSnMeEw3tmY9FlFCn+oHXz8AjFws7+uD7//OT5Y6ejYt
- NfP6P365Uc4KZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjE4MTcKZW5kb2JqCjMgMCBv
- YmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDcgMCBSIC9D
- b250ZW50cyA1IDAgUiAvTWVkaWFCb3ggWzAgMCA1NTkgNzgzXQo+PgplbmRvYmoKNyAw
- IG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgXSAvQ29sb3JTcGFjZSA8PCAvQ3Mx
- IDggMCBSIC9DczIgOSAwIFIgPj4gL0ZvbnQgPDwKL0YxLjAgMTAgMCBSIC9GMi4xIDEx
- IDAgUiA+PiA+PgplbmRvYmoKMTMgMCBvYmoKPDwgL0xlbmd0aCAxNCAwIFIgL04gMyAv
- QWx0ZXJuYXRlIC9EZXZpY2VSR0IgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFt
- CngBhVTPaxNBFP42bqnQIghaaw6yeJAiSVmraEXUNv0RYmsM2x+2RZBkM0nWbjbr7ia1
- pYjk4tEq3kXtoQf/gB568GQvSoVaRSjeqyhioRct8c1uTLal6sDOfvPeN+99b3bfAA1y
- 0jT1gATkDcdSohFpbHxCavyIAI6iCUE0JVXb7E4kBkGDc/l759h6D4FbVsN7+3eyd62a
- 0raaB4T9QOBHmtkqsO8XcQpZEgKIPN+hKcd0CN/j2PLsjzlOeXjBtQ8rPcRZInxANS3O
- f024U80l00CDSDiU9XFSPpzXi5TXHQdpbmbGyBC9T5Cmu8zuq2KhnE72DpC9nfR+TrPe
- PsIhwgsZrT9GuI2e9YzVP+Jh4aTmxIY9HBg19PhgFbcaqfg1whRfEE0nolRx2S4N8Ziu
- /VbySoJwkDjKZGGAc1pIT9dMbvi6hwV9JtcTr+J3VlHheY8TZ97U3e9F2gKvMA4dDBoM
- mg1IUBBFBGGYsFBAhjwaMTSycj8jqwYbk3sydSRqu3RiRLFBezbcPbdRpN08/igicZRD
- tQiS/EH+Kq/JT+V5+ctcsNhW95Stm5q68uA7xeWZuRoe19PI43NNXnyV1HaTV0eWrHl6
- vJrsGj/sV5cx5oI1j8RzsPvxLV+VzJcpjBTF41Xz6kuEdVoxN9+fbH87PeIuzy611nOt
- iYs3VpuXZ/1qSPvuqryT5lX5T1718fxnzcRj4ikxJnaK5yGJl8Uu8ZLYS6sL4mBtxwid
- lYYp0m2R+iTVYGCavPUvXT9beL1Gfwz1UZQZzNJUifd/wipkNJ25Dm/6j9vH/Bfk94rn
- nygCL2zgyJm6bVNx7xChZaVuc64CF7/RffC2bmujfjj8BFg8qxatUjWfILwBHHaHeh7o
- KZjTlpbNOVKHLJ+TuunKYlLMUNtDUlLXJddlSxazmVVi6XbYmdMdbhyhOUL3xKdKZZP6
- r/ERsP2wUvn5rFLZfk4a1oGX+m/AvP1FCmVuZHN0cmVhbQplbmRvYmoKMTQgMCBvYmoK
- NzM3CmVuZG9iago4IDAgb2JqClsgL0lDQ0Jhc2VkIDEzIDAgUiBdCmVuZG9iagoxNSAw
- IG9iago8PCAvTGVuZ3RoIDE2IDAgUiAvTiAxIC9BbHRlcm5hdGUgL0RldmljZUdyYXkg
- L0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBhVJPSBRRHP7NNhKEiEGFeIh3
- CgmVKaysoNp2dVmVbVuV0qIYZ9+6o7Mz05vZNcWTBF2iPHUPomN07NChm5eiwKxL1yCp
- IAg8dej7zezqKIRveTvf+/39ft97RG2dpu87KUFUc0OVK6Wnbk5Ni4MfKUUd1E5YphX4
- 6WJxjLHruZK/u9fWZ9LYst7HtXb79j21lWVgIeottrcQ+iGRZgAfmZ8oZYCzwB2Wr9g+
- ATxYDqwa8COiAw+auTDT0Zx0pbItkVPmoigqr2I7Sa77+bnGvou1iYP+XI9m1o69s+qq
- 0UzUtPdEobwPrkQZz19U9mw1FKcN45xIQxop8q7V3ytMxxGRKxBKBlI1ZLmfak6ddeB1
- GLtdupPj+PYQpT7JYKiJtemymR2FfQB2KsvsEPAF6PGyYg/ngXth/1tRw5PAJ2E/ZId5
- 1q0f9heuU+B7hD014M4UrsXx2oofXi0BQ/dUI2iMc03E09c5c6SI7zHUGZj3RjmmCzF3
- lqoTN4A7YR9ZqmYKsV37ruol7nsCd9PjO9GbOQtcoBxJcrEV2RTQPAlYFH2LsEkOPD7O
- HlXgd6iYwBy5idzNKPce1REbZ6NSgVZ6jVfGT+O58cX4ZWwYz4B+rHbXe3z/6eMVdde2
- Pjz5jXrcOa69nRtVYVZxZQvd/8cyhI/ZJzmmwdOhWVhr2HbkD5rMTLAMKMR/BT6X+pIT
- VdzV7u24RRLMUD4sbCW6S1RuKdTqPYNKrBwr2AB2cJLELFocuFNrujl4d9giem35TVey
- 64b++vZ6+9ryHm3KqCkoE82zRGaUsVuj5N142/1mkRGfODq+572KWsn+SUUQP4U5Wiry
- FFX0VlDWxG9nDn4btn5cP6Xn9UH9PAk9rZ/Rr+ijEb4MdEnPwnNRH6NJ8LBpIeISoIqD
- M9ROVGONA+Ip8fK0W2SR/Q9AGf1mCmVuZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKNzA0
- CmVuZG9iago5IDAgb2JqClsgL0lDQ0Jhc2VkIDE1IDAgUiBdCmVuZG9iago0IDAgb2Jq
- Cjw8IC9UeXBlIC9QYWdlcyAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSAvQ291bnQgMSAv
- S2lkcyBbIDMgMCBSIF0gPj4KZW5kb2JqCjE3IDAgb2JqCjw8IC9UeXBlIC9DYXRhbG9n
- IC9PdXRsaW5lcyAyIDAgUiAvUGFnZXMgNCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwg
- L0xhc3QgMTggMCBSIC9GaXJzdCAxOSAwIFIgPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9Q
- YXJlbnQgMjAgMCBSIC9Db3VudCAwIC9EZXN0IFsgMyAwIFIgL1hZWiAwIDc4MyAwIF0g
- L1RpdGxlICj+/zCtMOMw8zDQMLlcMDAwIFwwMDAxKQo+PgplbmRvYmoKMjAgMCBvYmoK
- PDwgPj4KZW5kb2JqCjE4IDAgb2JqCjw8IC9QYXJlbnQgMjAgMCBSIC9Db3VudCAwIC9E
- ZXN0IFsgMyAwIFIgL1hZWiAwIDc4MyAwIF0gL1RpdGxlICj+/zCtMOMw8zDQMLlcMDAw
- IFwwMDAxKQo+PgplbmRvYmoKMjEgMCBvYmoKPDwgL0xlbmd0aCAyMiAwIFIgL0xlbmd0
- aDEgMTAzNzIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvVp7fFNF9j9z
- H7k3zyZp3k2apGlu0vf7EVvaUPoEilAQWqTQAoWCoIi1CApbfAEVUESgguvb8lokLYgB
- FpZlUWR1V13fqPtE1921y2/3B64CTX7n3pQK/ez68w8/e2/OzDkzc+ee+c7MmTNz07H0
- zjZQQxfQMHF665J5IF3CJwBk15zFrUticjyP8RtzOjtcMZn1A9CL5i2Zvzgm848BKBzz
- Fy0fet6AyfpF7W2tc2P5cAXjwnZMiMkkH+Pk9sUdd8Vk/UGMpyy6bc5Qfvy7KKcvbr1r
- 6P2A+oDr1tbFbbHyQhjj5CW33dExJC/CePySpW1D5Ukj6vcmEEw1wm0gh1uAAwq0eDcD
- cF8oHMBgrpiP19x05eZZcaUXQSc2E2BW/cNS/Kr7p+9/3XbFp9zEf4MJ8qvlxViWEkkB
- UBHMH1BuGs6RnsPAGIbJaWGoQypHKkBKSxttgS7SC48gPY1EwwLyECxHWof0OBIzzO1G
- 6TB5qJ/hg0fIcrCRsUEl45xisDotCqXzN2EiO/ik8yPLn44SK/beH4i1Xw3y0QryNHkK
- 5oKTvABesgJqwU+2H0hZ5GzBrN2wBKkLiZZCQnb3J+Y6j5N08DIEnxEgkSGHnH/OyXB+
- lhOmSL/zpC/MYPTzRJSCcc4TjiedP3PMdx5H2hvL2pOCJQ45dzsWOTcnhsn2fuejjjDB
- ZzbFojsd+Ogh5+KUrc65OVL++K1ham+/M4D5U4NKZ2Gx21ngOOfM8oV5gnKGY7wzNedX
- zmR8EIu5sFJvUOe0OzY7b8CsREeV7wako2QP2QGpZEe/d6zzCLLY3AN1KcVbw+TuA7X+
- HG+YrAgW1vq3ptT6vCnjnd6Uap8P+amvcfdzN3OjuVwujfNzAufmEjgDr+e1vIZX8Qqe
- 57kw+Ul/uVN2lOyFcoRl7wFexrNh8iImMkfJPilx38s8w1M88IZw9Pc4eAkYwmTvQa3I
- IXNIJnGyMNl3IJa0L+hkRI6RMrSUyGOAIVCEp2AshMiGsAweMHWWW8r1ZbpAdeV/Clqk
- nKth2n++LMQR2jpucmNoj6MplCsyUUfT1eKWq8x/jDvuxKy2irS0cQ3LD3QuWTivqs1T
- 1eKpakNqCT3U2W4Jdc12ufoWLhEzXCFaaJk9p12MW9tCSzxtlaGFnkpXX6f03IjseWJ2
- p6eyD+ZVTWnsmxdsq+zvDHZWeVormw7MrljafN271g2/a2nFv3lXhVjZUvFds6XnRryr
- WcyeLb6rWXxXs/iu2cHZ0rvExlctmFxxRweOTlfVgnGukH9yqG7S9MaQq7WpMkx6MbHy
- TmBPgJY9Bn62C2xMFjgBoh8hnRXjyE3Rz9nToI0sjv6DLsFOPSwSFSkvhROwAXbAfpDB
- LuT9MBN64AxZiHN7BhyE90kiZKLtZSAM4+ENEo2+DfPgeSzfASdhC/SBCp9ZjDZsPGwk
- 3ugKlIPIz4b7o89CMhTDg3AMAljrRhiI7o4ewNwGuAn2wF58/nXiofqY+OiL0XPAwySs
- 837MeTs6Prof9JAOFTARU++H48RLn422gwVKULsn4Cl4Bn4OX5J7ycFoe7Qz+lb0DzhU
- LWCHyXivJAfJH+j9zIPRJ6J/jUYQCT+k4ltbYDM8h/Xvx/sEmtYqcgvpIJvJFipI3Usd
- ZB5gzZFBxCEFavCuRau8FhE4DKfgn/ANOU9ZaC3dQb8SLYj+LyhhHLZSbEkbdOK9Bu+N
- 2KajREayyRgykawkj5Et5B0qlbqJaqSWUXdRn9MT6Bn0cvod5g6mn13P9siUkYvRo9HT
- 0ffADA64GZbCKmzdSXgLLsAlQmNdduIlJaSCzMS7i+ygDpNnyGFqIjlB3qL2kN+RP5Hz
- 5DLFUirKSKVRHdRmai91kvo1vYDeQj9O/46+yJSxFPsM+5nMy30cmR1ZF/l1tCT6h+jX
- aGJ5cGPPVMAEmAWt2NolkA8/wlbsw3s/9topeAXOSPefiB0G4GtEAYie2Eguqcd7ArmR
- zCMLyJPkCN7HJV2+orAjKDmlo8yUnZpMzaYWU13Ue1QXnUCn0mPp6fR+vF+j36cv05cZ
- lolnjEwNUwfrmcXMdrx7mV1MP/MmG2DL2AnsVLaLXceup+ewb7Pvy1bJNsr6Zedl/4Nm
- cTx3G7cee+cMjtmf41j+9mJIMmqfC7fCHFJJZsNW7I1nSCt04+iaS9YiXkvAH22mV9E1
- VDaOhuNwN47W7bAS1tEz4Jnoh/Qe+ABHirhed8FOpgIc7DbsnXshG0fR0B1MSU3x+wRv
- sifJ7UKTb0+wWS1mk9EQr9dp1SqlQs5zMpahKQLpVZ7qFldIaAkxgqe2NkOUPa2Y0HpN
- QgtOZVeo+voyIZf4XCtmXVcyiCXnjSgZjJUMDpckWlcplGaku6o8rtCvKj2uMJk+qRH5
- DZWeJldoQOLrJf4RiVcj73bjA64qS3ulK0RaXFWh6s727qqWyox0cjiIcCgy0kXDEQSl
- WHEIxrSuRAMLY8QSVSGbp7IqZPUgj3m0t6p1bmjipMaqygS3uwnTMKmhEd+Rkb4ghHrC
- Q6q5nrkPhYMwu0XkWmc0hujWphDVItalSwuZPZUh84rPLN+KV7mq9ddkhihvdWtbd3Uo
- 2PIQgiuKLaLUuh6lcZNdWC31QFNjiDwwpISo40LUVFQ3tiZ4Wxa6QnJPhae9e2ELggsN
- jf22oE0yviGY2NhvDVolISP9sGVViRtbfzhjdMZoMS5xW1bF4j/fF0v/zQkxtqw69XuM
- xzUMA0BEBDx1qGfINUd6iQeVLRaDtmLonlOMOOHVRLCZC1CfMSEKxwztDbHeutZQ1+Sr
- arRXxpRrWVjZL7fapEWoognLt3Rrb8CewvJaj6v7Iq7WLZ6BL69PaR1KkXm1F0HMFDt6
- eKyESOtVvlNcLL3Y6naLp13s306pT1H2WKquSUBZhEbUOWTABXxiozvkasIE9CbTx4VB
- PrGxj5CNTWESfSAMlY7D6KPSs2Zidro41BZU4vtRyEjHhFQ3cpnprmp8c7U4Vlzdru66
- ud2ualc7DibGK8WY0dbdlIUITm5EnGAKvjHYlDDMtjU13YD1ZIn14CNYvLsJa1g4VAPG
- UlLWIBbKTsfFlBYmNk5qDHVVJoSClU3YCzh8T0xsDJ3AkdvUhKVyhjVFjVcusAzpnIs6
- 56Rifl6sFvRdurCKpu5usc7JjR536ER3d0K3ON9icpjAyITgUEIYxCIi5GHSNRGfxcjj
- TpD6wO1xo1pNIqb5OKSvjij02b8b4cJhvfHJItS2UEK4+AdCOPB9EL7heyFcMqzpdQiX
- os4lIsKj/nsIl12HcPl3Ixwc1huVHI3aBiWEK34ghMd8H4QrvxfCVcOaXodwNepcJSJc
- 899DuPY6hOu+G+Gxw3qjkuNQ27ESwuN/IITrvw/CE74XwjcOa3odwhNR5xtFhCf99xBu
- uA7hyd+N8JRhvVHJm1DbKRLCU38ghKd9H4QbvxfCTcOaXofwdNS5SUT45mGEgwkhuNYO
- d40wu/CDG+YZ10COnhKrhwoqAMDcAUGkU0j5SPVIdbI9sA33Yk8wfwI3yg1InUjFSLVI
- o8hpWIdxCVInbsjFeswYG7Haq+dBKtylHEfZBdPF7fl3XhR6+uKFVQArcTIp/P8DDncI
- 317yb9kRnAJ3Q3jQhKc8AJrhvDiJ04JOivUQP5xjkLh83G08C68RE/kJVYE7lmS6gbEz
- DzL/ZH8qmyt7UBbhlvAT+aflhbihqED138K9LY1nZOWxcys+C50LJF6LB21vIYky8vQn
- YWCQAHnuEziCTwBMTTuCtbAYZ+fk6dw6H1IFszF85Y/ssUtjwkz9ZTwDwRLB6EeMne2B
- ONxJ3h40r2FJNW8siGPtBZxaX0zfZilWJtY4tJ2nLO8ODA5A+UD5QE72mOXBfEhQC8Rr
- E+ReVjBpLH4wgN5PEnjktDLkzCqjn8RTGFgVdj/oGAzEfT0RA+lajcd+ZpNOy1Ful0/Q
- 5Rfp3fpCXT7lSaJ0BrMpjw7e0zJtVeSPkciqBeWdpKC79659T23Oqn2R7fmsL/JG5JOf
- Rf7++6Ok5MJ+Un3ps69JwwVSEnkv8unHD7wuwk1wNwfUe+yj2KeePp6ESV5QxTCciuG2
- sqCokYuNOvXeYADKyy/8Kic7vqCMFOXpPLpTv9gubDxBf9Ud39R76Vb6KwmnfOyPLPYJ
- REwNM4JJckrBqwlFHdfLZBwlIyzH496VU1B3KtnztIpj6DAxv0S2qvmfKMKk8QAbV6OR
- QLx4oXTwnPjG0sFSXSBAdPoA/gJrMtOYldpX4nKyiU5OdO4CkqfLM3p01AuRAvLrwfXU
- Iz3vvIPb3nWDyyIsmRmiN16Z9ePIs2I7KaiPfsx42CchAXywOxhYZiNm3sv7rI3WB2EN
- WSvnaniF2+cu0GgM9GmuIIH1FRjUdAq1OrFYd5tZQZUqknPMKTV+ScHBwD3jGu5akWXR
- Xhy4EOvwAX0gawC1jHW8V7C74kwgYwVXXKKfCMZkP9jjkZMB7ScM7dS6/cRr8vnBoceA
- IZxf6nOiLY11++rVq0kz9r3J6BF8AvY2XVhUmJfLGA3Y9aDTSuOgIB9zZEYDDoOaY/1a
- z+j7t/UrymZOXXiQqCJ/OxP5ZPRKMn71hlW9Hfuf2sA++c39N2VPj/wlcuXmDP/n534R
- eYfk4DZdeYTMvfTpz+699fT2HWvF8x8K6qIfMjp2u4TV3mCmlU1j/aZaWSPbzq6zrrX1
- 2OTVPOf2+QoUCou7QMsyBQmnLWqOKuUSc/A08aagUg0pCauTi9VXAUOUtBcHAytjqOEM
- wSlyHWBOwWpTxhNa76WEpDhEy6VDtGgrntEIShQ9GgTMGY8BsTF+8KoQNRGpoZmCcCFe
- xIQzIrcwXkMQsIJ8fZ4r3mQUp06SUACF36JFtPwtRVWrDwmlffPe/MffvyCBZRU33hc5
- /ZuzVG7fU3ffv2PtFjJ9SyDxA1I3q55Qr/+C+COf7/hL5JvXIy9+0kuEDaEnd/Q9tv4F
- cf5swxN1M9qgeHg92FRJxtE40OW0iVjpDwgbT+y0QZmgmkYa6XfJx/S7yo9VCkbBqKuo
- BylmErWNolIUfnWxolhdQ02jOinOO1etoGg9TSilSk/LeKPZbGMYPMTdEVQrnLRSNqgi
- 1KDaqceUQ/FgNXQusaRN0F4orR88Z70QCODPcm6wdIK2qq3ycyg3l5aX6s0BPAbtU6vC
- ZM9BilAKJTL9FEWvYeszVwwyK0+tYWNxTjY0L72dLG2+Pd4tJ26c5vmFBcRDcIQZdZ5t
- xEF6yXPEdoyJNL8Smc4eZ49dFpizl8bQczLeWnY5hfkgo/DT/Cs/lsbQE7ispCIuclBA
- Z9BQRIplFEfMxEdqSCPFcmgXxEaZJdsgGgYKD6sVtEJBZDxFi3kvsYxNxfFiKYUcrErV
- 026xsWkTxMZiC78SI9EuBLLQVogNDQQYtBFrVr4iNoQ0x+cRHdoqgr8n/kZ9fux3g3HH
- qRtQ6elM76UxzAuXb0b9xD50o906gzwH+UEbkSUCRzG8HJGHyxTtZZnLMiu/fqaEc71o
- ky5MiKFbLmqA1sgoQuUuYM5EdL+M6Nhj+y/9k9Xsx6pxZWqIfiKdZMXhGWUpfBosTs0m
- Ci2OCbsvr1a7QL5QywV4vUpOJ+RyyXKHVuUoSaMyU0peLqFKclO9ei3H8nZfktkeJt1B
- j9nh5HyOTCXlKFCWcqWldgOXkror2VaWkGIfG+crto4q+ynZhg06TLaChFU9Tj3Eqv7c
- 4CmccAgUzjycfqJFNQeaEb7MgcwBycKaY7bLX1hkTAJi9ZLCODdYEhPcYHIZ3MSdBEWU
- G2wOsxsbjIE4/4bsFc4+EfBknH1FhaOIhsShnZcZCdosadZxMs5TRvJy8ShMh9YqF18h
- zlGf4BMjoSC/sCieaJZOmNW01d2eu3h2zmRysMyoum/FhhK3Yhf7r+eOdd5p9qoSdanp
- QnOqSV7063u2HDuyrfvN6el1vZuMdplGbc+aTxbx6ZaMGZPHp05+dUdtbc/gNnsSTT+g
- klV4grULX1q75fl4ck60b53R3zJe9iT6IImwJJjZy+20f2Cnk/i4RApdIbOD5XSKRIdS
- afDxNpctU5tJUkBndbrWuI81Xx2A586JqEq2HwHVBXQx9Cx6k0xhkhkEoldgYOTMAomX
- JwoIFpoqEab4PJ0IhV4nWnJEwOhJHjZNaL4695c83/LaN1+dXTElN9BLzdu0acPdh4Wa
- k+zJwb/VT4oMRC5EIqEST/26lV8c3/3bQ29vm9knzbfi6Fl6ANukBAcsC+YWaWo00zQ7
- md0JrJc3UHEOLfAOBxevoBxmJZsZn6lN0eltTqXPZk10rnEvrRgaLLFpdQ5X3wFxqAy3
- y2axyxVAiEUpgNyOAVgpARQJvIDNklqGTdOLXTtkZtFrMYuzr0DsYRCN8VePPrPymd4V
- a3eT7snZo/Y9W/6T2w5ELp3/LZn1xQdnXv/FW7+kivITx1GOS2Vb5jSSjEt/JdNw/tRG
- zzI2PAm241cDL1EFl2/jH7ftdNKshopjDUaNPs5oCKqCBj7FRsYpD9Gnyav06YQP+Y/k
- 7zs/9Hxh/sKjPK07radm8Kw7OW67yZEckHGcye2wcwqHSenlttl32l/G/me8pjivnbUq
- VJxO44tz+FibLzmT81mtgu9dd2+s49HKSt3+7mAArY1ofHBSNcdmFXJoG7TDTkA1eBiW
- xmN2wjIyp6DT6rXxWoOWkam8SQnJAnrpDoEkOuRmTgClUSMQtcZjc2MSiwFvUQig1mIQ
- W+ZEv0DyDVLTUleT25vh9mZ0DhBjk9GdiMOpqLAoT0Nwnskk9wDyiOQ2yNDOHny/uFCv
- vXKefWTbhinZhj7uxpyG5aMbXov8lVj+SJxK/9h99+xiiYepueWmSYvGPvvcK82FNSWb
- MifatWj7ZYQiFRHhzup7D3QT8WM29smoSAn9BfaJEzLwK9DLwfpCQx1fJ2/km+RrVbsT
- djl2+3rTDicogzxtSkrRnFIkodliZCkOq0LvUMRlcpmZrJ3ONGVmpLC2bJXGpy4TfHZr
- VvY1A/HCQEBEevDcRUT5qt0qH5DgjU21dI/flqjUJXu1gidREMBvw0Cn1LghTqNSex1J
- AvElpAgQp9KjgY8Zq2/dK8mvNhfk6QycDP0DX57kOxQVShYpWaeFPEDnCo2YaK/QjBHq
- npl5Bb2lSyJn9n2peVntG3Xfm0GBLuxZ+WLkMuGOkMrnf3S82rv5npM3pkfeZirKPGPW
- XMl9o/PsjhdqfaWPTv20YeK/cAFVk8zIMyf6Z21/6dj+OfdTGYgngXUYjML1h4aUIO7n
- aAWLaw+hUoC2Muwe9+zY5JRWvaGFBz1xnFvrDh4UNypSn5TgHsXNTMD9lgWs8Egwr4ff
- qn3c9AKzi+/V7jaF+df4D5jPNH8xqG7gZQ4Lp3LolVbOajVSvjhbgtxntNoSwkR+wL10
- aKRLq4bopMVGt+TXpuOWU1DGy3FU6iiBcGbkWDVyCoNKAKLFgDfJBEJrMPjWPUPTkKwv
- yBf9WAlPPTqw6JRBAaLMUb9/IHv8kRe2bn0OPypeifzr08gVov+zrIPE9W6d+diV/r3n
- 6LORL9HsDUZeJGlXcHEJsqINj9zEeHEMaiAJOoLpu/mdZsrPu+w6jcxh5OJkGoddmaSh
- fBZbsgItuDslKc7qSf63FlwydTqcyVIb7aYEYG0CI0ACNow1YUCsGgFos9QmqVmiHRet
- ttgicYig3SZ5RslDxw894hxEw67zUK/u9FYfOVrlxTCSub8wePPdhyIvd2xf3pBdcnD5
- O7/pmtF3dO72e6b10n0b6/yl6JoPRp7dOqsgsW7wU3Gdqoh+QB9ixuEcyyKZwYeL5T3s
- Vv3jhh5jT6rMn+z1Fbqr3TXJNb6pydN885LnC8tVy9XLNZ2ejuQOb4fQm7grPZ5G08Jm
- MJnxYDMmmO0WY4Yh0x+nXMAL3kIv5U1SK5i0eMurdkc8xzgyt6cpszi5RktxkOXOsjkt
- JovPXOYXOJ/flqNx+rRl4Mu0Zuf0D9vDgQuDsXka0CIX88YwxF2bOGxET0P0M26XkB1P
- MijBiNtht8bpBjn+hYHQ6eirsKnIOfSYlmCwuIkrLskN7iSNmvcp3ETwyhUkg3Hj/1Yw
- SNTZ3cRqwkAyi9pSnNBSIHWLOOLSsGtE3y+2FRC7KEs0hehiiO4HF9tNSV3mFLcLRgN2
- luAj53lv5a65PaN8dzy8bnTHx4f/ecsYag8rlD0+b0GVf8KykxULPvrt+dMceZlMnJ49
- bdrNVcm4kiSl1q3u+enG6e2jcmsmBKtTrfGOrPSqxx5+66OnqW9wXpuj5yk5Ox1nZMNL
- 6kzFCQ3ur8uDXsYUMNMyjUJnw2mOO+IUMGqMcbSTpugrJqvVdsU9f2VsOR5sDpySFpWY
- w5mFbi56nAPawXOSARA3v+LYu+pPCQW43ubtOrR3r2DMUScanGN8q6Zv2sROj7y3ebCq
- OF5JqI1yfvV86pXNaDMoMEbqJDsuWoxfBm/tNq617LTQnMwsK9bX6hv187ll9DJuvaEH
- T6Z6jNtM28y7YJdJWwvjjDXmM0amkn2VpdawvdBLdrK7zGyyn7UYzSYCMqNKGefgNaKB
- MSVgK1kg+81Gy37Vwya0M++656/CBlonXKg/ZxkMBPBnlVpoiZmb+sFArjXLUl5aKvr0
- BHcvQb3RCCbTYr3ZbGEJWawHsKCrr115Sop4jEkzjrLbxU0zyZPRFB44iB1bIC6OhUV4
- akHyCE27Twv3za54ousJISUxK1Wbm6VlyzSRjjeIkzBZ8yObIl++GJl3UMY/r5a5Lfxj
- ycyEKz30vSJW0hVtw+/6/+4ST+Fo3AMa8Iu9FX2VbMiBIqiEKukfA2PhRvxPwGSYCtNg
- BpYk+C8GIlUjw/91wehJdRUNFWm1bYs62zoWzGmVSkjZGIjl25HuQlqL1IO0CwmPsuA1
- pA+RvkD6GqvlkSxIfqRipFqkRqR2pLuQ1iL1RIcufAaGeQKuEXL2CDlnhIxnPdc9XzhC
- xlPO6/LrR8gTRshTRsgiCtfqN3uEPHeELPXLNe2ZPyJf/G5/bX23jZCXjJDvGCF3jJCX
- i/L/ASA5qC4KZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9iago2ODAyCmVuZG9iagoyMyAw
- IG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL0FzY2VudCA3NzAgL0NhcEhlaWdo
- dCA3MTcgL0Rlc2NlbnQgLTIzMCAvRmxhZ3MgMzIKL0ZvbnRCQm94IFstOTUxIC00ODEg
- MTQ0NSAxMTIyXSAvRm9udE5hbWUgL0FRSUJSQitIZWx2ZXRpY2EgL0l0YWxpY0FuZ2xl
- IDAKL1N0ZW1WIDAgL01heFdpZHRoIDE1MDAgL1hIZWlnaHQgNjM3IC9Gb250RmlsZTIg
- MjEgMCBSID4+CmVuZG9iagoyNCAwIG9iagpbIDI3OCAwIDAgMCAwIDAgMCAwIDAgMCAw
- IDAgMCAwIDAgMCA1NTYgNTU2IDAgMCA1NTYgMCA1NTYgMCAwIDU1NiAwIDAgMCAwCjAg
- MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDgzMyA3MjIgMCAwIDAgMCAwIDYxMSAw
- IDAgMCAwIDAgMCAwIDAgMCAwIDAKMCA1NTYgNTU2IDAgNTU2IDU1NiAwIDU1NiAwIDAg
- MCAwIDIyMiAwIDAgNTU2IDU1NiAwIDAgNTAwIDI3OCAwIDAgMCAwIDUwMApdCmVuZG9i
- agoxMCAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VG
- b250IC9BUUlCUkIrSGVsdmV0aWNhIC9Gb250RGVzY3JpcHRvcgoyMyAwIFIgL1dpZHRo
- cyAyNCAwIFIgL0ZpcnN0Q2hhciAzMiAvTGFzdENoYXIgMTIxIC9FbmNvZGluZyAvTWFj
- Um9tYW5FbmNvZGluZwo+PgplbmRvYmoKMjcgMCBvYmoKPDwgL0xlbmd0aCAyOCAwIFIg
- L1N1YnR5cGUgL0NJREZvbnRUeXBlMEMgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3Ry
- ZWFtCngBhVYLVBTXGWYFZlZZaWIYWWZwZiHxje/GGK2NoKKRSCLiA3noyvu1yz5YRRB8
- 4e68dhZYlBVF3q8VBUHxEQooTxXQaM5Jo6Y1SZvYmtpqk7vbCz2dzTk9J43t6T1n7v/P
- N9/973//+/93rsTNY5KbRCLxDQsO3hIaOn9jqlYZpkzP/kirDl+wY5nr00cOwuFfJCMd
- MyQOchIrc2dlHuPTxyf7e9z193jhOWOGm9vIjBkDs9gfO+8SGTXD7cv+ANmb/l5TZYH+
- XrWyt/wlOa/7S1Symf6S6F+4oRIJImNPtQ48Ck5Q703cpMxSqpasVWflaFOTU/SKmDnx
- MXMVS959d9mCpYsXv6NYp0xVpWZlqVWKrfHaxESVYnNS8kLFWvXCIMUH+oSFiuCMDEWE
- a6ROEZGoS9QaEhMWupaRnKpSK1J1CqVCr1UmJGYqtekKddL/MPezdW8ODl4ftvnn0fgR
- Df+v6Ic/R93c3Ny3ue91t7qXI9PQBdI7k+d5ydxc8ZRMcjW3KWLc3TZLVk9CJz30mOr5
- NpKNVkpHprwxu9v5rFvyvNv5Qbf7c+dfsX9GOjv+EYku34HB0XFfOObw9XTOm+gT3xy+
- QHw8J+ZO3MBEbToYGZ/uOTHvIuY8g4KxcT9P78NjjqRBiePaXXfnfudR7HKsfU/j9utN
- 8qRBfVNsl3QiAt7A6otL+GrByl8veVKWBrHMZTGzU9YkbsxIGIuXN9+sbC+rHQMzrgKs
- FSyRCq1lXBXxbVNqAPTIm5kVRqXn78/VEslbTzdGUOYctjAPP8geo/NI9cilQ5eJa/Vl
- LTVUR38d8AML8McHr6acI5sylCfXEfp8htZT1uvFrZZGa5/5THHlKqucLWSP07gyP+jA
- GnJl/psFyYzUaQRF/+F2s+g23A012LPZd6F3G5xx+4I8BgR8+GImmCT1BtuHwZ4+CSgf
- BVnfuDu6nAuxDfRqer5RWgjfZlkVkXeM5XIoc8joCRBXCmIFPzaRZQ/ibAF32IgnsUbu
- INmoUZZHEzPXrA9aNPb+n3sun7nQRJ20FZ2w1hgXp2wKiYzP3L1vtbYyu+jI6fQHDZ3V
- HU3SJ3euf/MS7zxmP3CJBLtQ/tEJ9hQBvM4zxlbqEzTN+GsabmGkJ9DfcqcEO7kGMRu4
- QxqcGUex9dHRoeHKjv7B61du1VceP1RBNuaWGdJwb3U/mNUH5vVLgP2OY8cDd1DoXIpV
- mUu5Kg4EWYCs2F4k5YpY1kzwtNFIi41l/Y4eZdnCwtANcCmkFMs3RCZrkg1XwuQ/AClY
- ehvMJgDxMGL+8sjwQBV1sPNQjaFB2hO/pXEjsWJz1MZFj3aAAKAFM1+AxcBH8RiuWrbS
- sPc9ijbfuwKmvgQkIPzszRbBVqy8Ic8/doTW0NJjS6Bf4QoiOoezqCnw+4mdWGFyAaMl
- 9uyx2jRUVnl+RR3e1lzTdb8renEV6a275Qi6KQHt98CWYXfw3Pk2NvM9oTiZYkJPcDxr
- Zf1YcwlrIZjWp3Q5YSnlOIEqPMyypuNroc+KwNDtN7fKy+urqi+ek9599HnrLeJajS6y
- hNqoitakaqUbdqbuiMTf+nIn2PDZl8Vln5NnzRbuFHfkM7k+ArrnziFgwObGkcHua8D/
- NsUVsHQuHm4KN2WTYxxtY0tYm5+VtXFVJHeWrSrDa9lSuo4Er3/8h6Zua/o9ee4hE7Pr
- wO7cCEOISvppflxrMLFj+4H0WOrwMZZNVjMcyzK8lGVZjmI5seM4i1BsEcxnq0tPnr9c
- 2940AKYKfy95aTtjLuLKucIxeWTO7AL4y6PSI+LIAspiLasvs5/uYFlr2Sqb3JRekJK2
- Xuod0T/W9azr664vrj+69vBjybNhMK/vdN93ffY+sGTI3Udj8vHeA5Y58jAQhrS3MHQ9
- RdcyDe04eA1t5Zr4BtKk1jFRBHwT2anhzGrKnM6pduETOLqNzjBmkZ8ixjq66Sbu3OoB
- 9KugHokR5UpROnPBfOwKVydcJE0qHbODgO8iO/UuC3wml5mCw9fQJCaT1pB8vZ27RADl
- eByiO3p8r0EpFMWQVoMlV8iS0rW9dCXxqPL0CAUHnXsxwKyCjGsKZqUovxZruJ2rc/mY
- qWdiCRiGxOk4cybFqzhVMg616F5GI/o4fA+okY5zDN1A0XVMfRsOPwG7MGBbCm1IlAew
- zROld3YPmNP7pOfhYGTP72580TsNeA2CyEHA3vF53vOGb49zpcOKLUOiUnkhg1qLCi2t
- fCfx1fg0ZB2dfjyefIgUttEdt3HHtD+hXedosWjvo8a0NHobEQTikMt8q6WZ/BViSebV
- Mfj4qA0zV9VyLQR4B2mpYEx11C3UqNvHpBDwHSTZwAk6KgbGYUJDLXeOAMeRC/WMsYYa
- QY16LZ1AwEIkWccLWdQbT3uuizRzdbmLForYy1ymhlBTdh6TSsBQJCWXMxsoGO1hrj7l
- mi0UaREpNT+lJIuUfdQn44EYiEgYRYy1dF0LDuRoG1dhribpffsZlSus6SItmxI0nD4N
- h35oIq0yqshRhBFPVhAJ58BIxDus/6ubYEnfUC9/A0y/UXRT8mwA+A6A08NPht19tvb4
- BLk5fnAGYnC6OH5PGi9oqY2o0NTEdxCgBU6GLUhspgsMRYXGFr6VAOdhA5J9zJiYGWcp
- TiBLs4UcXiM19Zcz5cS3VaduU+BcM3qpnjY2UndRo1ZF7yYywORzSEcjbaynRkUoXYTg
- ejAdBCJtzbQYGTGAGjW9l4CBduQcXyXUkcGIkMXrM/D0AFSpds3+PmquvcCfJ8aDxq9g
- SjrVmEneeQx8o4YRuoqpu447rqD9bLm5hqSzDzA7iWBknVi1Bl5q1nBqJT7QigFfyEFf
- ZJuHqDSIikMfh+28m9b6Yd+uFPlARENK93tS78jBP/aAgO77vd93g0nir2bWre+HXgw+
- HQLet9x9Du5x6BwpGKSQaDET9FQYKtTXcW0E+AvSVsuIa7st5oGBiSHgzO+BB9Jay5iq
- xB01qrKZNAJ6IB2cTagh1yNCNpenxKEbkqLjBDUVjpor611mJAisBssxx8uJCERTaIpO
- 2yWUbCJLsi3ZZr3U1NVONxI/VJXdoZwr0E6uymwnTVo9s4sYv4rEiLWlpYRYTvsWDo8c
- gvN1c8m8TfrYhKiq/Ipc24HLwxXtZ0akjX87IZ70NbgjBz7GznOlfKVoooCNJ2A+kprH
- 8VqK388dTMfhajSVMZgM5MgQMCHnrazJTtGnmdPNrvKUY6AUBsBSxDtyAKztBYpu4NcN
- fHslYLgfhPQ/HXopZlXBoUdOG3Zr98WUzm2dV+Vx3Un2TVelq2AndjuhPf1GRHu3fFtX
- fNP7HVIwGbZhGXN1W+JD9qfk5+Tk9EXJi04KJWXV1x63fH7hBymwbcTsdQzdTNHVjP0S
- 7liNXuHqzQ0krdrHpBPQH0k0cLyB4nVcRgo+vgb9iD1gUpO8GNPzRLZjAAMh0BeGIDs8
- RMXv34pCVIAnRLFLa5qVA5vFk9x65mR4T2ZrwgMpyKnEjHVM3W9wB4l+zNVZGsgQRFDz
- 6lh8nEJj6EyjhoT392Mpq9RJoREVB0uPnDGM3rZ3XvxC6jA6HmB9vF1odGVwMp8ehU8s
- QvWFpjh1qtmSSFqzzfkWlZSuvsZUEE8qTw1R3m7u4v18wVoHJZvFTv3JzfuSv9d30xyK
- V1CZ7zRHwKto8DRoZv09Q1mEnOJpCoxfJJvcPqXdq10ma5dN5WSvi6jt5Lazsmn/yPN5
- hTkwZcRrQCYb+f/M3ilDXr0y2dArzH8BsFSmDwplbmRzdHJlYW0KZW5kb2JqCjI4IDAg
- b2JqCjI4MjkKZW5kb2JqCjI2IDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAv
- QXNjZW50IDEyNjYgL0NhcEhlaWdodCAxMTI1IC9EZXNjZW50IC0zNzMgL0ZsYWdzCjMy
- IC9Gb250QkJveCBbLTQxOCAtNDA1IDEyNjQgMTI5OF0gL0ZvbnROYW1lIC9LQUFRRkYr
- SGlyYUtha3VQcm9OLVczIC9JdGFsaWNBbmdsZQowIC9TdGVtViA0MCAvQXZnV2lkdGgg
- MTAwMCAvTWF4V2lkdGggMTYxOCAvU3RlbUggNDAgL1hIZWlnaHQgODQ0IC9Gb250Rmls
- ZTMKMjcgMCBSID4+CmVuZG9iagoyOSAwIG9iagpbIF0KZW5kb2JqCjI1IDAgb2JqCjw8
- IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9DSURGb250VHlwZTAgL0Jhc2VGb250IC9LQUFR
- RkYrSGlyYUtha3VQcm9OLVczIC9DSURTeXN0ZW1JbmZvCjw8IC9SZWdpc3RyeSAoQWRv
- YmUpIC9PcmRlcmluZyAoSmFwYW4xKSAvU3VwcGxlbWVudCA2ID4+IC9Gb250RGVzY3Jp
- cHRvciAyNiAwIFIKL1cgMjkgMCBSIC9EVyAxMDAwID4+CmVuZG9iagoxMSAwIG9iago8
- PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHlwZTAgL0VuY29kaW5nIC9JZGVudGl0eS1I
- IC9CYXNlRm9udCAvS0FBUUZGK0hpcmFLYWt1UHJvTi1XMwovRGVzY2VuZGFudEZvbnRz
- IFsgMjUgMCBSIF0gPj4KZW5kb2JqCjMwIDAgb2JqCihNYWMgT1MgWCAxMC42LjggUXVh
- cnR6IFBERkNvbnRleHQpCmVuZG9iagozMSAwIG9iagooRDoyMDEyMDIxMDAxNDEyNFow
- MCcwMCcpCmVuZG9iagoxIDAgb2JqCjw8IC9Qcm9kdWNlciAzMCAwIFIgL0NyZWF0aW9u
- RGF0ZSAzMSAwIFIgL01vZERhdGUgMzEgMCBSID4+CmVuZG9iagp4cmVmCjAgMzIKMDAw
- MDAwMDAwMCA2NTUzNSBmIAowMDAwMDE1NTY5IDAwMDAwIG4gCjAwMDAwMDQwNjkgMDAw
- MDAgbiAKMDAwMDAwMTkzMyAwMDAwMCBuIAowMDAwMDAzOTIwIDAwMDAwIG4gCjAwMDAw
- MDAwMjIgMDAwMDAgbiAKMDAwMDAwMTkxMyAwMDAwMCBuIAowMDAwMDAyMDM3IDAwMDAw
- IG4gCjAwMDAwMDMwMjAgMDAwMDAgbiAKMDAwMDAwMzg4NCAwMDAwMCBuIAowMDAwMDEx
- NzMyIDAwMDAwIG4gCjAwMDAwMTUzNDEgMDAwMDAgbiAKMDAwMDAwMDAwMCAwMDAwMCBu
- IAowMDAwMDAyMTYwIDAwMDAwIG4gCjAwMDAwMDMwMDAgMDAwMDAgbiAKMDAwMDAwMzA1
- NiAwMDAwMCBuIAowMDAwMDAzODY0IDAwMDAwIG4gCjAwMDAwMDQwMDMgMDAwMDAgbiAK
- MDAwMDAwNDI0NiAwMDAwMCBuIAowMDAwMDA0MTE3IDAwMDAwIG4gCjAwMDAwMDQyMjQg
- MDAwMDAgbiAKMDAwMDAwNDM1MyAwMDAwMCBuIAowMDAwMDExMjQ2IDAwMDAwIG4gCjAw
- MDAwMTEyNjcgMDAwMDAgbiAKMDAwMDAxMTQ5MiAwMDAwMCBuIAowMDAwMDE1MTM2IDAw
- MDAwIG4gCjAwMDAwMTQ4NTcgMDAwMDAgbiAKMDAwMDAxMTkwNyAwMDAwMCBuIAowMDAw
- MDE0ODM2IDAwMDAwIG4gCjAwMDAwMTUxMTYgMDAwMDAgbiAKMDAwMDAxNTQ3NSAwMDAw
- MCBuIAowMDAwMDE1NTI3IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMzIgL1Jvb3Qg
- MTcgMCBSIC9JbmZvIDEgMCBSIC9JRCBbIDxkMzZhY2M2YzkzYzg0MzFkNzhhMDEyMDgx
- MWI1OWI3Nj4KPGQzNmFjYzZjOTNjODQzMWQ3OGEwMTIwODExYjU5Yjc2PiBdID4+CnN0
- YXJ0eHJlZgoxNTY0NAolJUVPRgoxIDAgb2JqCjw8L0F1dGhvciAoS2F6dWtpIEFLQU1J
- TkUpL0NyZWF0aW9uRGF0ZSAoRDoyMDEyMDIxMDAxMzIwMFopL0NyZWF0b3IgKE9tbmlH
- cmFmZmxlIDUuMi4zKS9Nb2REYXRlIChEOjIwMTIwMjEwMDE0MTAwWikvUHJvZHVjZXIg
- MzAgMCBSID4+CmVuZG9iagp4cmVmCjEgMQowMDAwMDE2NDQyIDAwMDAwIG4gCnRyYWls
- ZXIKPDwvSUQgWzxkMzZhY2M2YzkzYzg0MzFkNzhhMDEyMDgxMWI1OWI3Nj4gPGQzNmFj
- YzZjOTNjODQzMWQ3OGEwMTIwODExYjU5Yjc2Pl0gL0luZm8gMSAwIFIgL1ByZXYgMTU2
- NDQgL1Jvb3QgMTcgMCBSIC9TaXplIDMyPj4Kc3RhcnR4cmVmCjE2NTkyCiUlRU9GCg==
-
- QuickLookThumbnail
-
- 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
- AAeSAAD9kf//+6L///2jAAAD3AAAwGw=
-
ReadOnly
NO
RowAlign
@@ -1573,26 +1205,24 @@
1
WindowInfo
+ BottomSlabHeight
+ 593
CurrentSheet
0
- ExpandedCanvases
+ Expanded_Canvases
Frame
- {{348, 81}, {693, 937}}
- ListView
+ {{348, 81}, {993, 937}}
+ ShowInfo
- OutlineWidth
- 142
- RightSidebar
-
ShowRuler
Sidebar
SidebarWidth
- 120
+ 230
VisibleRegion
- {{0, 0}, {558, 783}}
+ {{1, -6}, {446, 795}}
Zoom
1
ZoomValues
@@ -1604,7 +1234,5 @@
- saveQuickLookFiles
- YES
diff -r 46a09e9020a3 -r f77de7e7fb66 paper/master_paper.pdf
Binary file paper/master_paper.pdf has changed
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/.gitignore
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/.gitignore Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,4 @@
+# Komodo Project Files
+
+*.kpf
+*.komodoproject
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/DOCS/FORMAT.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/DOCS/FORMAT.md Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,80 @@
+# S6 Format
+
+
+## Media Types
+
+S6 supports out-of-the box three media types, that is, `projection`, `screen` and `print`:
+
+* `projection` => display one slide at-a-time; (use option `mode: slideshow`)
+* `screen` => display all slides at-once on screen; (use option `mode: outline`)
+* `print` => print (and print preview)
+
+Note: Only the Opera browser has built-in support for `projection`.
+On other browsers S6 uses JavaScript to switch `projection` to `screen` on startup.
+
+
+## Structure, CSS Classes
+
+ .presentation
+ .slide
+ .step
+ .notes
+ .extra
+
+### Core Classes
+
+`.presentation` (alias `.deck`, `.slides`)
+
+Top level class for all slides
+
+`.slide`
+
+Marks a slide
+
+`.step` (alias `.incremental`, `.delayed`, `.action`, `.build`)
+
+Marks a slide step. Shortcut Tip: If a list gets marked up with `.step`,
+all its children get marked up automatically.
+
+
+### Extras
+
+`.notes` (alias `.note`, `.handout`)
+
+Marks speaker notes.
+
+`.extra`
+
+Marks extra text for print only.
+
+
+
+## Styling and Slide Types
+
+### Slide Types/Layouts
+
+* fullscreen
+* hidden
+
+### Font Size
+
+Absolute:
+
+* xx-large
+* x-large
+* large
+* small
+* x-small
+* xx-small
+
+Relative:
+
+* larger
+* smaller
+
+### Alignment
+
+* right
+* center
+* left
+
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/DOCS/PLUGINS.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/DOCS/PLUGINS.md Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,13 @@
+# S6 Format for Plugins / Addons
+
+## Custom Events
+
+S6 fires the following events (to let plugins/addons get hooks into the JavaScript machinery):
+
+* `slideshow.init`
+* `slideshow.start`
+* `slideshow.keys( key )`
+* `slideshow.debug.on`
+* `slideshow.debug.off`
+* `slideshow.change( from, to )`
+
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/DOCS/README.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/DOCS/README.md Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,12 @@
+# S6 Docs
+
+## Format
+
+* [S6 Format](FORMAT.md) -
+ CSS Classes & Ids (`.slide`, `.step`, etc.), Media Types (`projection`, `screen`, `print`)
+* [S6 Format for Plugins/Addons](PLUGINS.md) -
+ JavaScript Custom Events (`slideshow.init`, `slideshow.change`, `slideshow.keys`, etc.)
+
+## Tips & Tricks
+
+TBD
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/HISTORY.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/HISTORY.md Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,65 @@
+### r2011-11-13
+
+* Add normalize css selector option; lets you use the following aliases
+ * presentation => deck
+ * step => incremental, delayed, action, build
+ * notes => note, handout
+
+### r2011-11-05
+
+* Add chrome fix/workaround for inline styles (projection media needs to get set to screen,projection)
+* Move code to addons using new slideshow triggers; new addons include:
+ * counter (slide counter e.g. 1/7)
+ * controls (toggle, next, prev buttons, jumplist)
+ * autoplay
+ * footer/header
+* Moved sample transitions to jquery.slideshow.transitions.js
+* Changed .slide box-sizing to border-box (lets you use width: 100%; height: 100%;)
+* Minor fixes
+
+### r2011-11-01
+
+* Add minimalistic.html template; all styles (projection, screen, print) inline plus no less.js used
+* Clean up styles; move all styles (projection, screen, print) for controls into slideshow.js
+* /shared folder now split into /js and /css folders
+* Update jquery.js to 1.6.4
+* Update less.js to 1.1.4
+* Minor fixes
+
+### r2011-05-22
+
+* Adding blank5.html template (using more semantic tags e.g. header, footer, article, etc.) [Thanks Ryan McIlmoyl]
+
+### r2011-05-21
+
+* Switch all CSS stylesheets to use less.js CSS extension
+* Update jquery to 1.6.1
+
+### r2011-05-20
+
+* Easier CSS media type handling for projection (e.g. ids no longer required; plus can now handle multiple styles either using link or style tag)
+
+### r2011-02-06
+
+* Add right click on title handler for going back one slide
+* Update jquery to 1.5
+
+### r2010-07-18
+
+* Adding custom slide transitions plus some sample animations (e.g. slide up/down, fade out/in)
+* Adding clicker (click on title to go to next slide)
+* Adding autoplay (press a/p/s-key to toggle autoplay)
+
+### r2010-07-17
+
+* JavaScript cleanup; everything namespaced now using Slideshow
+* Removing svg gradient backgrounds; use css3 gradients instead
+* Move better browser banner for IE out of core; uses conditional comments for include.
+
+### r2009-02-19
+
+* Add support for steps/incrementals
+
+### r2009-02-10
+
+* Everything is new.
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/README.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/README.md Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,66 @@
+# S6 Blank/Boilerplate
+
+Slide Show Templates Using HTML5, CSS3 & JavaScript (w/ jQuery)
+
+## Templates
+
+- [`blank.html`](http://geraldb.github.io/s6/blank.html)
+- [`blank5.html`](http://geraldb.github.io/s6/blank5.html)
+- [`minimalistic.html`](http://geraldb.github.io/s6/minimalistic.html)
+- [`sample.html`](http://geraldb.github.io/s6/sample.html)
+
+
+## S6 in Action - Sample Slide Shows Online
+
+Try some slide show samples powered by S6:
+
+- [Slide Show (S9) 10-Minute Tutorial](http://slideshow-s9.github.io/tutorial.html)
+- [Prototype vs jQuery: To and from JavaScript Libraries](http://slideshow-s9.github.io/jquery.html)
+- [10 Things Every Java Programmer Should Know About Ruby](http://slideshow-s9.github.io/10things.html)
+- [Ruby 1.9: What to Expect](http://slideshow-s9.github.io/ruby19.html)
+- [`beer.db` - Using Open Beer & Brewery Data in Ruby](http://slideshow-s9.github.io/beer_db_intro.html)
+
+Keyboard controls:
+
+| Action | Key |
+| -------------------------------------------------- | ----------------------------------------------------------- |
+| Go to next slide | Space Bar, Right Arrow Down Arrow, Page Down, Click Heading |
+| Go to previous slide | Left Arrow, Up Arrow, Page Up |
+| Go to first slide | Home |
+| Go to last slide | End |
+| Toggle between slideshow and outline view (Ø) | T |
+| Show/hide slide controls (Ø « ») | C, Move mouse to bottom right corner |
+
+
+
+
+## What's S5? What's S6?
+
+Simple Standards-based Slide Show System (S5) is Eric Meyer's (of CSS fame) public domain
+(free, open source) slide show package inspired by Opera Show and others that works
+in all modern browsers without any plugin required
+because it includes its own slide show machinery in JavaScript.
+More [S5 Project Site »](http://meyerweb.com/eric/tools/s5)
+
+S6 started as a rewrite of S5 using the jQuery JavaScript library - offering
+easier to understand and easier to extend code. Add plugins, effects and more.
+Contributions welcome!
+
+## What's Slide Show (S9)? Slide Show Generator for S6
+
+A Ruby gem that lets you create slide shows and author slides in plain text
+using a wiki-style markup language that's easy-to-write and easy-to-read
+and ships "out-of-the-gem" with S6 templates built-in.
+More [Slide Show (S9) Project Site »](http://slideshow-s9.github.io)
+
+
+## About, License
+
+The slide show (S6) scripts and templates are dedicated
+to the public domain. Use it as you please with no restrictions whatsoever.
+
+## Questions? Comments?
+
+Send them along to
+the [Free Web Slide Show Alternatives (S5, S6, S9, Slidy And Friends) Forum/Mailing List](http://groups.google.com/group/webslideshow).
+Thanks!
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/TODO.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/TODO.md Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,29 @@
+# Todos and Ideas
+
+## Theming
+
+* add some themes;
+
+## Addons
+
+* add hash addon
+* add help addon
+* add timer addon
+
+## JavaScript cleanup
+
+* use prototype for functions
+* use _ (underscore) for properties e.g. this.smax becomes this._smax
+* add a Slide class ??
+* add a slide.js script that includes everything (including css) for easy use
+
+## More
+
+* add support for far-past, past, current, future, far-future CSS classes on slides
+* add support for iframe slides (e.g. fullscreen); see CSSS for examples
+* add autostyle: true | false option ??
+* check if slide has id (if yes, reuse user-supplied id)
+
+## Known bugs
+
+* jumpList in navList visibility won't work in chrome on :hover
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/blanc.css.less.back
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/blanc.css.less.back Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,110 @@
+////////
+// variables for easy configuration
+//
+// (note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+@color: black;
+@color-step-hidden: silver;
+
+@background-color-code: azure;
+
+// -- gradient colors used for slides classified with cover | title
+
+@background-gradient-color1-cover: blue;
+@background-gradient-color2-cover: aqua;
+
+// -- gradient colors for all other slides
+
+@background-gradient-color1: yellow;
+@background-gradient-color2: orange;
+
+// --- font size
+
+@font-size-h1: 245%; // 30pt / 40px (assuming 100% => 12pt / 16px)
+@font-size-h2: 230%; // 28pt / 37px
+@font-size-h3: 200%; // 24pt / 32px
+@font-size-text: 150%; // 18pt / 24px
+@font-size-code: 140%; // 16pt / 22px
+
+
+/////////////////////////////
+
+body { font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; }
+
+a:link,
+a:visited { color: @color; }
+
+
+.slide {
+
+ color: @color;
+
+ h1 { font-size: @font-size-h1;
+ text-align: center;
+
+ &.fullscreen { position: absolute;
+ top: 40%;
+ width: 100%; }
+
+ // lets you create slides with no heading (that is, heading gets hidden but included in toc)
+ &.hidden { display: none; }
+ }
+
+ h2 { font-size: @font-size-h2; }
+
+ h3 { font-size: @font-size-h3; }
+
+ .stepcurrent { color: @color; }
+ .step { color: @color-step-hidden; } // or hide next steps e.g. .step { visibility: hidden; }
+}
+
+
+ul { list-style-type: square; }
+
+
+p, li, dt, dd, td, th { font-size: @font-size-text; }
+
+
+pre { font-size: @font-size-code; }
+
+.code {
+ background-color: @background-color-code;
+ padding: 5px;
+ }
+
+.footnote a:first-of-type { text-decoration: none; }
+
+p.footnote { font-size: 88%; }
+
+.help {
+ p, td { font-size: 88%; }
+}
+
+/********
+ * example gradient background using css3
+ */
+
+.slide {
+ background-image: -webkit-linear-gradient(top, @background-gradient-color1,
+ @background-gradient-color2,
+ @background-gradient-color1,
+ @background-gradient-color2);
+
+ background-image: -moz-linear-gradient(top, @background-gradient-color1,
+ @background-gradient-color2,
+ @background-gradient-color1,
+ @background-gradient-color2);
+
+ &.cover, &.title {
+ background-image: -webkit-linear-gradient(top, @background-gradient-color1-cover,
+ @background-gradient-color2-cover,
+ @background-gradient-color1-cover,
+ @background-gradient-color2-cover);
+
+ background-image: -moz-linear-gradient(top, @background-gradient-color1-cover,
+ @background-gradient-color2-cover,
+ @background-gradient-color1-cover,
+ @background-gradient-color2-cover);
+
+ }
+}
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/blank.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/blank.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,110 @@
+////////
+// variables for easy configuration
+//
+// (note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+@color: black;
+@color-step-hidden: silver;
+
+@background-color-code: white;
+
+// -- gradient colors used for slides classified with cover | title
+
+@background-gradient-color1-cover: white;
+@background-gradient-color2-cover: white;
+
+// -- gradient colors for all other slides
+
+@background-gradient-color1: white;
+@background-gradient-color2: white;
+
+// --- font size
+
+@font-size-h1: 245%; // 30pt / 40px (assuming 100% => 12pt / 16px)
+@font-size-h2: 230%; // 28pt / 37px
+@font-size-h3: 200%; // 24pt / 32px
+@font-size-text: 150%; // 18pt / 24px
+@font-size-code: 140%; // 16pt / 22px
+
+
+/////////////////////////////
+
+body { font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; }
+
+a:link,
+a:visited { color: @color; }
+
+
+.slide {
+
+ color: @color;
+
+ h1 { font-size: @font-size-h1;
+ text-align: center;
+
+ &.fullscreen { position: absolute;
+ top: 40%;
+ width: 100%; }
+
+ // lets you create slides with no heading (that is, heading gets hidden but included in toc)
+ &.hidden { display: none; }
+ }
+
+ h2 { font-size: @font-size-h2; }
+
+ h3 { font-size: @font-size-h3; }
+
+ .stepcurrent { color: @color; }
+ .step { color: @color-step-hidden; } // or hide next steps e.g. .step { visibility: hidden; }
+}
+
+
+ul { list-style-type: square; }
+
+
+p, li, dt, dd, td, th { font-size: @font-size-text; }
+
+
+pre { font-size: @font-size-code; }
+
+.code {
+ background-color: @background-color-code;
+ padding: 5px;
+ }
+
+.footnote a:first-of-type { text-decoration: none; }
+
+p.footnote { font-size: 88%; }
+
+.help {
+ p, td { font-size: 88%; }
+}
+
+/********
+ * example gradient background using css3
+ */
+
+.slide {
+ background-image: -webkit-linear-gradient(top, @background-gradient-color1,
+ @background-gradient-color2,
+ @background-gradient-color1,
+ @background-gradient-color2);
+
+ background-image: -moz-linear-gradient(top, @background-gradient-color1,
+ @background-gradient-color2,
+ @background-gradient-color1,
+ @background-gradient-color2);
+
+ &.cover, &.title {
+ background-image: -webkit-linear-gradient(top, @background-gradient-color1-cover,
+ @background-gradient-color2-cover,
+ @background-gradient-color1-cover,
+ @background-gradient-color2-cover);
+
+ background-image: -moz-linear-gradient(top, @background-gradient-color1-cover,
+ @background-gradient-color2-cover,
+ @background-gradient-color1-cover,
+ @background-gradient-color2-cover);
+
+ }
+}
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/images/compareTcpDelay.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/images/compareTcpDelay.svg Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,267 @@
+
+image/svg+xml
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/images/compare_100KB.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/images/compare_100KB.svg Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,293 @@
+
+image/svg+xml
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/images/disconnect.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/images/disconnect.svg Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,663 @@
+
+image/svg+xml TopologyFix
+2015/02/05 powered by Astah
+Node0
+Node1
+Node2
+Node3
+Node4
+Node5
+Node6
+
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/images/topologyring.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/images/topologyring.svg Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,3 @@
+
+
+ Produced by OmniGraffle 6.0.5 2015-02-05 12:03Z キャンバス 1 レイヤー 1 T opology Node T opology Node T opology Node T opology Node T opology Node T opology Node T opology Node T opology Node T opology Node T opology Node Message Message が 100 周する時間を計測
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/index.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/index.html Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,268 @@
+
+
+
+
+ 分散フレームワーク AliceのMeta Computationによる応用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
分散フレームワークAlice上のMeta Computationとその応用
+
+ 琉球大学 杉本優
+
+ Feb 6, 2013
+
+
+
+
+
+
概要
+
Aliceに動的トポロジーを管理する機能とMeta Computationを追加した。
+
画面共有システムTreeVNCをAliceを用いて実装することでAliceに実用的なアプリケーションを記述する能力を確認した。
+
+
+
+
+
研究の背景と目的
+
分散プログラムには信頼性とスケーラビリティが必要である。
+
その両方を兼ね備えたアプリケーションの作成は容易ではない。
+
マシンがメニコア化しているため分散プログラムにも並列性が求められる。
+
これら全てを兼ね備えた分散プログラムの記述をサポートするフレームワークがAliceである。
+
+
+
+
Aliceの計算モデル
+
AliceはデータをData Segment、タスクをCode Segmentという単位に分割してプログラミングを行う。
+
+
+
+
実用的なアプリケーションに必要な機能
+
Aliceの基本機能でアプリケーションを記述できることは確認された。
+
+
一方で実用的なアプリケーションには
+
+
というものが求められる。
+
+
実際のアプリケーションではノードの切断や接続が不定期に起こる。
+
+
+
+
+
+
Meta Computation
+
Meta ComputationはComputationを支えるComputationである。
+
AliceのComputationはkeyによりData Segmentを待ち合わせてCode Segmentを実行することである。
+
Data Segmentの待ち合わせを行う、Code Segmentを実行をするためにはAlice自身が必要である。
+
従って、AliceのMeta ComputationはAliceと言える。
+
+
+
+
+
Meta Computationの実装
+
今回新しく実装したMeta Computationは
+
+ Topologyを再構成する機構
+ 切断時の処理を変更する機能
+ 再接続の処理を変更する機能
+ keepAliveの機能
+
+
+
+
+
RingTopologyによる評価
+
改善効果をRingTopologyの例題により計測した。
+
+
リングトポロジーを構成し、Messageが100周する時間を計り、1周あたりの平均時間を求めた。
+
先行研究であるFederated Lindaも比較した。
+
+
+
+
RingTopologyの測定結果
+
赤の実線が改善後のAlice、青の破線が改善前のAliceそして緑の点線がFedLindaである。
+
+
改善後は改善前と比べ12%性能が向上した。Federated Lindaと同等の性能を持つ
+
+
+
+
bitonic sortによる評価
+
改善効果をbitonic sortの例題により計測した。分割数は4つで行った。
+
+
+
+ 改善前 改善後
+
+
+ 実行時間(ms) 164.8 112.1
+
+
+
+
改善後は改善前と比べ32%性能が向上した。
+
+
+
+
+
TreeVNCとAliceVNCとの比較
+
共有画面システムであるTreeVNCとTreeVNCAlice上で実装したAliceVNCをコードの量から比較した
+
+
+
+ 行数 単語数
+
+
+ TreeVNC 5049 14191
+
+
+ AliceVNC 989
2355
+
+
+
+
Aliceを使うことで記述するソースコードを80%減らすことができる
+
+
+
+
+
実験の考察
+
+
+
+
+
+
+
結論
+
本研究ではAliceに動的なトポロジーの対応機能とMeta Computationの追加を行った。
+
その結果、画面共有システムであるTreeVNCをAlice上で実装することができた。
+
+
Aliceの性能改善を行った結果、リングの実験では12%、sortの例題では32%性能を改善できた。
+
+
Aliceに実用的なアプリケーションを記述する能力があることを確認できた。
+
+
+
+
今後の課題
+
+
+
+
+
+
+
+
+
+
+
+
AliceVNCとTreeVNC
+
+
+
+
+
TCP_NODELAYとTCP_DELAYとの比較
+
TCP_DELAYはパケットを送信する際に小さいパケットを送るのではなく、まとめて大きいパケットとして送る手法。飛び交うパケットを減らすことで通信効果を向上させる
+
+
+
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/js/jquery-1.7.min.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/js/jquery-1.7.min.js Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,4 @@
+/*! jQuery v1.7 jquery.com | jquery.org/license */
+(function(a,b){function cA(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cx(a){if(!cm[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cn||(cn=c.createElement("iframe"),cn.frameBorder=cn.width=cn.height=0),b.appendChild(cn);if(!co||!cn.createElement)co=(cn.contentWindow||cn.contentDocument).document,co.write((c.compatMode==="CSS1Compat"?"":"")+""),co.close();d=co.createElement(a),co.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cn)}cm[a]=e}return cm[a]}function cw(a,b){var c={};f.each(cs.concat.apply([],cs.slice(0,b)),function(){c[this]=a});return c}function cv(){ct=b}function cu(){setTimeout(cv,0);return ct=f.now()}function cl(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ck(){try{return new a.XMLHttpRequest}catch(b){}}function ce(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g
0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bB(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function br(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bi,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bq(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bp(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bp)}function bp(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bo(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bn(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bm(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(){return!0}function M(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.add(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return a!=null&&m.test(a)&&!isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;ca ",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,unknownElems:!!a.getElementsByTagName("nav").length,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",enctype:!!c.createElement("form").enctype,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.lastChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-999px",top:"-999px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;f(function(){var a,b,d,e,g,h,i=1,j="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",l="visibility:hidden;border:0;",n="style='"+j+"border:5px solid #000;padding:0;'",p=""+"";m=c.getElementsByTagName("body")[0];!m||(a=c.createElement("div"),a.style.cssText=l+"width:0;height:0;position:static;top:0;margin-top:"+i+"px",m.insertBefore(a,m.firstChild),o=c.createElement("div"),o.style.cssText=j+l,o.innerHTML=p,a.appendChild(o),b=o.firstChild,d=b.firstChild,g=b.nextSibling.firstChild.firstChild,h={doesNotAddBorder:d.offsetTop!==5,doesAddBorderForTableAndCells:g.offsetTop===5},d.style.position="fixed",d.style.top="20px",h.fixedPosition=d.offsetTop===20||d.offsetTop===15,d.style.position=d.style.top="",b.style.overflow="hidden",b.style.position="relative",h.subtractsBorderForOverflowNotVisible=d.offsetTop===-5,h.doesNotIncludeMarginInBodyOffset=m.offsetTop!==i,m.removeChild(a),o=a=null,f.extend(k,h))}),o.innerHTML="",n.removeChild(o),o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[f.expando]:a[f.expando]&&f.expando,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[f.expando]=n=++f.uuid:n=f.expando),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[f.expando]:f.expando;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)?b=b:b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" "));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];if(!arguments.length){if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}return b}e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!a||j===3||j===8||j===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g},removeAttr:function(a,b){var c,d,e,g,h=0;if(a.nodeType===1){d=(b||"").split(p),g=d.length;for(;h=0}})});var z=/\.(.*)$/,A=/^(?:textarea|input|select)$/i,B=/\./g,C=/ /g,D=/[^\w\s.|`]/g,E=/^([^\.]*)?(?:\.(.+))?$/,F=/\bhover(\.\S+)?/,G=/^key/,H=/^(?:mouse|contextmenu)|click/,I=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,J=function(a){var b=I.exec(a);b&&
+(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},K=function(a,b){return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||a.id===b[2])&&(!b[3]||b[3].test(a.className))},L=function(a){return f.event.special.hover?a:a.replace(F,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=L(c).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"",(g||!e)&&c.preventDefault();if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,n=null;for(m=e.parentNode;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l=0:t===b&&(t=o[s]=r.quick?K(m,r.quick):f(m).is(s)),t&&q.push(r);q.length&&j.push({elem:m,matches:q})}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),G.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),H.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c ",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=" ",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="
";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",Z=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,_=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,ba=/<([\w:]+)/,bb=/",""],legend:[1,""," "],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""," "],_default:[0,"",""]},bk=X(c);bj.optgroup=bj.option,bj.tbody=bj.tfoot=bj.colgroup=bj.caption=bj.thead,bj.th=bj.td,f.support.htmlSerialize||(bj._default=[1,"div","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after"
+,arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Z,""):null;if(typeof a=="string"&&!bd.test(a)&&(f.support.leadingWhitespace||!$.test(a))&&!bj[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(_,"<$1>$2>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bn(a,d),e=bo(a),g=bo(d);for(h=0;e[h];++h)g[h]&&bn(e[h],g[h])}if(b){bm(a,d);if(c){e=bo(a),g=bo(d);for(h=0;e[h];++h)bm(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bc.test(k))k=b.createTextNode(k);else{k=k.replace(_,"<$1>$2>");var l=(ba.exec(k)||["",""])[1].toLowerCase(),m=bj[l]||bj._default,n=m[0],o=b.createElement("div");b===c?bk.appendChild(o):X(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=bb.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&$.test(k)&&o.insertBefore(b.createTextNode($.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bt.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bs,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bs.test(g)?g.replace(bs,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bB(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bC=function(a,c){var d,e,g;c=c.replace(bu,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bD=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bv.test(f)&&bw.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bB=bC||bD,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bF=/%20/g,bG=/\[\]$/,bH=/\r?\n/g,bI=/#.*$/,bJ=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bK=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bL=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bM=/^(?:GET|HEAD)$/,bN=/^\/\//,bO=/\?/,bP=/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Your Slide Title Here
+
+ Item One Here
+ Item Two Here
+
+
+
+
+
Steps Demos
+
+
+
+ Item 1.1 Here
+ Item 1.2 Here
+
+
+
+
+ Item 2.1 Here
+ Item 2.2 Here
+
+
+
+
Another Step
+
+
+
+
+
Another Slide Title Here
+
yada yada yada
+
+
+
+
+
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/s6.jquery.json
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/s6.jquery.json Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,27 @@
+{
+ "name": "s6",
+ "version": "0.0.1",
+ "title": "S6 Blank",
+ "description": "Another Slide Show Script",
+ "keywords": [
+ "s6",
+ "slideshow",
+ "presentation"
+ ],
+ "author": {
+ "name": "Gerald Bauer",
+ "url": "https://github.com/geraldb"
+ },
+ "licenses": [
+ {
+ "type": "Public Domain",
+ "url": "http://en.wikipedia.org/wiki/Public_domain"
+ }
+ ],
+ "dependencies": {
+ "jquery": ">=1.10"
+ },
+ "homepage": "https://github.com/geraldb/s6",
+ "docs": "https://github.com/geraldb/s6",
+ "download": "http://code.jquery.com/#s6"
+}
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/slide.xmind
Binary file slides/slide.xmind has changed
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/slides.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/slides.html Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,593 @@
+
+
+
+
+ 分散 Database Jungle に関する研究
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
分散 Database Jungleに関する研究
+
+ 琉球大学 大城信康
+
+ Feb 3, 2013
+
+
+
+
+
+
概要
+
非破壊的木構造データベースJungleに分散実装を行い掲示板システムに特化したデーターベースを作成し、その評価を行った。
+
分散データベースCassandraより2倍以上速く、分散環境下においては10倍以上速くなる結果も確認された。
+
+
+
+
+
研究の背景と目的
+
ウェブサービスにとってデータベースは必須であり、ウェブサービスの規模に比例してデータベースへの負荷も高まる。
+
データベースの処理能力の高さはそのままウェブサービスの質に繋がるため、データベースのスケーラビリティの確保は重要である。
+
スケーラビリティ確保の方法としてデータ分散があるが、分散する方法により性能も変わってくる。
+
ウェブサービスのなかでも、コンテンツマネジメントシステムに合ったスケーラビリティの確保ができるデータベースの開発を行う。>
+
+
+
+
+ ウェブサービスにおけるデータベースの重要性
+
+
ウェブサービスへの負荷が高まることは、データベースへの負荷が高まることでもある。
+
データベースの性能が低ければ負荷に耐え切れずサービスはダウンする
+
+
+
+
そのため、データベースにはスケーラビリティが必要
+
+
+
+
+ スケーラビリティとは
+
+
システムが負荷の増大に対して柔軟に拡張して対応できる性質
+
主に次の2つの方法によりシステムはスケールされる
+
+ スケールアップ : 高価な単一マシンによる性能アップ
+
+ スケールアウト : 汎用的なマシンを複数台用意することで性能アップ
+
+
分散システムにおいてはスケールアウト によりスケーラビリティを高める
+
+
+
+
+
+
+
+ データベースのスケーラビリティ
+
+
データベースのスケーラビリティを考えるとき、どういう用途で使用するかを考えるのが重要。
+
例えば、掲示板システムにおいては、書き込みと読み込みが速いことが求められる。
+
+
ウェブサービスにおいても、どのようなサービスを行うかによってスケーラビリティの確保の仕方も変わってくる。
+
本研究で開発しているデータベースはコンテンツマネジメントシステム(CMS)を対象としている。
+
+
+
+
+
+ コンテンツマネジメントシステム(CMS)
+
+
Webコンテンツを構成するテキストや画像などのデジタルコンテンツを管理し配信するシステム。
+
例:ブログツール、Wiki
+
分散コンテンツマネジメントシステムに求められること。
+
Webコンテンツを分散して管理
+
スケールアウトするシステム
+
データ全体の整合性に遅延がある、結果整合性でもよい。書き込みや読み込みを優先としたデータベースが必要。
+
そこで、非破壊的木構造データベースJungleの開発が行われた。
+
+
+
+
+
+ 非破壊的木構造データベースJungle
+
+
JungleはスケーラビリティのあるCMSの設計を目指して当研究室で開発されているデータベース。
+
データを木構造で、さらに非破壊で保持する。
+
+
+
+
+ 非破壊的木構造
+
+
非破壊的木構造は一度作成したデータは変更しない
+
新しい木構造を作成することでデータの編集を行う
+
+
+
+
+
+
+
+ 非破壊的木構造の利点
+
+
非破壊的木構造は通常の木構造である破壊的木構造に比べ、以下のような利点を持つ
+
+ 一度作成したデータは変更されない
+ データが変更されないため自由にコピーを作ることができる(いつでも読み込みが可能)
+ ロックがすくない。ロックが必要なのは最新のルートノードを登録するときだけ
+
+
ロックが少なく、いつでもコピーが可能なことから、非破壊的木構造はスケーラブルなシステムに有用となる
+
+
+
+
+ Jungleの分散設計
+
+
ここまでJungleに実装されている非破壊的木構造の利点について述べた。
+
次に、Jungleにおける分散設計について述べる。
+
データ分散を行うにあたり、まず考えることはトポロジーの形成と他のノードからデータの伝搬の仕方である。
+
Jungleはこの問題に対し、ツリートポロジーを形成し、データ編集の際に発生するオペレーションを他のノードに流すことで解決する。
+
+
+
+
+ Jungleトポロジーの形成
+
+
Jungleのトポロジー形成には当研究室で開発している並列分散フレームワークAliceを使用する。
+
Aliceは以下の機能が提供されている
+
+ 複数のノードによる分散トポロジーの設定
+ トポロジー上でのデータアクセス機構
+
+
JungleにAliceを組み込み、Jungleのノード同士でトポロジーを形成する。
+
Aliceの機能である他ノードへのデータアクセス機構を使用してデータ分散を行う。
+
+
+
+
+
+
+
+ 分散設計: データ編集オペレーション
+
+
Aliceにより、ネットワークトポロジーの作成と他サーバが持つデータアクセス機構を実装できた。
+
次はどのデータを取得することでデータの分散を行うか考えなければならない。
+
+
Jungleにはデータ編集に使われるオペレーションがある。
+
データ編集に使われるオペレーションをそのまま他サーバノードへ流すことでデータの分散が行える。
+
オペレーションには次の4つがある
+
+ addNewChild:子ノードの追加を行う
+ deleteChildAt:指定したノードの削除を行う
+ putAttribute:子ノードにattributeに追加を行う
+ deleteAttribute:子ノードのattributeを削除する
+
+
+
+
+
+ データ編集オペレーション
+
+
子ノードを追加し、その子ノードにattributeを追加する場合次のノードオペレーションが実行される。
+
+ [APPEND_CHILD:<-1>:pos:0]
+ [PUT_ATTRIBUTE:<-1,0>:key:mes,value:hello]
+
+
このノードオペレーションの実行結果を図に示す。
+
+
+
+
トポロジー上でノードオペレーションを渡すことで同じ編集を行いデータの分散を行う。
+
+
+
+
+
+
+
+ Jungle分散実装
+
+
以上の設計を元にJungleに分散実装を行った。
+
以下の図はJungleにおけるデータ分散の様子を表している。
+
+
+
+
Aliceでトポロジーを形成後は、データ編集に使われたオペレーションを他サーバノードに送られる。
+
オペレーションを受信したノードはデータ編集を行う。他にサーバが繋がっている場合はそちらにもオペレーションを送る。
+
+
+
+
+
+
+ Jungle分散実装
+
+
これまでの実装でJungleのデータが分散が行われるようになった。
+
しかしもう1つ問題がある。複数のノードから書き込まれるデータの整合性を取る方法が必要である。
+
JungleではこれをMergeを使うことで自動的に解決する。
+
Mergeとは2つ以上の変更の結果を受けて1つの変更に変えることである。
+
今回は、性能比較に用いる掲示板システムにMergeの実装を行った。
+
掲示板システムにおけるMergeを説明する。
+
+
+
+
+ 掲示板システムにおけるMerge
+
+
2つの状態をもつ掲示板の書き込みができる。この2つの書き込みから新しい書き込みを作る。
+
+
+
+
掲示板はcommutativeなため、いつ書き込んでも良い。よってMergeが自動的に行える。
+
+
+
+
+
+
+
+
+ 分散データベースJungleの評価
+
+
分散データベースとしてJungleの性能を評価する。
+
分散Key-ValueデーターべースCassandraと比較を行う。
+
比較方法は、Jungle, Cassandra をそれぞれバックエンドとした簡易掲示板を作成する。
+
掲示板に対してHTTP Requestで並列に読み込みと書き込みの負荷をかけ計測する。
+
レスポンスが返る平均時間と標準偏差を求めグラフ化する
+
+
+
+
+
+ 実験内容
+
+
実験は2つ行う
+
実験1:サーバを単体で起動し、複数のクライアントからの負荷をかける。
+
+
+
+
サーバ単体の性能を比較する。
+
クライアントの増加に対してサーバ1台にかかるリクエストも増加
+
+
+
+
+ 実験内容
+
+
実験2:サーバを単体で起動し、複数のクライアントからの負荷をかける。
+
+
+
+
分散環境下における性能を比較する。
+
クライアントとサーバがともに増加するため、サーバ一台に対するリクエストは変わらず。
+
サーバが全体で受けるリクエストは増加する。
+
+
+
+
+ 実験1:単体サーバへの負荷
+
+
+
+
+
レスポンス速度(縦軸の数値)が低い程良い
+
クライアント(横軸の数値)の増加に対してレスポンス速度の増加がゆるやかなものほどよい
+
+
+
+
+ 単体サーバへの負荷:読み込み負荷
+
+
+
Cassandraに比べJungleが全体的に良い結果を出している。
+
台数が増える毎にJungleとCassandraの平均時間の差は離れている。
+
+
+
+
+
+
+
+ 単体サーバへの負荷:書き込み負荷
+
+
+
読み込み同様JungleがCassandraよりもより結果を出している。
+
読み込み以上にCassandraとの差がついている。
+
+
+
+
+
+
+
+ 実験1の考察
+
+
読み込み、書き込みともにJungleの性能がよく。平均だけみても2倍以上早い部分もある。
+
特に書き込みに関してはクライアントの数が増えるにつれ差が開いている。
+
+
これはJungleが全体的にロックが少ないことが要因としてあげられる。
+
なぜロックが少ないか
+
Jungleは非破壊でデータの保持をするため、読み込みは自由に行える。書き込み時には木のコピーをとりルートノードを入れ替える
+ ときのみロックが発生する。
+
+
+
+
+
+
+ 実験2:分散環境下における負荷
+
+
+
+
+
レスポンス速度(縦軸の数値)が低い程良い
+
クライアントとノードの数(横軸の数値)の増加に対してレスポンス速度の増加がゆるやかなものほどよい
+
+
+
+
+
+ 分散環境下における負荷:読み込み
+
+
+
QUORUM(緑)はCassandraが3ノードに書き込んでいる結果を示す。
+
Jungle同じレスポンスを維持している。
+
Jungleは1秒から5秒をキープ
+
+
+
+
+
+
+ 分散環境下における負荷:書き込み
+
+
+
QUORUM(緑)はCassandraが3ノードに書き込んでいる結果を示す。
+
Jungle同じレスポンスを維持している。
+
Jungleは5.5秒から7.3秒をキープ
+
+
+
+
+
+
+ 実験2の考察
+
+
こちらもJungleがCassadraより良い結果を示した。実験1よりも差がでている。
+
Jungleのグラフが横ばいになっていることに注目したい。
+
+
Jungleはリクエストに対し手元にあるデータを返す。そのためノードの数が増えてもレスポンスの早さを維持できる。
+
Cassandraはデータを持っている数台のノードに読み込みに行くという作業が入るためJungleより遅くなってしまう
+
ただしJungleは全て非同期でデータの伝搬を行うため、データ全体の整合性は落ちる
+
+
+
+
+ まとめ
+
+
本研究では非破壊的木構造Jungleに分散データベースの実装を行った
+
非破壊的木構造における利点を述べ、分散実装を行った。
+
分散実装ではAliceを用いたトポロジー形成により、他ノードへデータ編集のオペレーションを送ることで
+ 実装を行った。
+
データの整合性に関してはJungle側がMergeにより自動的にMergeを行うことで解決することを述べた。
+
Mergeアルゴリズムの1つとして掲示板プログラムにおけるMergeについて設計・実装を行った
+
性能比較の実験のためJungle、Cassandraで利用できる簡易掲示板の作成を行った
+
実験は単体サーバと分散環境下において行い、どちらともCassandraより平均時間が最低でも2倍以上速いという結果を示すことができた。
+
+
+
+
+
+
+ 今後の課題
+
+
Mergeアルゴリズムの設計
+
+ JungleはMergeを使うことで更新データ衝突の問題を解決する。
+ 今回実装した掲示板プログラムにおけるMergeは単純なもの。
+ 他のアプリケーションではどのようにMergeを行うのか考察が必要。
+
+
+
+
+
+
+
+ 今後の課題
+
+
過去のデータの掃除について
+
+ Jungleは非破壊でデータを保持するため過去のメモリの使用量が大きい
+ ある程度の単位で過去のデータの掃除を行いたい
+ そのためにはどのノードがどのデータを持っているかという情報を扱うことが必要
+ どれくらいデータが古くなると掃除を行うか判断が必要
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 分散Key-ValueストアCassandraの特徴
+
+
ring型トポロジーを形成。ring上にはHash値があり、書き込むデータのキーのハッシュ値により書き込むノードを決定
+
1つのデータの複製を最大何とるかというReplication factorの設定がある。
+
Consistency Levelというデータの読み書きの際に何台のノードから読み書きするかを決定できる
+
Consistency LevelにはONE,QUORUM,ALLがある。QUORUMはReplication factorの数/2+1 のノードに読み書きする。
+
+
+
+
+
+
+
+ 実験に使用するサーバの仕様
+
+
+
+ ブレードサーバ
+
+
+ CPU
+ Intel(R) Xeon(R) CPU X5650@2.67GHz
+
+
+ コア数
+ 24
+
+
+ Memory
+ 132GB
+
+
+ OS
+ Fedora 16
+
+
+ HyperVisor
+ なし(物理マシン)
+
+
+
+ 並列環境
+
+
+
+ VMWareクラスタ KVMクラスタ
+
+
+ 台数 48 12
+
+
+ CPU
+ Intel(R) Xeon(R) CPU X5650@2.67GHz
+ Intel(R) Xeon(R) CPU X5650@2.67GHz
+
+
+ コア数
+ 4
+ 4
+
+
+ Memory
+ 8GB
+ 8GB
+
+
+ OS
+ Fedora 16
+ Fedora 16
+
+
+ HyperVisor
+ VMWare ESXi
+ KVM (Linux Fedora 16)
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/slides.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/slides.js Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,91 @@
+var BASE_URL_PREFIX = './';
+
+function addScript( name )
+{
+ var el = document.createElement( 'script' );
+ el.type = 'text/javascript';
+ el.src = BASE_URL_PREFIX + name;
+
+ if(!document.head) // fix for Firefox <4.0
+ document.head = document.getElementsByTagName('head')[0];
+
+ document.head.appendChild( el );
+}
+
+function addStyle( name, media )
+{
+ var el = document.createElement( 'link' );
+ el.rel = 'stylesheet';
+ el.type = 'text/css';
+ el.href = BASE_URL_PREFIX + name;
+ el.media = media;
+
+ if(!document.head) // fix for Firefox <4.0
+ document.head = document.getElementsByTagName('head')[0];
+
+ document.head.appendChild( el );
+}
+
+function addStyleLess( name, media )
+{
+ var el = document.createElement( 'link' );
+ el.rel = 'stylesheet/less';
+ el.type = 'text/css';
+ el.href = BASE_URL_PREFIX + name;
+ el.media = media;
+
+ if(!document.head) // fix for Firefox <4.0
+ document.head = document.getElementsByTagName('head')[0];
+
+ document.head.appendChild( el );
+}
+
+
+function letsGo()
+{
+ var useLess = true;
+
+ /*********
+ * add style sheet links
+ */
+
+ if( useLess )
+ {
+ addStyleLess( 'themes/blank5/projection.css.less', 'screen,projection' );
+ addStyleLess( 'themes/blank5/screen.css.less', 'screen' );
+ addStyleLess( 'themes/blank5/print.css.less', 'print' );
+ }
+ else
+ {
+ addStyle( 'themes/blank5/o/projection.css', 'screen,projection' );
+ addStyle( 'themes/blank5/o/screen.css', 'screen' );
+ addStyle( 'themes/blank5/o/print.css', 'print' );
+ }
+
+ /********
+ * add js libs (less, jquery)
+ */
+
+ if( useLess )
+ addScript( 'js/less-1.1.4.min.js' );
+
+ addScript( 'js/jquery-1.7.min.js' );
+
+ /********
+ * add S6 js code
+ */
+
+ addScript( 'js/jquery.slideshow.js' );
+ addScript( 'js/jquery.slideshow.counter.js' );
+ addScript( 'js/jquery.slideshow.controls.js' );
+ addScript( 'js/jquery.slideshow.footer.js' );
+ addScript( 'js/jquery.slideshow.autoplay.js' );
+ addScript( 'js/jquery.slideshow.ready.js' );
+
+ // todo - check why we can't access Slideshow object here
+ // Slideshow.debug( 'letsGo says hello' );
+ // Slideshow.init();
+}
+
+// letsGo();
+document.addEventListener('DOMContentLoaded', letsGo, false);
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank/o/print.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank/o/print.css Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,33 @@
+/*********************************
* CSS @media print rules (not projection or screen)
*
* (note: this is a less extendend css script, to learn more about less; see lesscss.org)
*/body {
+ font-size: 12pt;
+}
+.slide {
+ page-break-inside: avoid;
+ /********************
* Extra styling for first slide (title/cover slide)
*/
+}
+.slide h1 {
+ page-break-after: avoid;
+}
+.slide ul {
+ page-break-inside: avoid;
+}
+.slide h1 {
+ border-top: 2pt solid gray;
+ border-bottom: 1px dotted silver;
+}
+.slide:first-child {
+ margin-bottom: 3em;
+}
+.slide:first-child h1 {
+ font-size: 200%;
+ border: none;
+ margin: 0.5em 0 0.25em;
+}
+.slide:first-child h3 {
+ margin: 0;
+ padding: 0;
+}
+.slide:first-child h4 {
+ margin: 0 0 0.5em;
+ padding: 0;
+}
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank/o/projection.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank/o/projection.css Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,120 @@
+/*********************************
+ * CSS @media projection rules (not print or screen)
+ *
+ * 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
+ * 2) screen -> outline mode (display all slides-at-once on screen)
+ * 3) print -> print (and print preview)
+ *
+ * toggle between projection/screen (that is, slideshow/outline) mode using t-key
+ *
+ * (note: this is a less extendend css script, to learn more about less; see lesscss.org)
+ */
+html, body, .presentation {
+ margin: 0;
+ padding: 0;
+}
+.slide {
+ position: absolute;
+ top: 0;
+ left: 0;
+ margin: 0;
+ padding: 2% 4% 0% 4%;
+ /* css note: order is => top right bottom left */
+
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ height: 100%;
+ /* css note: lets use border-box; no need to add padding+border to get to 100% */
+
+ overflow-x: hidden;
+ overflow-y: auto;
+ z-index: 2;
+}
+/*****
+ * layout block structure:
+ *
+ * .layout
+ * > #header
+ * > #footer
+ */
+.layout #header, .layout header {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 0.5em;
+ z-index: 1;
+}
+.layout #footer, .layout footer {
+ position: fixed;
+ top: auto;
+ bottom: 0;
+ padding: 1em 0;
+ /* css note: order is => 1st top,bottom; 2nd right,left */
+
+ width: 100%;
+ height: 1em;
+ z-index: 5;
+ /* todo: move font-size and font-style to blank.css */
+ font-size: 100%;
+ font-weight: bold;
+ /* todo: move font-size and font-style to blank.css */
+
+}
+.layout #footer h1, .layout footer h1 {
+ display: block;
+ margin: 0;
+ padding: 0 1em;
+ font-size: 50%;
+}
+.layout #footer h2, .layout footer h2 {
+ display: block;
+ margin: 0;
+ padding: 0 1em;
+ font-size: 50%;
+ font-style: italic;
+}
+/*********************************
+ * general text-alignment classes
+ */
+.left {
+ text-align: left;
+}
+.center {
+ text-align: center;
+}
+.right {
+ text-align: right;
+}
+/*********************************
+ * general _absolute_ font-size classes
+ */
+.small {
+ font-size: 97%;
+}
+.x-small {
+ font-size: 88%;
+}
+.xx-small {
+ font-size: 82%;
+}
+.large {
+ font-size: 103%;
+}
+.x-large {
+ font-size: 112%;
+}
+.xx-large {
+ font-size: 118%;
+}
+/*********************************
+ * general _relative_ font-size classes
+ */
+.smaller {
+ font-size: 82%;
+}
+.larger {
+ font-size: 118%;
+}
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank/o/screen.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank/o/screen.css Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,26 @@
+/*********************************
+ * CSS @media screen (not projection or print)
+ *
+ * 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
+ * 2) screen -> outline mode (display all slides-at-once on screen)
+ * 3) print -> print (and print preview)
+ *
+ * toggle between projection/screen (that is, slideshow/outline) mode using t-key
+ *
+ * (note: this is a less extendend css script, to learn more about less; see lesscss.org)
+ */
+.slide {
+ margin: 1.5em 0 0;
+ border-top: 1px solid #888;
+}
+.slide h1 {
+ border-bottom: 1px solid #AAA;
+}
+.slide:first-child {
+ margin: 0;
+ border: none;
+}
+.slide:first-child h1 {
+ border: none;
+ padding-top: 1.5em;
+}
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank/print.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank/print.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,1 @@
+/*********************************
* CSS @media print rules (not projection or screen)
*/
//////////////////////////////////////
// note: this is a less extendend css script, to learn more about less; see lesscss.org)
body { font-size: 12pt; }
.slide {
display: block !important;
page-break-inside: avoid;
h1 { page-break-after: avoid; }
ul { page-break-inside: avoid; }
h1 { border-top: 2pt solid gray;
border-bottom: 1px dotted silver;
}
/********************
* Extra styling for first slide (title/cover slide)
*/
&:first-child {
margin-bottom: 3em;
h1 { font-size: 200%;
border: none;
margin: 0.5em 0 0.25em; }
h3 { margin: 0; padding: 0;}
h4 { margin: 0 0 0.5em; padding: 0;}
}
}
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank/projection.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank/projection.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,97 @@
+/*********************************
+ * CSS @media projection rules (not print or screen)
+ *
+ * 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
+ * 2) screen -> outline mode (display all slides-at-once on screen)
+ * 3) print -> print (and print preview)
+ *
+ * toggle between projection/screen (that is, slideshow/outline) mode using t-key
+ */
+
+//////////////////////////////////////
+// note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+
+html,
+body,
+.presentation { margin: 0; padding: 0; }
+
+
+.slide { display: none; /* note: only display current slide in projection mode */
+ position: absolute;
+ top: 0; left: 0;
+ margin: 0;
+ padding: 2% 4% 0% 4%; /* css note: order is => top right bottom left */
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%; height: 100%; /* css note: lets use border-box; no need to add padding+border to get to 100% */
+ overflow-x: hidden; overflow-y: auto;
+ z-index: 2;
+ }
+
+.slide.current { display: block; } /* note: only display current slide in projection mode */
+
+
+/*****
+ * layout block structure:
+ *
+ * .layout
+ * > #header
+ * > #footer
+ */
+
+.layout {
+
+ #header, header { position: fixed;
+ top: 0; left: 0;
+ width: 100%; height: 0.5em;
+ z-index: 1;
+ }
+
+ #footer, footer { position: fixed;
+ top: auto; bottom: 0;
+ padding: 1em 0; /* css note: order is => 1st top,bottom; 2nd right,left */
+ width: 100%; height: 1em;
+ z-index: 5;
+
+ /* todo: move font-size and font-style to blank.css */
+ font-size: 100%; font-weight: bold;
+
+ /* todo: move font-size and font-style to blank.css */
+
+ h1 { display: block; margin: 0; padding: 0 1em; font-size: 50%; }
+ h2 { display: block; margin: 0; padding: 0 1em; font-size: 50%; font-style: italic; }
+ }
+}
+
+
+
+/*********************************
+ * general text-alignment classes
+ */
+
+.left { text-align: left; }
+.center { text-align: center; }
+.right { text-align: right; }
+
+
+/*********************************
+ * general _absolute_ font-size classes
+ */
+
+.small { font-size: 97%; }
+.x-small { font-size: 88%; }
+.xx-small { font-size: 82%; }
+
+.large { font-size: 103%; }
+.x-large { font-size: 112%; }
+.xx-large { font-size: 118%; }
+
+/*********************************
+ * general _relative_ font-size classes
+ */
+
+.smaller { font-size: 82%; }
+.larger { font-size: 118%; }
+
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank/screen.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank/screen.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,31 @@
+/*********************************
+ * CSS @media screen (not projection or print)
+ *
+ * 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
+ * 2) screen -> outline mode (display all slides-at-once on screen)
+ * 3) print -> print (and print preview)
+ *
+ * toggle between projection/screen (that is, slideshow/outline) mode using t-key
+ */
+
+//////////////////////////////////////
+// note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+.slide
+{
+ display: block !important;
+ margin: 1.5em 0 0;
+ border-top: 1px solid #888;
+
+ h1 { border-bottom: 1px solid #AAA; }
+
+
+ &:first-child {
+ margin: 0;
+ border: none;
+
+ h1 {
+ border: none;
+ padding-top: 1.5em; }
+ }
+}
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank5/print.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank5/print.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,35 @@
+/*********************************
+ * CSS @media print rules (not projection or screen)
+ */
+
+//////////////////////////////////////
+// note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+body { font-size: 12pt; }
+
+
+.slide {
+ display: block !important;
+ page-break-inside: avoid;
+
+ h1 { page-break-after: avoid; }
+ ul { page-break-inside: avoid; }
+
+ h1 { border-top: 2pt solid gray;
+ border-bottom: 1px dotted silver;
+ }
+
+ /********************
+ * Extra styling for first slide (title/cover slide)
+ */
+
+ &:first-child {
+ margin-bottom: 3em;
+
+ h1 { font-size: 200%;
+ border: none;
+ margin: 0.5em 0 0.25em; }
+ h3 { margin: 0; padding: 0;}
+ h4 { margin: 0 0 0.5em; padding: 0;}
+ }
+}
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank5/projection.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank5/projection.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,307 @@
+/*********************************
+ * CSS @media projection rules (not print or screen)
+ *
+ * 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
+ * 2) screen -> outline mode (display all slides-at-once on screen)
+ * 3) print -> print (and print preview)
+ *
+ * toggle between projection/screen (that is, slideshow/outline) mode using t-key
+ */
+
+//////////////////////////////////////
+// note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+
+html {
+ height: 100%;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+
+ height: 100%;
+ min-height: 740px;
+
+ overflow-x: hidden;
+ overflow-y: auto;
+
+ background: rgb(215, 215, 215);
+ background: -o-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+ background: -moz-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+ background: -webkit-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+}
+
+.presentation {
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+
+ position: absolute;
+ -webkit-transform: translate3d(0, 0, 0);
+}
+
+.slide {
+ display: block;
+
+ position: absolute;
+ overflow: hidden;
+
+ width: 900px;
+ height: 700px;
+
+ left: 50%;
+ top: 50%;
+
+ margin-left: -450px;
+ margin-top: -350px;
+
+ padding: 40px 60px;
+
+ box-sizing: border-box; /* css note: lets use border-box; no need to add padding+border to get to 100% */
+ -o-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+
+ border-radius: 10px;
+ -o-border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+
+ background-color: white;
+
+ box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
+ border: 1px solid rgba(0, 0, 0, .3);
+
+ transition: transform .3s ease-out;
+ -o-transition: -o-transform .3s ease-out;
+ -moz-transition: -moz-transform .3s ease-out;
+ -webkit-transition: -webkit-transform .3s ease-out;
+}
+
+
+.slide {
+ display: none;
+}
+
+.slide.far-past {
+ display: block;
+ transform: translate(-2040px);
+ -o-transform: translate(-2040px);
+ -moz-transform: translate(-2040px);
+ -webkit-transform: translate3d(-2040px, 0, 0);
+}
+.slide.past {
+ display: block;
+ transform: translate(-1020px);
+ -o-transform: translate(-1020px);
+ -moz-transform: translate(-1020px);
+ -webkit-transform: translate3d(-1020px, 0, 0);
+}
+
+.slide.current {
+ display: block;
+ transform: translate(0);
+ -o-transform: translate(0);
+ -moz-transform: translate(0);
+ -webkit-transform: translate3d(0, 0, 0);
+}
+
+.slide.next {
+ display: block;
+ transform: translate(1020px);
+ -o-transform: translate(1020px);
+ -moz-transform: translate(1020px);
+ -webkit-transform: translate3d(1020px, 0, 0);
+}
+
+.slide.far-next {
+ display: block;
+ transform: translate(2040px);
+ -o-transform: translate(2040px);
+ -moz-transform: translate(2040px);
+ -webkit-transform: translate3d(2040px, 0, 0);
+}
+
+
+/***********
+ * styles
+ */
+
+.slide h1 { // use h1 for title
+ margin-top: 200px;
+}
+
+
+.slide h2 { // use h2 for section title/segue
+ position: absolute;
+ bottom: 150px;
+}
+
+.slide.fill h3 {
+ background: rgba(255, 255, 255, .75);
+ padding-top: .2em;
+ padding-bottom: .3em;
+ margin-top: -.2em;
+ margin-left: -60px;
+ padding-left: 60px;
+ margin-right: -60px;
+ padding-right: 60px;
+}
+
+.slide iframe {
+ width: 100%;
+
+ height: 620px;
+
+ background: white;
+ border: 1px solid rgb(192, 192, 192);
+ margin: -1px;
+ /*box-shadow: inset 0 2px 6px rgba(0, 0, 0, .1);*/
+
+ overflow: hidden;
+}
+
+.slide h3 + iframe {
+ margin-top: 40px;
+ height: 540px;
+}
+
+.slide.fill iframe {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+
+ border: 0;
+ margin: 0;
+
+ border-radius: 10px;
+ -o-border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+
+ z-index: -1;
+}
+
+.slide.fill img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ min-width: 100%;
+ min-height: 100%;
+
+ border-radius: 10px;
+ -o-border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+
+ z-index: -1;
+}
+
+
+.slide img.centered {
+ margin: 0 auto;
+ display: block;
+}
+
+
+table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+th {
+ text-align: left;
+}
+
+td,
+th {
+ border: 1px solid rgb(224, 224, 224);
+ padding: 5px 10px;
+ vertical-align: top;
+}
+
+ul {
+ list-style-type: square;
+}
+
+.source {
+ position: absolute;
+ left: 60px;
+ top: 644px;
+ padding-right: 175px;
+
+ font-size: 15px;
+ letter-spacing: 0;
+ line-height: 18px;
+}
+
+q {
+ font-size: 300%; // 60px
+ display: block;
+ margin-left: 1em;
+}
+
+q::before {
+ content: '“';
+ color: rgb(192, 192, 192);
+ position: absolute;
+ display: inline-block;
+ margin-left: -1.1em;
+ width: 1em;
+ text-align: right;
+}
+
+q::after {
+ content: '”';
+ color: rgb(192, 192, 192);
+}
+
+
+div.author {
+ text-align: right;
+
+ margin-top: 20px;
+ margin-right: 150px;
+
+ font-size: 200%; // 40px;
+}
+
+div.author::before {
+ content: '—';
+}
+
+
+/***********
+ * smaller
+ */
+
+.slide.smaller {
+
+ p, ul, table { font-size: 80%; } // 20px
+
+ pre { font-size: 60%; } // 15px
+
+ q { font-size: 200%; } // 40px
+}
+
+
+
+
+/*********************************
+ * general text-alignment classes
+ */
+
+.left { text-align: left; }
+.center { text-align: center; }
+.right { text-align: right; }
+
+
+/*********************************
+ * general color classes
+ */
+
+.white { color: white; }
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/blank5/screen.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/blank5/screen.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,31 @@
+/*********************************
+ * CSS @media screen (not projection or print)
+ *
+ * 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
+ * 2) screen -> outline mode (display all slides-at-once on screen)
+ * 3) print -> print (and print preview)
+ *
+ * toggle between projection/screen (that is, slideshow/outline) mode using t-key
+ */
+
+//////////////////////////////////////
+// note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+.slide
+{
+ display: block !important;
+ margin: 1.5em 0 0;
+ border-top: 1px solid #888;
+
+ h1 { border-bottom: 1px solid #AAA; }
+
+
+ &:first-child {
+ margin: 0;
+ border: none;
+
+ h1 {
+ border: none;
+ padding-top: 1.5em; }
+ }
+}
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/g5/print.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/g5/print.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,35 @@
+/*********************************
+ * CSS @media print rules (not projection or screen)
+ */
+
+//////////////////////////////////////
+// note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+body { font-size: 12pt; }
+
+
+.slide {
+ display: block !important;
+ page-break-inside: avoid;
+
+ h1 { page-break-after: avoid; }
+ ul { page-break-inside: avoid; }
+
+ h1 { border-top: 2pt solid gray;
+ border-bottom: 1px dotted silver;
+ }
+
+ /********************
+ * Extra styling for first slide (title/cover slide)
+ */
+
+ &:first-child {
+ margin-bottom: 3em;
+
+ h1 { font-size: 200%;
+ border: none;
+ margin: 0.5em 0 0.25em; }
+ h3 { margin: 0; padding: 0;}
+ h4 { margin: 0 0 0.5em; padding: 0;}
+ }
+}
\ No newline at end of file
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/g5/projection.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/g5/projection.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,307 @@
+/*********************************
+ * CSS @media projection rules (not print or screen)
+ *
+ * 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
+ * 2) screen -> outline mode (display all slides-at-once on screen)
+ * 3) print -> print (and print preview)
+ *
+ * toggle between projection/screen (that is, slideshow/outline) mode using t-key
+ */
+
+//////////////////////////////////////
+// note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+
+html {
+ height: 100%;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+
+ height: 100%;
+ min-height: 740px;
+
+ overflow-x: hidden;
+ overflow-y: auto;
+
+ background: rgb(215, 215, 215);
+ background: -o-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+ background: -moz-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+ background: -webkit-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+}
+
+.presentation {
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+
+ position: absolute;
+ -webkit-transform: translate3d(0, 0, 0);
+}
+
+.slide {
+ display: block;
+
+ position: absolute;
+ overflow: hidden;
+
+ width: 900px;
+ height: 700px;
+
+ left: 50%;
+ top: 50%;
+
+ margin-left: -450px;
+ margin-top: -350px;
+
+ padding: 40px 60px;
+
+ box-sizing: border-box; /* css note: lets use border-box; no need to add padding+border to get to 100% */
+ -o-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+
+ border-radius: 10px;
+ -o-border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+
+ background-color: white;
+
+ box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
+ border: 1px solid rgba(0, 0, 0, .3);
+
+ transition: transform .3s ease-out;
+ -o-transition: -o-transform .3s ease-out;
+ -moz-transition: -moz-transform .3s ease-out;
+ -webkit-transition: -webkit-transform .3s ease-out;
+}
+
+
+.slide {
+ display: none;
+}
+
+.slide.far-past {
+ display: block;
+ transform: translate(-2040px);
+ -o-transform: translate(-2040px);
+ -moz-transform: translate(-2040px);
+ -webkit-transform: translate3d(-2040px, 0, 0);
+}
+.slide.past {
+ display: block;
+ transform: translate(-1020px);
+ -o-transform: translate(-1020px);
+ -moz-transform: translate(-1020px);
+ -webkit-transform: translate3d(-1020px, 0, 0);
+}
+
+.slide.current {
+ display: block;
+ transform: translate(0);
+ -o-transform: translate(0);
+ -moz-transform: translate(0);
+ -webkit-transform: translate3d(0, 0, 0);
+}
+
+.slide.next {
+ display: block;
+ transform: translate(1020px);
+ -o-transform: translate(1020px);
+ -moz-transform: translate(1020px);
+ -webkit-transform: translate3d(1020px, 0, 0);
+}
+
+.slide.far-next {
+ display: block;
+ transform: translate(2040px);
+ -o-transform: translate(2040px);
+ -moz-transform: translate(2040px);
+ -webkit-transform: translate3d(2040px, 0, 0);
+}
+
+
+/***********
+ * styles
+ */
+
+.slide h1 { // use h1 for title
+ margin-top: 200px;
+}
+
+
+.slide h2 { // use h2 for section title/segue
+ position: absolute;
+ bottom: 150px;
+}
+
+.slide.fill h3 {
+ background: rgba(255, 255, 255, .75);
+ padding-top: .2em;
+ padding-bottom: .3em;
+ margin-top: -.2em;
+ margin-left: -60px;
+ padding-left: 60px;
+ margin-right: -60px;
+ padding-right: 60px;
+}
+
+.slide iframe {
+ width: 100%;
+
+ height: 620px;
+
+ background: white;
+ border: 1px solid rgb(192, 192, 192);
+ margin: -1px;
+ /*box-shadow: inset 0 2px 6px rgba(0, 0, 0, .1);*/
+
+ overflow: hidden;
+}
+
+.slide h3 + iframe {
+ margin-top: 40px;
+ height: 540px;
+}
+
+.slide.fill iframe {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+
+ border: 0;
+ margin: 0;
+
+ border-radius: 10px;
+ -o-border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+
+ z-index: -1;
+}
+
+.slide.fill img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ min-width: 100%;
+ min-height: 100%;
+
+ border-radius: 10px;
+ -o-border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+
+ z-index: -1;
+}
+
+
+.slide img.centered {
+ margin: 0 auto;
+ display: block;
+}
+
+
+table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+th {
+ text-align: left;
+}
+
+td,
+th {
+ border: 1px solid rgb(224, 224, 224);
+ padding: 5px 10px;
+ vertical-align: top;
+}
+
+ul {
+ list-style-type: square;
+}
+
+.source {
+ position: absolute;
+ left: 60px;
+ top: 644px;
+ padding-right: 175px;
+
+ font-size: 15px;
+ letter-spacing: 0;
+ line-height: 18px;
+}
+
+q {
+ font-size: 300%; // 60px
+ display: block;
+ margin-left: 1em;
+}
+
+q::before {
+ content: '“';
+ color: rgb(192, 192, 192);
+ position: absolute;
+ display: inline-block;
+ margin-left: -1.1em;
+ width: 1em;
+ text-align: right;
+}
+
+q::after {
+ content: '”';
+ color: rgb(192, 192, 192);
+}
+
+
+div.author {
+ text-align: right;
+
+ margin-top: 20px;
+ margin-right: 150px;
+
+ font-size: 200%; // 40px;
+}
+
+div.author::before {
+ content: '—';
+}
+
+
+/***********
+ * smaller
+ */
+
+.slide.smaller {
+
+ p, ul, table { font-size: 80%; } // 20px
+
+ pre { font-size: 60%; } // 15px
+
+ q { font-size: 200%; } // 40px
+}
+
+
+
+
+/*********************************
+ * general text-alignment classes
+ */
+
+.left { text-align: left; }
+.center { text-align: center; }
+.right { text-align: right; }
+
+
+/*********************************
+ * general color classes
+ */
+
+.white { color: white; }
diff -r 46a09e9020a3 -r f77de7e7fb66 slides/themes/g5/screen.css.less
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/themes/g5/screen.css.less Fri Feb 06 01:26:13 2015 +0900
@@ -0,0 +1,31 @@
+/*********************************
+ * CSS @media screen (not projection or print)
+ *
+ * 1) projection -> slideshow mode (display one slide at-a-time; hide all others)
+ * 2) screen -> outline mode (display all slides-at-once on screen)
+ * 3) print -> print (and print preview)
+ *
+ * toggle between projection/screen (that is, slideshow/outline) mode using t-key
+ */
+
+//////////////////////////////////////
+// note: this is a less extendend css script, to learn more about less; see lesscss.org)
+
+.slide
+{
+ display: block !important;
+ margin: 1.5em 0 0;
+ border-top: 1px solid #888;
+
+ h1 { border-bottom: 1px solid #AAA; }
+
+
+ &:first-child {
+ margin: 0;
+ border: none;
+
+ h1 {
+ border: none;
+ padding-top: 1.5em; }
+ }
+}
\ No newline at end of file