twb 0.0.33 → 0.0.34
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/twb.rb +2 -1
- data/lib/twb/docdashboard.rb +34 -35
- data/lib/twb/util/hashtohtml.rb +1 -1
- data/lib/twb/util/htmllistcollapsible.rb +0 -12
- data/lib/twb/util/xraydashboards.rb +553 -0
- data/lib/twb/workbook.rb +9 -2
- data/test/testDashboardXRay.rb +49 -0
- data/test/testDocDashboard.rb +0 -1
- data/test/testHTMLList.rb +3 -1
- data/{testTwbWrite.rb → test/testTwbWrite.rb} +4 -2
- data/twb-0.0.33.gem +0 -0
- metadata +4 -9
- data/test/No Content.injected.twb +0 -82
- data/test/No Dashboards.injected.twb +0 -618
- data/test/Special Documentation.html +0 -198
- data/test/TableauDocInlineCSS.html +0 -165
- data/test/Web Page Dashboards.injected.twb +0 -1361
- data/test/collapsibleList.html +0 -198
- data/testTwbGem.rb +0 -67
data/lib/twb/workbook.rb
CHANGED
@@ -31,7 +31,6 @@ module Twb
|
|
31
31
|
# The Workbook's file name
|
32
32
|
#
|
33
33
|
def initialize twbWithDir
|
34
|
-
file = File.new(twbWithDir)
|
35
34
|
@name = File.basename(twbWithDir)
|
36
35
|
@dir = File.dirname(File.expand_path(twbWithDir))
|
37
36
|
@modtime = File.new(twbWithDir).mtime
|
@@ -156,13 +155,21 @@ module Twb
|
|
156
155
|
end
|
157
156
|
end
|
158
157
|
|
158
|
+
def ensureWindowsNodeExists
|
159
|
+
if @windowsnode.nil?
|
160
|
+
@windowsnode = Nokogiri::XML::Node.new "windows", @ndoc
|
161
|
+
@dataSources.add_next_sibling(@windowsnode)
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
159
165
|
# Add a new Documentation Dashboard to the TWB.
|
160
166
|
# Ensure that the TWB has a <dashboards> node (it may not).
|
161
167
|
# Make sure that the new Doc Dashboard's name doesn't conflict with an existing Dashboard - increment the incoming name if necessary.
|
162
168
|
# Add Doc Dashboard's <dashboard> and <window> nodes to the TWB; there's always a <windows> node in the TWB.
|
163
169
|
def addDocDashboard docDashboard
|
164
170
|
ensureDashboardsNodeExists
|
165
|
-
|
171
|
+
ensureWindowsNodeExists
|
172
|
+
title = getNewDashboardTitle(docDashboard.title)
|
166
173
|
docDashboard.title=(title) unless title == docDashboard.title
|
167
174
|
@dashesNode.add_child(docDashboard.dashnode)
|
168
175
|
@windowsnode.add_child(docDashboard.winnode)
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# testTwbGem.rb - this Ruby script Copyright 2013, 2014 Christopher Gerrard
|
2
|
+
|
3
|
+
require 'nokogiri'
|
4
|
+
|
5
|
+
#require 'twb'
|
6
|
+
require 'C:\tech\Tableau\tools\Ruby\gems\twb\lib\twb.rb'
|
7
|
+
require "test/unit"
|
8
|
+
|
9
|
+
system "cls"
|
10
|
+
|
11
|
+
class TestDashboardXRays < Test::Unit::TestCase
|
12
|
+
|
13
|
+
def test_create
|
14
|
+
print "\n\n\n == #{'Web Page Dashboards.twb'}"
|
15
|
+
twb = Twb::Workbook.new('Web Page Dashboards.twb')
|
16
|
+
puts " name :: #{twb.name}"
|
17
|
+
puts " class :: #{twb.class}"
|
18
|
+
puts " workbook?:: #{twb.instance_of?(Twb::Workbook)}"
|
19
|
+
xrayer = Twb::DashboardXRayer.new(twb)
|
20
|
+
assert(!xrayer.nil?)
|
21
|
+
puts "xrayer.methods\n=============\n#{xrayer.methods}"
|
22
|
+
xrays = xrayer.xray
|
23
|
+
assert(!xrays.nil?)
|
24
|
+
puts "\n\nDashboards:: #{xrays.keys}"
|
25
|
+
xrays.each do |dash, html|
|
26
|
+
htmlfilename = twb.name + '.' + dash.to_s
|
27
|
+
saveHTML(htmlfilename, html)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def saveHTML(htmlfilename, html)
|
32
|
+
begin
|
33
|
+
puts "\n\n htmlfilename :: #{htmlfilename}"
|
34
|
+
htmlfile = File.open(htmlfilename + '.html', 'w')
|
35
|
+
htmlfile.puts html
|
36
|
+
htmlfile.close
|
37
|
+
rescue
|
38
|
+
cleanfilename = sanitize(htmlfilename) + '.html'
|
39
|
+
puts " :: #{cleanfilename} \n\n"
|
40
|
+
saveHTML(cleanfilename, html)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def sanitize(str)
|
45
|
+
puts " Sanitize :: #{str}"
|
46
|
+
cleanStr = str.gsub(/[^a-z0-9\-]+/i, ' ')
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/test/testDocDashboard.rb
CHANGED
data/test/testHTMLList.rb
CHANGED
@@ -8,6 +8,8 @@ class TestHTMLList < Test::Unit::TestCase
|
|
8
8
|
def test_create
|
9
9
|
struct = {'a' => {'eh?'=>nil},
|
10
10
|
'b' => ['bee', 'be'],
|
11
|
+
'empty array' => [],
|
12
|
+
'nil value' => [],
|
11
13
|
'c' => {'sea'=>['ocean','mer'],
|
12
14
|
'see'=>['vision','sight','lookers']
|
13
15
|
},
|
@@ -17,7 +19,7 @@ class TestHTMLList < Test::Unit::TestCase
|
|
17
19
|
}
|
18
20
|
doc = Twb::HTMLListCollapsible.new(struct)
|
19
21
|
doc.title="Important Stuff to See"
|
20
|
-
doc.write('
|
22
|
+
doc.write('test.html')
|
21
23
|
end
|
22
24
|
|
23
25
|
end
|
@@ -6,9 +6,11 @@ require 'nokogiri'
|
|
6
6
|
require 'C:\tech\Tableau\tools\Ruby\gems\twb\lib\twb.rb'
|
7
7
|
|
8
8
|
def processTWB twbWithDir
|
9
|
-
print "\n\n\n== #{twbWithDir}"
|
9
|
+
print "\n\n\n == #{twbWithDir}"
|
10
10
|
twb = Twb::Workbook.new twbWithDir
|
11
|
-
puts " :: #{twb.name}"
|
11
|
+
puts " name :: #{twb.name}"
|
12
|
+
puts " class :: #{twb.class}"
|
13
|
+
puts " workbook?:: #{twb.instance_of?(Twb::Workbook)}"
|
12
14
|
twb.writeAppend '.Documented'
|
13
15
|
twb.writeAppend '....MultiLeadingPeriods'
|
14
16
|
end
|
data/twb-0.0.33.gem
ADDED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.34
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -34,28 +34,23 @@ files:
|
|
34
34
|
- lib/twb/util/hashtohtml.rb
|
35
35
|
- lib/twb/util/htmllistcollapsible.rb
|
36
36
|
- lib/twb/util/UpLeftArrowsNav.png
|
37
|
+
- lib/twb/util/xraydashboards.rb
|
37
38
|
- lib/twb/window.rb
|
38
39
|
- lib/twb/workbook.rb
|
39
40
|
- lib/twb/worksheet.rb
|
40
41
|
- lib/twb.rb
|
41
42
|
- LICENSE.txt
|
42
43
|
- README.txt
|
43
|
-
- test/collapsibleList.html
|
44
|
-
- test/No Content.injected.twb
|
45
44
|
- test/No Content.twb
|
46
|
-
- test/No Dashboards.injected.twb
|
47
45
|
- test/No Dashboards.twb
|
48
|
-
- test/
|
49
|
-
- test/TableauDocInlineCSS.html
|
46
|
+
- test/testDashboardXRay.rb
|
50
47
|
- test/testDocDashboard.rb
|
51
48
|
- test/testDocDashboardCreate.rb
|
52
49
|
- test/testHTMLList.rb
|
53
50
|
- test/testTwbGem.rb
|
51
|
+
- test/testTwbWrite.rb
|
54
52
|
- test/UpLeftArrowsNav.png
|
55
|
-
- test/Web Page Dashboards.injected.twb
|
56
53
|
- test/Web Page Dashboards.twb
|
57
|
-
- testTwbGem.rb
|
58
|
-
- testTwbWrite.rb
|
59
54
|
- twb-0.0.32.gem
|
60
55
|
- twb-0.0.33.gem
|
61
56
|
- twb.gemspec
|
@@ -1,82 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<workbook xmlns:user="http://www.tableausoftware.com/xml/user" source-platform="win" version="8.3">
|
3
|
-
<!-- build 8300.15.0219.2230 -->
|
4
|
-
<preferences>
|
5
|
-
</preferences>
|
6
|
-
<datasources>
|
7
|
-
</datasources><dashboards><dashboard name="Injected Documentation Dashboard">
|
8
|
-
<style/>
|
9
|
-
<zones>
|
10
|
-
<zone h="100000" id="3" param="vert" type="layout-flow" w="100000" x="0" y="0">
|
11
|
-
<zone h="6221" id="1" type="title" w="100000" x="0" y="0"/>
|
12
|
-
<zone h="93157" id="4" param="horz" type="layout-flow" w="100000" x="0" y="6221">
|
13
|
-
<zone forceUpdate="" h="93157" id="6" param="http://localhost:8808/doc_root/nokogiri-1.5.5-x86-mingw32/rdoc/Nokogiri/XML/Node.html#method-i-add_next_sibling" type="web" w="99655" x="0" y="6221"/>
|
14
|
-
</zone>
|
15
|
-
</zone>
|
16
|
-
</zones>
|
17
|
-
</dashboard></dashboards>
|
18
|
-
<worksheets>
|
19
|
-
<worksheet name="Sheet 1">
|
20
|
-
<table>
|
21
|
-
<view>
|
22
|
-
<datasources>
|
23
|
-
</datasources>
|
24
|
-
<aggregation value="true"/>
|
25
|
-
</view>
|
26
|
-
<style>
|
27
|
-
</style>
|
28
|
-
<panes>
|
29
|
-
<pane>
|
30
|
-
<view>
|
31
|
-
<breakdown value="auto"/>
|
32
|
-
</view>
|
33
|
-
<mark class="Automatic"/>
|
34
|
-
</pane>
|
35
|
-
</panes>
|
36
|
-
<rows/>
|
37
|
-
<cols/>
|
38
|
-
</table>
|
39
|
-
</worksheet>
|
40
|
-
</worksheets>
|
41
|
-
<windows>
|
42
|
-
<window class="schema" source-height="-1"/>
|
43
|
-
<window auto-hidden="0" class="worksheet" maximized="1" name="Sheet 1">
|
44
|
-
<cards>
|
45
|
-
<edge name="left">
|
46
|
-
<strip size="160">
|
47
|
-
<card type="pages"/>
|
48
|
-
<card type="filters"/>
|
49
|
-
<card type="marks"/>
|
50
|
-
</strip>
|
51
|
-
</edge>
|
52
|
-
<edge name="top">
|
53
|
-
<strip size="31">
|
54
|
-
<card type="columns"/>
|
55
|
-
</strip>
|
56
|
-
<strip size="31">
|
57
|
-
<card type="rows"/>
|
58
|
-
</strip>
|
59
|
-
</edge>
|
60
|
-
</cards>
|
61
|
-
</window>
|
62
|
-
<window auto-hidden="0" class="dashboard" maximized="1" name="Injected Documentation Dashboard">
|
63
|
-
<zones>
|
64
|
-
<zone h="6221" id="1" name="" type="title" w="100000" x="0" y="0"/>
|
65
|
-
<zone forceUpdate="" h="93157" id="5" name="" param="http://localhost:8808/doc_root/nokogiri-1.5.5-x86-mingw32/rdoc/Nokogiri/XML/Node.html#method-i-add_next_sibling" type="web" w="50000" x="50000" y="6221"/>
|
66
|
-
</zones>
|
67
|
-
</window></windows>
|
68
|
-
<thumbnails>
|
69
|
-
<thumbnail height="144" name="Sheet 1" width="174">
|
70
|
-
iVBORw0KGgoAAAANSUhEUgAAAK4AAACQCAYAAACRfFAzAAAACXBIWXMAAA7DAAAOwwHHb6hk
|
71
|
-
AAABmUlEQVR4nO3SQQ0AIBDAMMC/58MDH7KkVbDH9szMgpjzOwBeGJck45JkXJKMS5JxSTIu
|
72
|
-
ScYlybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck45Jk
|
73
|
-
XJKMS5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuScYl
|
74
|
-
ybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKM
|
75
|
-
S5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuScYlybgk
|
76
|
-
GZck45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKMS5Jx
|
77
|
-
STIuScYlybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuScYlybgkGZck
|
78
|
-
45JkXJKMS5JxSTIuScYlybgkGZck45JkXJKMS5JxSTIuSRePYgUc7kJNEQAAAABJRU5ErkJg
|
79
|
-
gg==
|
80
|
-
</thumbnail>
|
81
|
-
</thumbnails>
|
82
|
-
</workbook>
|
@@ -1,618 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<workbook xmlns:user="http://www.tableausoftware.com/xml/user" source-platform="win" version="8.3">
|
3
|
-
<!-- build 8300.15.0219.2230 -->
|
4
|
-
<preferences>
|
5
|
-
</preferences>
|
6
|
-
<datasources>
|
7
|
-
<datasource inline="true" name="Sample - Coffee Chain (Access)" version="8.3">
|
8
|
-
<connection authentication="no" class="msaccess" driver="" filename="C:\Users\CTG\Documents\My Tableau Repository\Datasources\Sample - Coffee Chain.mdb" mdwpath="" tablename="factTable">
|
9
|
-
<relation join="inner" type="join">
|
10
|
-
<clause type="join">
|
11
|
-
<expression op="=">
|
12
|
-
<expression op="[factTable].[ProductId]">
|
13
|
-
</expression>
|
14
|
-
<expression op="[Product].[ProductId]">
|
15
|
-
</expression>
|
16
|
-
</expression>
|
17
|
-
</clause>
|
18
|
-
<relation join="inner" type="join">
|
19
|
-
<clause type="join">
|
20
|
-
<expression op="=">
|
21
|
-
<expression op="[factTable].[Area Code]">
|
22
|
-
</expression>
|
23
|
-
<expression op="[Location].[Area Code]">
|
24
|
-
</expression>
|
25
|
-
</expression>
|
26
|
-
</clause>
|
27
|
-
<relation name="factTable" table="[factTable]" type="table"/>
|
28
|
-
<relation name="Location" table="[Location]" type="table"/>
|
29
|
-
</relation>
|
30
|
-
<relation name="Product" table="[Product]" type="table"/>
|
31
|
-
</relation>
|
32
|
-
<cols>
|
33
|
-
<map key="[Area Code]" value="[factTable].[Area Code]"/>
|
34
|
-
<map key="[Budget COGS]" value="[factTable].[Budget COGS]"/>
|
35
|
-
<map key="[Budget Margin]" value="[factTable].[Budget Margin]"/>
|
36
|
-
<map key="[Budget Profit]" value="[factTable].[Budget Profit]"/>
|
37
|
-
<map key="[Budget Sales]" value="[factTable].[Budget Sales]"/>
|
38
|
-
<map key="[COGS]" value="[factTable].[COGS]"/>
|
39
|
-
<map key="[Date]" value="[factTable].[Date]"/>
|
40
|
-
<map key="[Inventory]" value="[factTable].[Inventory]"/>
|
41
|
-
<map key="[Location_Area Code]" value="[Location].[Area Code]"/>
|
42
|
-
<map key="[Margin]" value="[factTable].[Margin]"/>
|
43
|
-
<map key="[Market Size]" value="[Location].[Market Size]"/>
|
44
|
-
<map key="[Market]" value="[Location].[Market]"/>
|
45
|
-
<map key="[Marketing]" value="[factTable].[Marketing]"/>
|
46
|
-
<map key="[Product Line]" value="[Product].[Product Line]"/>
|
47
|
-
<map key="[Product Type]" value="[Product].[Product Type]"/>
|
48
|
-
<map key="[ProductId]" value="[factTable].[ProductId]"/>
|
49
|
-
<map key="[Product]" value="[Product].[Product]"/>
|
50
|
-
<map key="[Product_ProductId]" value="[Product].[ProductId]"/>
|
51
|
-
<map key="[Profit]" value="[factTable].[Profit]"/>
|
52
|
-
<map key="[Sales]" value="[factTable].[Sales]"/>
|
53
|
-
<map key="[State]" value="[Location].[State]"/>
|
54
|
-
<map key="[Total Expenses]" value="[factTable].[Total Expenses]"/>
|
55
|
-
<map key="[Type]" value="[Product].[Type]"/>
|
56
|
-
</cols>
|
57
|
-
<metadata-records>
|
58
|
-
<metadata-record class="column">
|
59
|
-
<remote-name>Area Code</remote-name>
|
60
|
-
<remote-type>2</remote-type>
|
61
|
-
<local-name>[Area Code]</local-name>
|
62
|
-
<parent-name>[factTable]</parent-name>
|
63
|
-
<remote-alias>Area Code</remote-alias>
|
64
|
-
<ordinal>12</ordinal>
|
65
|
-
<local-type>integer</local-type>
|
66
|
-
<aggregation>Sum</aggregation>
|
67
|
-
<precision>5</precision>
|
68
|
-
<contains-null>true</contains-null>
|
69
|
-
<attributes>
|
70
|
-
<attribute datatype="string" name="DebugRemoteType">"I2"</attribute>
|
71
|
-
</attributes>
|
72
|
-
</metadata-record>
|
73
|
-
<metadata-record class="column">
|
74
|
-
<remote-name>Budget COGS</remote-name>
|
75
|
-
<remote-type>5</remote-type>
|
76
|
-
<local-name>[Budget COGS]</local-name>
|
77
|
-
<parent-name>[factTable]</parent-name>
|
78
|
-
<remote-alias>Budget COGS</remote-alias>
|
79
|
-
<ordinal>9</ordinal>
|
80
|
-
<local-type>real</local-type>
|
81
|
-
<aggregation>Sum</aggregation>
|
82
|
-
<precision>15</precision>
|
83
|
-
<contains-null>true</contains-null>
|
84
|
-
<attributes>
|
85
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
86
|
-
</attributes>
|
87
|
-
</metadata-record>
|
88
|
-
<metadata-record class="column">
|
89
|
-
<remote-name>Budget Margin</remote-name>
|
90
|
-
<remote-type>5</remote-type>
|
91
|
-
<local-name>[Budget Margin]</local-name>
|
92
|
-
<parent-name>[factTable]</parent-name>
|
93
|
-
<remote-alias>Budget Margin</remote-alias>
|
94
|
-
<ordinal>10</ordinal>
|
95
|
-
<local-type>real</local-type>
|
96
|
-
<aggregation>Sum</aggregation>
|
97
|
-
<precision>15</precision>
|
98
|
-
<contains-null>true</contains-null>
|
99
|
-
<attributes>
|
100
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
101
|
-
</attributes>
|
102
|
-
</metadata-record>
|
103
|
-
<metadata-record class="column">
|
104
|
-
<remote-name>Budget Profit</remote-name>
|
105
|
-
<remote-type>5</remote-type>
|
106
|
-
<local-name>[Budget Profit]</local-name>
|
107
|
-
<parent-name>[factTable]</parent-name>
|
108
|
-
<remote-alias>Budget Profit</remote-alias>
|
109
|
-
<ordinal>8</ordinal>
|
110
|
-
<local-type>real</local-type>
|
111
|
-
<aggregation>Sum</aggregation>
|
112
|
-
<precision>15</precision>
|
113
|
-
<contains-null>true</contains-null>
|
114
|
-
<attributes>
|
115
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
116
|
-
</attributes>
|
117
|
-
</metadata-record>
|
118
|
-
<metadata-record class="column">
|
119
|
-
<remote-name>Budget Sales</remote-name>
|
120
|
-
<remote-type>5</remote-type>
|
121
|
-
<local-name>[Budget Sales]</local-name>
|
122
|
-
<parent-name>[factTable]</parent-name>
|
123
|
-
<remote-alias>Budget Sales</remote-alias>
|
124
|
-
<ordinal>11</ordinal>
|
125
|
-
<local-type>real</local-type>
|
126
|
-
<aggregation>Sum</aggregation>
|
127
|
-
<precision>15</precision>
|
128
|
-
<contains-null>true</contains-null>
|
129
|
-
<attributes>
|
130
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
131
|
-
</attributes>
|
132
|
-
</metadata-record>
|
133
|
-
<metadata-record class="column">
|
134
|
-
<remote-name>COGS</remote-name>
|
135
|
-
<remote-type>5</remote-type>
|
136
|
-
<local-name>[COGS]</local-name>
|
137
|
-
<parent-name>[factTable]</parent-name>
|
138
|
-
<remote-alias>COGS</remote-alias>
|
139
|
-
<ordinal>4</ordinal>
|
140
|
-
<local-type>real</local-type>
|
141
|
-
<aggregation>Sum</aggregation>
|
142
|
-
<precision>15</precision>
|
143
|
-
<contains-null>true</contains-null>
|
144
|
-
<attributes>
|
145
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
146
|
-
</attributes>
|
147
|
-
</metadata-record>
|
148
|
-
<metadata-record class="column">
|
149
|
-
<remote-name>Date</remote-name>
|
150
|
-
<remote-type>7</remote-type>
|
151
|
-
<local-name>[Date]</local-name>
|
152
|
-
<parent-name>[factTable]</parent-name>
|
153
|
-
<remote-alias>Date</remote-alias>
|
154
|
-
<ordinal>14</ordinal>
|
155
|
-
<local-type>datetime</local-type>
|
156
|
-
<aggregation>Year</aggregation>
|
157
|
-
<contains-null>true</contains-null>
|
158
|
-
<attributes>
|
159
|
-
<attribute datatype="string" name="DebugRemoteType">"DATE"</attribute>
|
160
|
-
</attributes>
|
161
|
-
</metadata-record>
|
162
|
-
<metadata-record class="column">
|
163
|
-
<remote-name>Inventory</remote-name>
|
164
|
-
<remote-type>3</remote-type>
|
165
|
-
<local-name>[Inventory]</local-name>
|
166
|
-
<parent-name>[factTable]</parent-name>
|
167
|
-
<remote-alias>Inventory</remote-alias>
|
168
|
-
<ordinal>7</ordinal>
|
169
|
-
<local-type>integer</local-type>
|
170
|
-
<aggregation>Sum</aggregation>
|
171
|
-
<precision>10</precision>
|
172
|
-
<contains-null>true</contains-null>
|
173
|
-
<attributes>
|
174
|
-
<attribute datatype="string" name="DebugRemoteType">"I4"</attribute>
|
175
|
-
</attributes>
|
176
|
-
</metadata-record>
|
177
|
-
<metadata-record class="column">
|
178
|
-
<remote-name>Margin</remote-name>
|
179
|
-
<remote-type>5</remote-type>
|
180
|
-
<local-name>[Margin]</local-name>
|
181
|
-
<parent-name>[factTable]</parent-name>
|
182
|
-
<remote-alias>Margin</remote-alias>
|
183
|
-
<ordinal>2</ordinal>
|
184
|
-
<local-type>real</local-type>
|
185
|
-
<aggregation>Sum</aggregation>
|
186
|
-
<precision>15</precision>
|
187
|
-
<contains-null>true</contains-null>
|
188
|
-
<attributes>
|
189
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
190
|
-
</attributes>
|
191
|
-
</metadata-record>
|
192
|
-
<metadata-record class="column">
|
193
|
-
<remote-name>Marketing</remote-name>
|
194
|
-
<remote-type>5</remote-type>
|
195
|
-
<local-name>[Marketing]</local-name>
|
196
|
-
<parent-name>[factTable]</parent-name>
|
197
|
-
<remote-alias>Marketing</remote-alias>
|
198
|
-
<ordinal>6</ordinal>
|
199
|
-
<local-type>real</local-type>
|
200
|
-
<aggregation>Sum</aggregation>
|
201
|
-
<precision>15</precision>
|
202
|
-
<contains-null>true</contains-null>
|
203
|
-
<attributes>
|
204
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
205
|
-
</attributes>
|
206
|
-
</metadata-record>
|
207
|
-
<metadata-record class="column">
|
208
|
-
<remote-name>ProductId</remote-name>
|
209
|
-
<remote-type>2</remote-type>
|
210
|
-
<local-name>[ProductId]</local-name>
|
211
|
-
<parent-name>[factTable]</parent-name>
|
212
|
-
<remote-alias>ProductId</remote-alias>
|
213
|
-
<ordinal>13</ordinal>
|
214
|
-
<local-type>integer</local-type>
|
215
|
-
<aggregation>Sum</aggregation>
|
216
|
-
<precision>5</precision>
|
217
|
-
<contains-null>true</contains-null>
|
218
|
-
<attributes>
|
219
|
-
<attribute datatype="string" name="DebugRemoteType">"I2"</attribute>
|
220
|
-
</attributes>
|
221
|
-
</metadata-record>
|
222
|
-
<metadata-record class="column">
|
223
|
-
<remote-name>Profit</remote-name>
|
224
|
-
<remote-type>5</remote-type>
|
225
|
-
<local-name>[Profit]</local-name>
|
226
|
-
<parent-name>[factTable]</parent-name>
|
227
|
-
<remote-alias>Profit</remote-alias>
|
228
|
-
<ordinal>1</ordinal>
|
229
|
-
<local-type>real</local-type>
|
230
|
-
<aggregation>Sum</aggregation>
|
231
|
-
<precision>15</precision>
|
232
|
-
<contains-null>true</contains-null>
|
233
|
-
<attributes>
|
234
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
235
|
-
</attributes>
|
236
|
-
</metadata-record>
|
237
|
-
<metadata-record class="column">
|
238
|
-
<remote-name>Sales</remote-name>
|
239
|
-
<remote-type>5</remote-type>
|
240
|
-
<local-name>[Sales]</local-name>
|
241
|
-
<parent-name>[factTable]</parent-name>
|
242
|
-
<remote-alias>Sales</remote-alias>
|
243
|
-
<ordinal>3</ordinal>
|
244
|
-
<local-type>real</local-type>
|
245
|
-
<aggregation>Sum</aggregation>
|
246
|
-
<precision>15</precision>
|
247
|
-
<contains-null>true</contains-null>
|
248
|
-
<attributes>
|
249
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
250
|
-
</attributes>
|
251
|
-
</metadata-record>
|
252
|
-
<metadata-record class="column">
|
253
|
-
<remote-name>Total Expenses</remote-name>
|
254
|
-
<remote-type>5</remote-type>
|
255
|
-
<local-name>[Total Expenses]</local-name>
|
256
|
-
<parent-name>[factTable]</parent-name>
|
257
|
-
<remote-alias>Total Expenses</remote-alias>
|
258
|
-
<ordinal>5</ordinal>
|
259
|
-
<local-type>real</local-type>
|
260
|
-
<aggregation>Sum</aggregation>
|
261
|
-
<precision>15</precision>
|
262
|
-
<contains-null>true</contains-null>
|
263
|
-
<attributes>
|
264
|
-
<attribute datatype="string" name="DebugRemoteType">"R8"</attribute>
|
265
|
-
</attributes>
|
266
|
-
</metadata-record>
|
267
|
-
<metadata-record class="column">
|
268
|
-
<remote-name>Area Code</remote-name>
|
269
|
-
<remote-type>2</remote-type>
|
270
|
-
<local-name>[Location_Area Code]</local-name>
|
271
|
-
<parent-name>[Location]</parent-name>
|
272
|
-
<remote-alias>Area Code</remote-alias>
|
273
|
-
<ordinal>17</ordinal>
|
274
|
-
<local-type>integer</local-type>
|
275
|
-
<aggregation>Sum</aggregation>
|
276
|
-
<precision>5</precision>
|
277
|
-
<contains-null>true</contains-null>
|
278
|
-
<attributes>
|
279
|
-
<attribute datatype="string" name="DebugRemoteType">"I2"</attribute>
|
280
|
-
</attributes>
|
281
|
-
</metadata-record>
|
282
|
-
<metadata-record class="column">
|
283
|
-
<remote-name>Market</remote-name>
|
284
|
-
<remote-type>130</remote-type>
|
285
|
-
<local-name>[Market]</local-name>
|
286
|
-
<parent-name>[Location]</parent-name>
|
287
|
-
<remote-alias>Market</remote-alias>
|
288
|
-
<ordinal>19</ordinal>
|
289
|
-
<local-type>string</local-type>
|
290
|
-
<aggregation>Count</aggregation>
|
291
|
-
<width>255</width>
|
292
|
-
<contains-null>true</contains-null>
|
293
|
-
<attributes>
|
294
|
-
<attribute datatype="string" name="DebugRemoteType">"WSTR"</attribute>
|
295
|
-
</attributes>
|
296
|
-
</metadata-record>
|
297
|
-
<metadata-record class="column">
|
298
|
-
<remote-name>Market Size</remote-name>
|
299
|
-
<remote-type>130</remote-type>
|
300
|
-
<local-name>[Market Size]</local-name>
|
301
|
-
<parent-name>[Location]</parent-name>
|
302
|
-
<remote-alias>Market Size</remote-alias>
|
303
|
-
<ordinal>20</ordinal>
|
304
|
-
<local-type>string</local-type>
|
305
|
-
<aggregation>Count</aggregation>
|
306
|
-
<width>255</width>
|
307
|
-
<contains-null>true</contains-null>
|
308
|
-
<attributes>
|
309
|
-
<attribute datatype="string" name="DebugRemoteType">"WSTR"</attribute>
|
310
|
-
</attributes>
|
311
|
-
</metadata-record>
|
312
|
-
<metadata-record class="column">
|
313
|
-
<remote-name>State</remote-name>
|
314
|
-
<remote-type>130</remote-type>
|
315
|
-
<local-name>[State]</local-name>
|
316
|
-
<parent-name>[Location]</parent-name>
|
317
|
-
<remote-alias>State</remote-alias>
|
318
|
-
<ordinal>18</ordinal>
|
319
|
-
<local-type>string</local-type>
|
320
|
-
<aggregation>Count</aggregation>
|
321
|
-
<width>255</width>
|
322
|
-
<contains-null>true</contains-null>
|
323
|
-
<attributes>
|
324
|
-
<attribute datatype="string" name="DebugRemoteType">"WSTR"</attribute>
|
325
|
-
</attributes>
|
326
|
-
</metadata-record>
|
327
|
-
<metadata-record class="column">
|
328
|
-
<remote-name>Product</remote-name>
|
329
|
-
<remote-type>130</remote-type>
|
330
|
-
<local-name>[Product]</local-name>
|
331
|
-
<parent-name>[Product]</parent-name>
|
332
|
-
<remote-alias>Product</remote-alias>
|
333
|
-
<ordinal>23</ordinal>
|
334
|
-
<local-type>string</local-type>
|
335
|
-
<aggregation>Count</aggregation>
|
336
|
-
<width>255</width>
|
337
|
-
<contains-null>true</contains-null>
|
338
|
-
<attributes>
|
339
|
-
<attribute datatype="string" name="DebugRemoteType">"WSTR"</attribute>
|
340
|
-
</attributes>
|
341
|
-
</metadata-record>
|
342
|
-
<metadata-record class="column">
|
343
|
-
<remote-name>Product Line</remote-name>
|
344
|
-
<remote-type>130</remote-type>
|
345
|
-
<local-name>[Product Line]</local-name>
|
346
|
-
<parent-name>[Product]</parent-name>
|
347
|
-
<remote-alias>Product Line</remote-alias>
|
348
|
-
<ordinal>21</ordinal>
|
349
|
-
<local-type>string</local-type>
|
350
|
-
<aggregation>Count</aggregation>
|
351
|
-
<width>255</width>
|
352
|
-
<contains-null>true</contains-null>
|
353
|
-
<attributes>
|
354
|
-
<attribute datatype="string" name="DebugRemoteType">"WSTR"</attribute>
|
355
|
-
</attributes>
|
356
|
-
</metadata-record>
|
357
|
-
<metadata-record class="column">
|
358
|
-
<remote-name>Product Type</remote-name>
|
359
|
-
<remote-type>130</remote-type>
|
360
|
-
<local-name>[Product Type]</local-name>
|
361
|
-
<parent-name>[Product]</parent-name>
|
362
|
-
<remote-alias>Product Type</remote-alias>
|
363
|
-
<ordinal>22</ordinal>
|
364
|
-
<local-type>string</local-type>
|
365
|
-
<aggregation>Count</aggregation>
|
366
|
-
<width>255</width>
|
367
|
-
<contains-null>true</contains-null>
|
368
|
-
<attributes>
|
369
|
-
<attribute datatype="string" name="DebugRemoteType">"WSTR"</attribute>
|
370
|
-
</attributes>
|
371
|
-
</metadata-record>
|
372
|
-
<metadata-record class="column">
|
373
|
-
<remote-name>ProductId</remote-name>
|
374
|
-
<remote-type>2</remote-type>
|
375
|
-
<local-name>[Product_ProductId]</local-name>
|
376
|
-
<parent-name>[Product]</parent-name>
|
377
|
-
<remote-alias>ProductId</remote-alias>
|
378
|
-
<ordinal>24</ordinal>
|
379
|
-
<local-type>integer</local-type>
|
380
|
-
<aggregation>Sum</aggregation>
|
381
|
-
<precision>5</precision>
|
382
|
-
<contains-null>true</contains-null>
|
383
|
-
<attributes>
|
384
|
-
<attribute datatype="string" name="DebugRemoteType">"I2"</attribute>
|
385
|
-
</attributes>
|
386
|
-
</metadata-record>
|
387
|
-
<metadata-record class="column">
|
388
|
-
<remote-name>Type</remote-name>
|
389
|
-
<remote-type>130</remote-type>
|
390
|
-
<local-name>[Type]</local-name>
|
391
|
-
<parent-name>[Product]</parent-name>
|
392
|
-
<remote-alias>Type</remote-alias>
|
393
|
-
<ordinal>25</ordinal>
|
394
|
-
<local-type>string</local-type>
|
395
|
-
<aggregation>Count</aggregation>
|
396
|
-
<width>255</width>
|
397
|
-
<contains-null>true</contains-null>
|
398
|
-
<attributes>
|
399
|
-
<attribute datatype="string" name="DebugRemoteType">"WSTR"</attribute>
|
400
|
-
</attributes>
|
401
|
-
</metadata-record>
|
402
|
-
</metadata-records>
|
403
|
-
</connection>
|
404
|
-
<column aggregation="Sum" datatype="integer" name="[Area Code]" role="dimension" semantic-role="[AreaCode].[Name]" type="ordinal">
|
405
|
-
</column>
|
406
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Budget COGS]" role="measure" type="quantitative">
|
407
|
-
</column>
|
408
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Budget Margin]" role="measure" type="quantitative">
|
409
|
-
</column>
|
410
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Budget Profit]" role="measure" type="quantitative">
|
411
|
-
</column>
|
412
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Budget Sales]" role="measure" type="quantitative">
|
413
|
-
</column>
|
414
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[COGS]" role="measure" type="quantitative">
|
415
|
-
</column>
|
416
|
-
<column datatype="date" datatype-customized="true" name="[Date]" role="dimension" type="ordinal">
|
417
|
-
</column>
|
418
|
-
<column aggregation="Avg" datatype="integer" default-format="n#,##0;-#,##0" name="[Inventory]" role="measure" type="quantitative">
|
419
|
-
</column>
|
420
|
-
<column aggregation="Sum" datatype="integer" default-format="*000" hidden="true" name="[Location_Area Code]" role="dimension" semantic-role="[AreaCode].[Name]" type="ordinal">
|
421
|
-
</column>
|
422
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Margin]" role="measure" type="quantitative">
|
423
|
-
</column>
|
424
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Marketing]" role="measure" type="quantitative">
|
425
|
-
</column>
|
426
|
-
<column datatype="integer" name="[Number of Records]" role="measure" type="quantitative" user:auto-column="numrec">
|
427
|
-
<calculation class="tableau" formula="1"/>
|
428
|
-
</column>
|
429
|
-
<column datatype="integer" hidden="true" name="[ProductId]" role="measure" type="quantitative">
|
430
|
-
</column>
|
431
|
-
<column datatype="integer" hidden="true" name="[Product_ProductId]" role="measure" type="quantitative">
|
432
|
-
</column>
|
433
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Profit]" role="measure" type="quantitative">
|
434
|
-
</column>
|
435
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Sales]" role="measure" type="quantitative">
|
436
|
-
</column>
|
437
|
-
<column datatype="string" name="[State]" role="dimension" semantic-role="[State].[Name]" type="nominal">
|
438
|
-
</column>
|
439
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Total Expenses]" role="measure" type="quantitative">
|
440
|
-
</column>
|
441
|
-
<folder name="Actuals" role="measures">
|
442
|
-
<folder-item name="[COGS]" type="field"/>
|
443
|
-
<folder-item name="[Inventory]" type="field"/>
|
444
|
-
<folder-item name="[Margin]" type="field"/>
|
445
|
-
<folder-item name="[Marketing]" type="field"/>
|
446
|
-
<folder-item name="[Profit]" type="field"/>
|
447
|
-
<folder-item name="[Sales]" type="field"/>
|
448
|
-
<folder-item name="[Total Expenses]" type="field"/>
|
449
|
-
</folder>
|
450
|
-
<folder name="Budget" role="measures">
|
451
|
-
<folder-item name="[Budget COGS]" type="field"/>
|
452
|
-
<folder-item name="[Budget Margin]" type="field"/>
|
453
|
-
<folder-item name="[Budget Profit]" type="field"/>
|
454
|
-
<folder-item name="[Budget Sales]" type="field"/>
|
455
|
-
</folder>
|
456
|
-
<layout dim-ordering="alphabetic" dim-percentage="0.5" measure-ordering="alphabetic" measure-percentage="0.4" show-structure="false"/>
|
457
|
-
<semantic-values>
|
458
|
-
<semantic-value key="[Country].[Name]" value=""UNITED STATES""/>
|
459
|
-
</semantic-values>
|
460
|
-
</datasource>
|
461
|
-
</datasources><dashboards><dashboard name="Collapsible List of Workook Contents">
|
462
|
-
<style/>
|
463
|
-
<zones>
|
464
|
-
<zone h="100000" id="3" param="vert" type="layout-flow" w="100000" x="0" y="0">
|
465
|
-
<zone h="6221" id="1" type="title" w="100000" x="0" y="0"/>
|
466
|
-
<zone h="93157" id="4" param="horz" type="layout-flow" w="100000" x="0" y="6221">
|
467
|
-
<zone forceUpdate="" h="93157" id="6" param="file:///C:/tech/misc/expandable_tree_view/TableauDocInlineCSS.html" type="web" w="99655" x="0" y="6221"/>
|
468
|
-
</zone>
|
469
|
-
</zone>
|
470
|
-
</zones>
|
471
|
-
</dashboard></dashboards>
|
472
|
-
<worksheets>
|
473
|
-
<worksheet name="Sheet 1">
|
474
|
-
<table>
|
475
|
-
<view>
|
476
|
-
<datasources>
|
477
|
-
<datasource name="Sample - Coffee Chain (Access)"/>
|
478
|
-
</datasources>
|
479
|
-
<datasource-dependencies datasource="Sample - Coffee Chain (Access)">
|
480
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Profit]" role="measure" type="quantitative">
|
481
|
-
</column>
|
482
|
-
<column datatype="real" default-format="c"$"#,##0;("$"#,##0)" name="[Sales]" role="measure" type="quantitative">
|
483
|
-
</column>
|
484
|
-
<column-instance column="[Profit]" derivation="Sum" name="[sum:Profit:qk]" pivot="key" type="quantitative"/>
|
485
|
-
<column-instance column="[Sales]" derivation="Sum" name="[sum:Sales:qk]" pivot="key" type="quantitative"/>
|
486
|
-
</datasource-dependencies>
|
487
|
-
<aggregation value="true"/>
|
488
|
-
</view>
|
489
|
-
<style>
|
490
|
-
</style>
|
491
|
-
<panes>
|
492
|
-
<pane>
|
493
|
-
<view>
|
494
|
-
<breakdown value="auto"/>
|
495
|
-
</view>
|
496
|
-
<mark class="Automatic"/>
|
497
|
-
</pane>
|
498
|
-
</panes>
|
499
|
-
<rows>[Sample - Coffee Chain (Access)].[sum:Sales:qk]</rows>
|
500
|
-
<cols>[Sample - Coffee Chain (Access)].[sum:Profit:qk]</cols>
|
501
|
-
</table>
|
502
|
-
</worksheet>
|
503
|
-
</worksheets>
|
504
|
-
<windows>
|
505
|
-
<window class="schema" source-height="-1"/>
|
506
|
-
<window auto-hidden="0" class="worksheet" maximized="1" name="Sheet 1">
|
507
|
-
<cards>
|
508
|
-
<edge name="left">
|
509
|
-
<strip size="160">
|
510
|
-
<card type="pages"/>
|
511
|
-
<card type="filters"/>
|
512
|
-
<card type="marks"/>
|
513
|
-
</strip>
|
514
|
-
</edge>
|
515
|
-
<edge name="top">
|
516
|
-
<strip size="31">
|
517
|
-
<card type="columns"/>
|
518
|
-
</strip>
|
519
|
-
<strip size="31">
|
520
|
-
<card type="rows"/>
|
521
|
-
</strip>
|
522
|
-
</edge>
|
523
|
-
</cards>
|
524
|
-
</window>
|
525
|
-
<window auto-hidden="0" class="dashboard" maximized="1" name="Collapsible List of Workook Contents">
|
526
|
-
<zones>
|
527
|
-
<zone h="6221" id="1" name="" type="title" w="100000" x="0" y="0"/>
|
528
|
-
<zone forceUpdate="" h="93157" id="5" name="" param="file:///C:/tech/misc/expandable_tree_view/TableauDocInlineCSS.html" type="web" w="50000" x="50000" y="6221"/>
|
529
|
-
</zones>
|
530
|
-
</window></windows>
|
531
|
-
<thumbnails>
|
532
|
-
<thumbnail height="192" name="Sheet 1" width="192">
|
533
|
-
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
-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
-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
-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
-
Dl/yn4F8y7LQdb03BQDQdR3DMHoVj2VZkq9wvuM46LouvwMItUkBhNKkAEJpUgChNCmAUJoU
|
538
|
-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
-
+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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
spkqMTM1zHY8xdzMOYy+NuvLW0xMT5Pa2WF6bo7EVozo5Rc5MxaWkUjJ73n+oWeCH//zP/bp
|
550
|
-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
-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
-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
-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
-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
-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
-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
-
utyffnV1HSXEsZO7QEJpUgChNCmAUJoUQChNCiCUJgUQSpMCCKVJAYTSpABCaVIAoTQpgFCa
|
558
|
-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
-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
-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
-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
-
4AsEMGSjbMl/hvOPtFH25126+IPBIy1MiJMkd4GE0qQAQmlSAKE0KYBQ2lML0KibZLM5LLur
|
563
|
-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
-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
-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
-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
-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
-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
-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
-
CVb8B0D1fJkJFgIZiBGKkwIIpUkBhNKkAEJpUgChNCmAUJoUQChNCiCUJgUQSpMCCKVJAYTS
|
571
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
+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
-
+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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
M06Irp34RNjjjbI1TevpjpKNRgOfzyf5iua3Wi1cLtfxngGeJhAI4HK5ej4SCTAw0NtXtEh+
|
593
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
KWRwef1Uijk0dx/1cgHbOdLH3mfc/jDjETexZJHx4Qgul4tKsYDu9lKrFLHRaVs2TbOK5ei0
|
605
|
-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
-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
-
0fIdjbGpaTKbG8R3NzGCpzlzdp4BrU6x0aJQrqE5Vm9+BwCwWnWWVjaYO3eW/WSCUxMzDPR9
|
608
|
-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
-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
-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
-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
-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
-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
-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
-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
|
616
|
-
</thumbnail>
|
617
|
-
</thumbnails>
|
618
|
-
</workbook>
|