diff --git a/src/canvas.js b/src/canvas.js
index d3cc6bee6..5db39ebbb 100644
--- a/src/canvas.js
+++ b/src/canvas.js
@@ -16,7 +16,7 @@
*/
/* globals ColorSpace, DeviceCmykCS, DeviceGrayCS, DeviceRgbCS, error,
FONT_IDENTITY_MATRIX, IDENTITY_MATRIX, ImageData, isArray, isNum,
- isString, Pattern, TilingPattern, TODO, Util, warn */
+ isString, Pattern, TilingPattern, TODO, Util, warn, assert */
'use strict';
@@ -225,6 +225,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
this.objs = objs;
this.textLayer = textLayer;
this.imageLayer = imageLayer;
+ this.groupStack = [];
if (canvasCtx) {
addContextCurrentTransform(canvasCtx);
}
@@ -357,6 +358,25 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
return tmpCanvas;
}
+ function copyCtxState(sourceCtx, destCtx) {
+ var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha',
+ 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit',
+ 'globalCompositeOperation', 'font'];
+ for (var i = 0, ii = properties.length; i < ii; i++) {
+ var property = properties[i];
+ if (property in sourceCtx) {
+ destCtx[property] = sourceCtx[property];
+ }
+ }
+ if ('setLineDash' in sourceCtx) {
+ destCtx.setLineDash(sourceCtx.getLineDash());
+ destCtx.lineDashOffset = sourceCtx.lineDashOffset;
+ } else if ('mozDash' in sourceCtx) {
+ destCtx.mozDash = sourceCtx.mozDash;
+ destCtx.mozDashOffset = sourceCtx.mozDashOffset;
+ }
+ }
+
var LINE_CAP_STYLES = ['butt', 'round', 'square'];
var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
var NORMAL_CLIP = {};
@@ -1347,6 +1367,89 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
} while (this.current.paintFormXObjectDepth >= depth);
},
+ beginGroup: function CanvasGraphics_beginGroup(group) {
+ this.save();
+ var currentCtx = this.ctx;
+ // TODO non-isolated groups - according to Rik at adobe non-isolated
+ // group results aren't usually that different and they even have tools
+ // that ignore this setting. Notes from Rik on implmenting:
+ // - When you encounter an transparency group, create a new canvas with
+ // the dimensions of the bbox
+ // - copy the content from the previous canvas to the new canvas
+ // - draw as usual
+ // - remove the backdrop alpha:
+ // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha
+ // value of your transparency group and 'alphaBackdrop' the alpha of the
+ // backdrop
+ // - remove background color:
+ // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)
+ if (!group.isolated) {
+ TODO('Support non-isolated groups.');
+ }
+
+ // TODO knockout - supposedly possible with the clever use of compositing
+ // modes.
+ if (group.knockout) {
+ TODO('Support knockout groups.');
+ }
+
+ var currentTransform = currentCtx.mozCurrentTransform;
+ if (group.matrix) {
+ currentCtx.transform.apply(currentCtx, group.matrix);
+ }
+ assert(group.bbox, 'Bounding box is required.');
+
+ // Based on the current transform figure out how big the bounding box
+ // will actually be.
+ var bounds = Util.getAxialAlignedBoundingBox(
+ group.bbox,
+ currentCtx.mozCurrentTransform);
+ // Use ceil in case we're between sizes so we don't create canvas that is
+ // too small.
+ var drawnWidth = Math.ceil(bounds[2] - bounds[0]);
+ var drawnHeight = Math.ceil(bounds[3] - bounds[1]);
+ var scratchCanvas = createScratchCanvas(drawnWidth, drawnHeight);
+ var groupCtx = scratchCanvas.getContext('2d');
+ addContextCurrentTransform(groupCtx);
+ // Since we created a new canvas that is just the size of the bounding box
+ // we have to translate the group ctx.
+ var offsetX = bounds[0];
+ var offsetY = bounds[1];
+ groupCtx.translate(-offsetX, -offsetY);
+ groupCtx.transform.apply(groupCtx, currentTransform);
+
+ // Setup the current ctx so when the group is popped we draw it the right
+ // location.
+ currentCtx.setTransform(1, 0, 0, 1, 0, 0);
+ currentCtx.translate(offsetX, offsetY);
+
+ // The transparency group inherits all off the current graphics state
+ // except the blend mode, soft mask, and alpha constants.
+ copyCtxState(currentCtx, groupCtx);
+ this.ctx = groupCtx;
+ this.setGState([
+ ['SMask', 'None'],
+ ['BM', 'Normal'],
+ ['ca', 1],
+ ['CA', 1]
+ ]);
+ this.groupStack.push(currentCtx);
+ },
+
+ endGroup: function CanvasGraphics_endGroup(group) {
+ var groupCtx = this.ctx;
+ this.ctx = this.groupStack.pop();
+ // Turn off image smoothing to avoid sub pixel interpolation which can
+ // look kind of blurry for some pdfs.
+ if ('imageSmoothingEnabled' in this.ctx) {
+ this.ctx.imageSmoothingEnabled = false;
+ } else {
+ this.ctx.mozImageSmoothingEnabled = false;
+ }
+ this.ctx.drawImage(groupCtx.canvas, 0, 0);
+ this.restore();
+ },
+
paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
var domImage = this.objs.get(objId);
if (!domImage) {
diff --git a/src/evaluator.js b/src/evaluator.js
index f0b772a32..648762b81 100644
--- a/src/evaluator.js
+++ b/src/evaluator.js
@@ -244,6 +244,60 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
return loadedName;
}
+ function buildFormXObject(xobj, smask) {
+ var matrix = xobj.dict.get('Matrix');
+ var bbox = xobj.dict.get('BBox');
+ var group = xobj.dict.get('Group');
+ if (group) {
+ var groupOptions = {
+ matrix: matrix,
+ bbox: bbox,
+ smask: !!smask,
+ isolated: false,
+ knockout: false
+ };
+
+ var groupSubtype = group.get('S');
+ if (isName(groupSubtype) && groupSubtype.name === 'Transparency') {
+ groupOptions.isolated = group.get('I') || false;
+ groupOptions.knockout = group.get('K') || false;
+ // There is also a group colorspace, but since we put everything in
+ // RGB I'm not sure we need it.
+ }
+ fnArray.push('beginGroup');
+ argsArray.push([groupOptions]);
+ }
+
+ fnArray.push('paintFormXObjectBegin');
+ argsArray.push([matrix, bbox]);
+
+ // This adds the operatorList of the xObj to the current queue.
+ var depIdx = dependencyArray.length;
+
+ // Pass in the current `queue` object. That means the `fnArray`
+ // and the `argsArray` in this scope is reused and new commands
+ // are added to them.
+ self.getOperatorList(xobj,
+ xobj.dict.get('Resources') || resources,
+ dependencyArray, queue);
+
+ self.getOperatorList(xobj,
+ xobj.dict.get('Resources') || resources,
+ dependencyArray, queue);
+
+ // Add the dependencies that are required to execute the
+ // operatorList.
+ insertDependency(dependencyArray.slice(depIdx));
+
+ fnArray.push('paintFormXObjectEnd');
+ argsArray.push([]);
+
+ if (group) {
+ fnArray.push('endGroup');
+ argsArray.push([groupOptions]);
+ }
+ }
+
function buildPaintImageXObject(image, inline) {
var dict = image.dict;
var w = dict.get('Width', 'W');
@@ -417,28 +471,9 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
);
if ('Form' == type.name) {
- var matrix = xobj.dict.get('Matrix');
- var bbox = xobj.dict.get('BBox');
-
- fnArray.push('paintFormXObjectBegin');
- argsArray.push([matrix, bbox]);
-
- // This adds the operatorList of the xObj to the current queue.
- var depIdx = dependencyArray.length;
-
- // Pass in the current `queue` object. That means the `fnArray`
- // and the `argsArray` in this scope is reused and new commands
- // are added to them.
- this.getOperatorList(xobj,
- xobj.dict.get('Resources') || resources,
- dependencyArray, queue);
-
- // Add the dependencies that are required to execute the
- // operatorList.
- insertDependency(dependencyArray.slice(depIdx));
-
- fn = 'paintFormXObjectEnd';
+ buildFormXObject(xobj);
args = [];
+ continue;
} else if ('Image' == type.name) {
buildPaintImageXObject(xobj, false);
} else {
diff --git a/src/util.js b/src/util.js
index 15a4c14ce..50e1034e0 100644
--- a/src/util.js
+++ b/src/util.js
@@ -237,6 +237,23 @@ var Util = PDFJS.Util = (function UtilClosure() {
return [xt, yt];
};
+ // Applies the transform to the rectangle and finds the minimum axially
+ // aligned bounding box.
+ Util.getAxialAlignedBoundingBox =
+ function Util_getAxialAlignedBoundingBox(r, m) {
+
+ var p1 = Util.applyTransform(r, m);
+ var p2 = Util.applyTransform(r.slice(2, 4), m);
+ var p3 = Util.applyTransform([r[0], r[3]], m);
+ var p4 = Util.applyTransform([r[2], r[1]], m);
+ return [
+ Math.min(p1[0], p2[0], p3[0], p4[0]),
+ Math.min(p1[1], p2[1], p3[1], p4[1]),
+ Math.max(p1[0], p2[0], p3[0], p4[0]),
+ Math.max(p1[1], p2[1], p3[1], p4[1])
+ ];
+ };
+
Util.inverseTransform = function Util_inverseTransform(m) {
var d = m[0] * m[3] - m[1] * m[2];
return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,
diff --git a/test/pdfs/transparency_group.pdf b/test/pdfs/transparency_group.pdf
new file mode 100644
index 000000000..052bfca40
--- /dev/null
+++ b/test/pdfs/transparency_group.pdf
@@ -0,0 +1,2134 @@
+%PDF-1.5
+%
+1 0 obj
+<<
+/Pages 2 0 R
+/OCProperties
+<<
+/OCGs [3 0 R 4 0 R]
+/D
+<<
+/ON [3 0 R 4 0 R]
+/Order 5 0 R
+/RBGroups []
+>>
+>>
+/Metadata 6 0 R
+/Type /Catalog
+>>
+endobj
+2 0 obj
+<<
+/Kids [7 0 R]
+/Count 1
+/Type /Pages
+>>
+endobj
+3 0 obj
+<<
+/Intent 8 0 R
+/Name (Layer 1)
+/Type /OCG
+/Usage 9 0 R
+>>
+endobj
+4 0 obj
+<<
+/Intent 10 0 R
+/Name (Layer 1)
+/Type /OCG
+/Usage 11 0 R
+>>
+endobj
+5 0 obj [4 0 R]
+endobj
+6 0 obj
+<<
+/Subtype /XML
+/Length 44166
+/Type /Metadata
+>>
+stream
+
+
+
+
+ application/pdf
+
+
+ Basic RGB
+
+
+
+
+ Adobe Illustrator CS5.1
+ 2013-01-15T21:10:30-08:00
+ 2013-01-15T21:21:58-08:00
+ 2013-01-15T21:21:58-08:00
+
+
+
+ 256
+ 228
+ JPEG
+ /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA5AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYqlnmDzNoHl2x+va1fRWNsW4RmQ/FI5FRHFGtXkc02VASfDFlGJkaAsvOtR/OTVt
QZovLOlrawnZdS1blU79UsomVyp/4sljYfy5XLIA7bD2NllvL0j7UAkvmHVCDq+v38/f0rWX9Hxq
fBfqXoSEezyNlRylzR2Zihz3QWoeU/LUjl59Mt7mX/f1zGtxJ/wcvNu/jkOItsdPjH8I+SRXnlXy
uK00exHytof+acPEW4YMf80fJALbHTiTpdzdaZ7WFzPar1rukLohHsRTJiRRLQ4Zc4hNdN/Nj8w9
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
+
+
+
+
+
+ uuid:9E3E5C9A8C81DB118734DB58FDDE4BA7
+ xmp.did:6E943CEDD7236811808399F74AE8634A
+ uuid:c78dd87f-91e5-0041-8fbe-62efa956a181
+ proof:pdf
+
+ uuid:bb36fdab-5d28-ea41-8168-d7c6be77c4ce
+ xmp.did:C822D1ED0D20681188C6A12CE4B46A4D
+ uuid:9E3E5C9A8C81DB118734DB58FDDE4BA7
+ proof:pdf
+
+
+
+
+ saved
+ xmp.iid:6E943CEDD7236811808399F74AE8634A
+ 2013-01-15T21:10:30-08:00
+ Adobe Illustrator CS5.1
+ /
+
+
+
+
+
+ Basic RGB
+ Document
+
+
+ 1
+ True
+ False
+
+ 800.000000
+ 600.000000
+ Points
+
+
+
+ Cyan
+ Magenta
+ Yellow
+ Black
+
+
+
+
+
+ Default Swatch Group
+ 0
+
+
+
+ White
+ RGB
+ PROCESS
+ 255
+ 255
+ 255
+
+
+ Black
+ RGB
+ PROCESS
+ 0
+ 0
+ 0
+
+
+ RGB Red
+ RGB
+ PROCESS
+ 255
+ 0
+ 0
+
+
+ RGB Yellow
+ RGB
+ PROCESS
+ 255
+ 255
+ 0
+
+
+ RGB Green
+ RGB
+ PROCESS
+ 0
+ 255
+ 0
+
+
+ RGB Cyan
+ RGB
+ PROCESS
+ 0
+ 255
+ 255
+
+
+ RGB Blue
+ RGB
+ PROCESS
+ 0
+ 0
+ 255
+
+
+ RGB Magenta
+ RGB
+ PROCESS
+ 255
+ 0
+ 255
+
+
+ R=193 G=39 B=45
+ RGB
+ PROCESS
+ 193
+ 39
+ 45
+
+
+ R=237 G=28 B=36
+ RGB
+ PROCESS
+ 237
+ 28
+ 36
+
+
+ R=241 G=90 B=36
+ RGB
+ PROCESS
+ 241
+ 90
+ 36
+
+
+ R=247 G=147 B=30
+ RGB
+ PROCESS
+ 247
+ 147
+ 30
+
+
+ R=251 G=176 B=59
+ RGB
+ PROCESS
+ 251
+ 176
+ 59
+
+
+ R=252 G=238 B=33
+ RGB
+ PROCESS
+ 252
+ 238
+ 33
+
+
+ R=217 G=224 B=33
+ RGB
+ PROCESS
+ 217
+ 224
+ 33
+
+
+ R=140 G=198 B=63
+ RGB
+ PROCESS
+ 140
+ 198
+ 63
+
+
+ R=57 G=181 B=74
+ RGB
+ PROCESS
+ 57
+ 181
+ 74
+
+
+ R=0 G=146 B=69
+ RGB
+ PROCESS
+ 0
+ 146
+ 69
+
+
+ R=0 G=104 B=55
+ RGB
+ PROCESS
+ 0
+ 104
+ 55
+
+
+ R=34 G=181 B=115
+ RGB
+ PROCESS
+ 34
+ 181
+ 115
+
+
+ R=0 G=169 B=157
+ RGB
+ PROCESS
+ 0
+ 169
+ 157
+
+
+ R=41 G=171 B=226
+ RGB
+ PROCESS
+ 41
+ 171
+ 226
+
+
+ R=0 G=113 B=188
+ RGB
+ PROCESS
+ 0
+ 113
+ 188
+
+
+ R=46 G=49 B=146
+ RGB
+ PROCESS
+ 46
+ 49
+ 146
+
+
+ R=27 G=20 B=100
+ RGB
+ PROCESS
+ 27
+ 20
+ 100
+
+
+ R=102 G=45 B=145
+ RGB
+ PROCESS
+ 102
+ 45
+ 145
+
+
+ R=147 G=39 B=143
+ RGB
+ PROCESS
+ 147
+ 39
+ 143
+
+
+ R=158 G=0 B=93
+ RGB
+ PROCESS
+ 158
+ 0
+ 93
+
+
+ R=212 G=20 B=90
+ RGB
+ PROCESS
+ 212
+ 20
+ 90
+
+
+ R=237 G=30 B=121
+ RGB
+ PROCESS
+ 237
+ 30
+ 121
+
+
+ R=199 G=178 B=153
+ RGB
+ PROCESS
+ 199
+ 178
+ 153
+
+
+ R=153 G=134 B=117
+ RGB
+ PROCESS
+ 153
+ 134
+ 117
+
+
+ R=115 G=99 B=87
+ RGB
+ PROCESS
+ 115
+ 99
+ 87
+
+
+ R=83 G=71 B=65
+ RGB
+ PROCESS
+ 83
+ 71
+ 65
+
+
+ R=198 G=156 B=109
+ RGB
+ PROCESS
+ 198
+ 156
+ 109
+
+
+ R=166 G=124 B=82
+ RGB
+ PROCESS
+ 166
+ 124
+ 82
+
+
+ R=140 G=98 B=57
+ RGB
+ PROCESS
+ 140
+ 98
+ 57
+
+
+ R=117 G=76 B=36
+ RGB
+ PROCESS
+ 117
+ 76
+ 36
+
+
+ R=96 G=56 B=19
+ RGB
+ PROCESS
+ 96
+ 56
+ 19
+
+
+ R=66 G=33 B=11
+ RGB
+ PROCESS
+ 66
+ 33
+ 11
+
+
+
+
+
+ Grays
+ 1
+
+
+
+ R=0 G=0 B=0
+ RGB
+ PROCESS
+ 0
+ 0
+ 0
+
+
+ R=26 G=26 B=26
+ RGB
+ PROCESS
+ 26
+ 26
+ 26
+
+
+ R=51 G=51 B=51
+ RGB
+ PROCESS
+ 51
+ 51
+ 51
+
+
+ R=77 G=77 B=77
+ RGB
+ PROCESS
+ 77
+ 77
+ 77
+
+
+ R=102 G=102 B=102
+ RGB
+ PROCESS
+ 102
+ 102
+ 102
+
+
+ R=128 G=128 B=128
+ RGB
+ PROCESS
+ 128
+ 128
+ 128
+
+
+ R=153 G=153 B=153
+ RGB
+ PROCESS
+ 153
+ 153
+ 153
+
+
+ R=179 G=179 B=179
+ RGB
+ PROCESS
+ 179
+ 179
+ 179
+
+
+ R=204 G=204 B=204
+ RGB
+ PROCESS
+ 204
+ 204
+ 204
+
+
+ R=230 G=230 B=230
+ RGB
+ PROCESS
+ 230
+ 230
+ 230
+
+
+ R=242 G=242 B=242
+ RGB
+ PROCESS
+ 242
+ 242
+ 242
+
+
+
+
+
+
+
+
+ Adobe PDF library 9.90
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+endstream
+endobj
+7 0 obj
+<<
+/pdftk_PageNum 1
+/TrimBox [0.0 0.0 800.0 600.0]
+/Thumb 12 0 R
+/MediaBox [0.0 0.0 800.0 600.0]
+/Resources
+<<
+/ExtGState
+<<
+/GS0 13 0 R
+/GS1 14 0 R
+>>
+/ColorSpace
+<<
+/CS1 15 0 R
+/CS0 15 0 R
+>>
+/Shading
+<<
+/Sh0 16 0 R
+>>
+/Properties
+<<
+/MC0 4 0 R
+>>
+/XObject
+<<
+/Fm0 17 0 R
+>>
+>>
+/Contents 18 0 R
+/Parent 2 0 R
+/ArtBox [150.5 187.5 559.5 547.5]
+/LastModified (D:20130115212158-08'00')
+/BleedBox [0.0 0.0 800.0 600.0]
+/Group 19 0 R
+/PieceInfo
+<<
+/Illustrator 20 0 R
+>>
+/Type /Page
+>>
+endobj
+8 0 obj [/View /Design]
+endobj
+9 0 obj
+<<
+/CreatorInfo
+<<
+/Creator (Adobe Illustrator 15.1)
+/Subtype /Artwork
+>>
+>>
+endobj
+12 0 obj
+<<
+/ColorSpace 21 0 R
+/Length 7499
+/Width 100
+/BitsPerComponent 8
+/Height 75
+>>
+stream
+ ɥɟ ɟɞt Þɥtst ɟs mɞɞtstms ɟɞsms mɟɞtstmsmm ɞɞtstmsm mmmɥɟtstmmImI ɟɞtstmtmm m
tstmmImIm
mmm ȣ
Σ
y ǣǣȣȣ
yys ȣΣ
yysy ǣǣǣǣȣ
yyryrr ΣΣ
ysyrs ǣǣȣǣΣ
yysyrsN ǣȣΣ
yysyrs ǣǣǣǣȣȣ
yysyNsN ΣΣΣ
ysyrs ǣǣǣȣȣ
yysyrsN ΣȣΣ
ysyr ǣǣǣǣȣ
yyryr Σ
ys ȣǣΣ
yy Σ
H
HmH
smsmmmm mmɟɞtstmsmmHmH ɞɞtstmsmmIm mmmɥɟtstmmImIm ɟɞtstmtmmI mÞɥtstmmImIm ɟsmmmm mmmɞɞtstmsmmH ɟɞsmsm mɟɞtstmsm ɞɞtstm mɥɟtstmm ɟɞts Þɥts ɟ
+endstream
+endobj
+13 0 obj
+<<
+/CA 1.0
+/OP false
+/SMask /None
+/SA true
+/ca 1.0
+/OPM 1
+/op false
+/AIS false
+/BM /Normal
+/Type /ExtGState
+>>
+endobj
+14 0 obj
+<<
+/CA 1.0
+/OP false
+/SMask /None
+/SA true
+/ca 1.0
+/OPM 1
+/op false
+/AIS false
+/BM /Difference
+/Type /ExtGState
+>>
+endobj
+15 0 obj [/ICCBased 22 0 R]
+endobj
+16 0 obj
+<<
+/ColorSpace 15 0 R
+/Function 23 0 R
+/Coords [0.0 0.0 1.0 0.0]
+/Domain [0.0 1.0]
+/ShadingType 2
+/AntiAlias false
+/Extend [true true]
+>>
+endobj
+17 0 obj
+<<
+/Group 24 0 R
+/Matrix [0.7071067814675859 0.7071067809055092 -0.7071067809055092 0.7071067814675859 452.54833977952586 -187.45165986074505]
+/Subtype /Form
+/Length 456
+/Resources
+<<
+/ExtGState
+<<
+/GS0 13 0 R
+>>
+/ColorSpace
+<<
+/CS1 15 0 R
+/CS0 15 0 R
+>>
+/Shading
+<<
+/Sh0 25 0 R
+>>
+>>
+/BBox [242.5 547.5 500.5 187.5]
+>>
+stream
+q
+500 367.5 m
+500 268.365 442.469 188 371.5 188 c
+300.531 188 243 268.365 243 367.5 c
+243 466.635 300.531 547 371.5 547 c
+442.469 547 500 466.635 500 367.5 c
+W n
+q
+0 g
+/GS0 gs
+257 0 0 -257 243 367.5 cm
+BX /Sh0 sh EX Q
+Q
+/CS1 CS 0 0 0 SCN
+1 w 10 M 0 j 0 J []0 d
+/GS0 gs
+q 1 0 0 1 500 367.5 cm
+0 0 m
+0 -99.135 -57.531 -179.5 -128.5 -179.5 c
+-199.469 -179.5 -257 -99.135 -257 0 c
+-257 99.135 -199.469 179.5 -128.5 179.5 c
+-57.531 179.5 0 99.135 0 0 c
+h
+S
+Q
+
+endstream
+endobj
+18 0 obj
+<<
+/Length 483
+>>
+stream
+/OC /MC0 BDC
+q
+151 383 m
+151 337.16 242.334 300 355 300 c
+355 300 l
+467.666 300 559 337.16 559 383 c
+559 383 l
+559 428.84 467.666 466 355 466 c
+355 466 l
+242.334 466 151 428.84 151 383 c
+W n
+q
+/GS0 gs
+408 0 0 -408 151 383 cm
+BX /Sh0 sh EX Q
+Q
+q
+0 600 800 -600 re
+W n
+/CS1 CS 0 0 0 SCN
+/GS0 gs
+q 1 0 0 1 559 383 cm
+0 0 m
+0 -45.84 -91.334 -83 -204 -83 c
+-316.666 -83 -408 -45.84 -408 0 c
+-408 45.84 -316.666 83 -204 83 c
+-91.334 83 0 45.84 0 0 c
+h
+S
+Q
+q
+0 G
+/GS1 gs
+/Fm0 Do
+Q
+EMC
+Q
+
+endstream
+endobj
+20 0 obj
+<<
+/LastModified (D:20130115212158-08'00')
+/Private 26 0 R
+>>
+endobj
+19 0 obj
+<<
+/CS 27 0 R
+/K false
+/I false
+/S /Transparency
+>>
+endobj
+10 0 obj [/View /Design]
+endobj
+11 0 obj
+<<
+/CreatorInfo
+<<
+/Creator (Adobe Illustrator 15.1)
+/Subtype /Artwork
+>>
+>>
+endobj
+27 0 obj [/ICCBased 22 0 R]
+endobj
+26 0 obj
+<<
+/RoundtripVersion 15
+/NumBlock 6
+/ContainerVersion 11
+/AIPrivateData6 28 0 R
+/AIPrivateData5 29 0 R
+/AIPrivateData4 30 0 R
+/AIMetaData 31 0 R
+/AIPrivateData3 32 0 R
+/AIPrivateData2 33 0 R
+/AIPrivateData1 34 0 R
+/CreatorVersion 15
+/RoundtripStreamType 1
+>>
+endobj
+22 0 obj
+<<
+/N 3
+/Length 560
+>>
+stream
+ 0ADBE mntrRGB XYZ acspAPPL none -ADBE
+cprt 2desc 0 kwtpt bkpt rTRC gTRC bTRC rXYZ gXYZ bXYZ text Copyright 1999 Adobe Systems Incorporated desc Adobe RGB (1998) XYZ Q XYZ curv 3 curv 3 curv 3 XYZ O XYZ 4 , XYZ &1 /
+endstream
+endobj
+23 0 obj
+<<
+/FunctionType 3
+/Functions [35 0 R 36 0 R]
+/Bounds [0.5]
+/Encode [0.0 1.0 0.0 1.0]
+/Domain [0.0 1.0]
+>>
+endobj
+24 0 obj
+<<
+/K false
+/I false
+/Type /Group
+/S /Transparency
+>>
+endobj
+25 0 obj
+<<
+/ColorSpace 15 0 R
+/Function 37 0 R
+/Coords [0.0 0.0 1.0 0.0]
+/Domain [0.0 1.0]
+/ShadingType 2
+/AntiAlias false
+/Extend [true true]
+>>
+endobj
+21 0 obj [/Indexed /DeviceRGB 255 38 0 R]
+endobj
+38 0 obj
+<<
+/Length 768
+>>
+stream
+ 3 f 3 33 3f 3 3 3 f f3 ff f f f 3 f 3 f ̙ 3 f 3 3 33 f3 3 3 33 33333f3333333f 3f33ff3f3f3f3 333f3333 333f3̙333 333f333f f 3f ff f f f3 f33f3ff3f3f3ff ff3ffffffffff f3ffffff f3fff̙fff f3fffff 3 f ̙ 3 333f33̙3f f3ffff̙f 3f̙ 3f̙̙ 3f̙ 3 f 3 333f333f f3fffff̙ ̙3̙f̙̙̙ 3f̙ 3f 3 f 3 333f333f f3fffff 3f 3f̙ 3f"""DDDUUUwww
+endstream
+endobj
+37 0 obj
+<<
+/FunctionType 3
+/Functions [39 0 R 40 0 R 41 0 R]
+/Bounds [0.252808 0.432587]
+/Encode [0.0 1.0 0.0 1.0 1.0 0.0]
+/Domain [0.0 1.0]
+>>
+endobj
+39 0 obj
+<<
+/FunctionType 2
+/N 1.83487
+/C1 [0.6353 0.0980377 0.305878]
+/Domain [0.0 1.0]
+/C0 [0.6353 0.101959 0.28627]
+>>
+endobj
+40 0 obj
+<<
+/FunctionType 2
+/N 1.0
+/C1 [0.898041 0.674515 0.674515]
+/Domain [0.0 1.0]
+/C0 [0.6353 0.0980377 0.305878]
+>>
+endobj
+41 0 obj
+<<
+/FunctionType 2
+/N 1.9174
+/C1 [0.898041 0.674515 0.674515]
+/Domain [0.0 1.0]
+/C0 [0.403915 0.0 0.15686]
+>>
+endobj
+35 0 obj
+<<
+/FunctionType 2
+/N 2.10202
+/C1 [0.925491 0.862747 0.607849]
+/Domain [0.0 1.0]
+/C0 [0.831375 0.6353 0.196075]
+>>
+endobj
+36 0 obj
+<<
+/FunctionType 2
+/N 1.24486
+/C1 [0.407837 0.152939 0.00392151]
+/Domain [0.0 1.0]
+/C0 [0.925491 0.862747 0.607849]
+>>
+endobj
+28 0 obj
+<<
+/Length 4721
+>>
+stream
+1&w'!#kQ0T~y'D{}c_v;-S 5#oe~mWf_-mKTKIt&w"}oeN%"mv=>)=-mKl_|ע?^qtn߫zֽ+wՓoͦ|Yn#lgy~GܾbU+ݔڿUOzvIƷۧ_{(9'foҲ_#v~8YlZ𥗃8Sx@Z( I';P,[ZB =x\vl_7./NεEk&yts$mP1|$ڋNMs?&F|@Мot
5-9j*Y֟zɻQZ~~Y8BlĶ_zF>t^|fymR~Pظ!(ӗiSW#4Mߍ_s*cmT,(~ȇ(,Sd)YwDэdolh?ٯ64Ò|01~#Yt)?-GcFscկx ?L;w)]
e`vP/.?qrdPŏe'=y89EJB:W.W]h@a'1դ60|w5$Si\9aET4i}{eWǷg[2Ut̽b>D%1 A5M8OmFҚ=@ąU9ej/Ý)<~#ǿvipSIA{8;1 =wߜ=z|?"6ê}Pcup6+ŸOT-zeױѡQJ@eR/dYUY?\۷.syu_ӫq(;v
W!Zi])@瞂EvvRckUEzCq0#GvfyxE9EӁ^d;$R廒DW2h\Nݫ
+rH$`[$A-DPdI >8XV˰
6
9.a?py{|I83%8@0.64Q_~3W4b3^W~q9![;;)wd\A9VJ~a/h#.SFcd}%hY= .
+!xy|D$(.6օx;(`> #\@z"$"ȗkY"$X!pLhHBA̕YFYsQjA: *N}"ؕo|3ӻ<`׀D+Dk*aIWbdq;ІmD`Iܺݠ
+JJvVӡbY`t#Vx8 -ƶBO!'twoʲEĒNXAd/ >Ǣln]9>9" 1%04Aٍl2!pRE"܄$׆Ri78Q2x6hNl$1nP!?D(mZk#3nC#~}[vDL#3$J
LH
\
+HI%'-X:;cnm@!p
+{U^uVu✯ŊafܘF1/-~\,un?QMl@^X _?mB};/B
+"Cue^6 qf%=BH7jɃ=6FЦ,E+mq~̈́H`H3.۠[;BWэp
;K#?xҞ}F{W*y-[tRQ?p&?F` Gc]9l8fGґD0pi:$
斧vec=}CKÃkQҟ:?ҡŘ63<
+G1ޙĥ|J龆qa*e~_|0О
JWtFb«8^%A~%'4Ȍ` &}PYUI}$ ~(ïÈ4C+Ac84ў_ZzGhEIXXʙ:Z~n&_z¹`|F],n R