From 6c5d2ac88bf986170e3627f7919e4fae444af44f Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Fri, 28 Oct 2011 12:16:17 -0400 Subject: [PATCH 01/15] progress --- web/viewer.css | 15 +++++++++++++++ web/viewer.js | 6 +++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/web/viewer.css b/web/viewer.css index 27ad0638a..52852d591 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -231,6 +231,21 @@ canvas { -webkit-box-shadow: 0px 2px 10px #ff0; } +.textLayer { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + color: #000; +} + +.textLayer > div { + color: transparent; + position: absolute; + line-height:1.3; +} + #viewer { margin: 44px 0px 0px; padding: 8px 0px; diff --git a/web/viewer.js b/web/viewer.js index 1ab2c555c..63215a6d8 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -475,6 +475,10 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, canvas.mozOpaque = true; div.appendChild(canvas); + var textDiv = document.createElement('div'); + textDiv.className = 'textLayer'; + div.appendChild(textDiv); + var scale = this.scale; canvas.width = pageWidth * scale; canvas.height = pageHeight * scale; @@ -487,7 +491,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, this.updateStats); + this.content.startRendering(ctx, this.updateStats, textDiv, scale); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true); From e7d08e3a98cfbd978c1ddfb9e8af9396d311e603 Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Fri, 28 Oct 2011 17:37:55 -0400 Subject: [PATCH 02/15] Selection working --- src/canvas.js | 118 ++++++++++++++++++++++++++++++++++++++++++------- src/core.js | 7 ++- web/viewer.css | 6 +++ web/viewer.js | 8 ++-- 4 files changed, 117 insertions(+), 22 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 70dd65e3d..d771fa15e 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -60,7 +60,7 @@ var CanvasGraphics = (function canvasGraphics() { // if we execute longer then `kExecutionTime`. var kExecutionTimeCheck = 500; - function constructor(canvasCtx, objs) { + function constructor(canvasCtx, objs, textLayer, textScale) { this.ctx = canvasCtx; this.current = new CanvasExtraState(); this.stateStack = []; @@ -69,6 +69,8 @@ var CanvasGraphics = (function canvasGraphics() { this.xobjs = null; this.ScratchCanvas = ScratchCanvas; this.objs = objs; + this.textLayer = textLayer; + this.textScale = textScale; } var LINE_CAP_STYLES = ['butt', 'round', 'square']; @@ -95,6 +97,7 @@ var CanvasGraphics = (function canvasGraphics() { break; } this.ctx.scale(cw / mediaBox.width, ch / mediaBox.height); + this.textDivs = []; }, executeIRQueue: function canvasGraphicsExecuteIRQueue(codeIR, @@ -150,6 +153,17 @@ var CanvasGraphics = (function canvasGraphics() { endDrawing: function canvasGraphicsEndDrawing() { this.ctx.restore(); + + // Text selection-specific + var textLayer = this.textLayer; + var textDivs = this.textDivs; + for (var i = 0, length = textDivs.length; i < length; ++i) { + if (textDivs[i].dataset.textLength>1) { // avoid div by zero + textLayer.appendChild(textDivs[i]); + // Adjust div width to match canvas text width + textDivs[i].style.letterSpacing = ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth)/(textDivs[i].dataset.textLength-1)) + 'px'; + } + } }, // Graphics state @@ -414,6 +428,12 @@ var CanvasGraphics = (function canvasGraphics() { this.moveText(0, this.current.leading); }, showText: function canvasGraphicsShowText(text) { + function unicodeToChar(unicode) { + return (unicode >= 0x10000) ? + String.fromCharCode(0xD800 | ((unicode - 0x10000) >> 10), + 0xDC00 | (unicode & 0x3FF)) : String.fromCharCode(unicode); + }; + var ctx = this.ctx; var current = this.current; var font = current.font; @@ -423,6 +443,8 @@ var CanvasGraphics = (function canvasGraphics() { var wordSpacing = current.wordSpacing; var textHScale = current.textHScale; var glyphsLength = glyphs.length; + var text = { chars:'', width:0 }; + if (font.coded) { ctx.save(); ctx.transform.apply(ctx, current.textMatrix); @@ -446,11 +468,12 @@ var CanvasGraphics = (function canvasGraphics() { this.restore(); var transformed = Util.applyTransform([glyph.width, 0], fontMatrix); - var width = transformed[0] * fontSize + charSpacing; - - ctx.translate(width, 0); - current.x += width; + var charWidth = transformed[0] * fontSize + charSpacing; + ctx.translate(charWidth, 0); + current.x += charWidth; + text.chars += unicodeToChar(glyph.unicode); + text.width += charWidth; } ctx.restore(); } else { @@ -459,7 +482,6 @@ var CanvasGraphics = (function canvasGraphics() { ctx.scale(1, -1); ctx.translate(current.x, -1 * current.y); ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); - ctx.scale(1 / textHScale, 1); var width = 0; @@ -471,36 +493,100 @@ var CanvasGraphics = (function canvasGraphics() { continue; } - var unicode = glyph.unicode; - var char = (unicode >= 0x10000) ? - String.fromCharCode(0xD800 | ((unicode - 0x10000) >> 10), - 0xDC00 | (unicode & 0x3FF)) : String.fromCharCode(unicode); - + var char = unicodeToChar(glyph.unicode); + var charWidth = glyph.width * fontSize * 0.001 + charSpacing; ctx.fillText(char, width, 0); - width += glyph.width * fontSize * 0.001 + charSpacing; + width += charWidth; + + text.chars += char; + text.width += charWidth; } current.x += width; - ctx.restore(); } + return text; }, - showSpacedText: function canvasGraphicsShowSpacedText(arr) { var ctx = this.ctx; var current = this.current; var fontSize = current.fontSize; var textHScale = current.textHScale; var arrLength = arr.length; + var textLayer = this.textLayer; + var font = current.font; + var text = {str:'', length:0, canvasWidth:0, spaceWidth:0, geom:{}}; + + // Text selection-specific + text.spaceWidth = this.current.font.charsToGlyphs(' ')[0].width; + if (!text.spaceWidth>0) { + // Hack (space is sometimes not encoded) + text.spaceWidth = this.current.font.charsToGlyphs('i')[0].width; + } + + // Compute text.geom + // TODO: refactor the series of transformations below, and share it with showText() + ctx.save(); + ctx.transform.apply(ctx, current.textMatrix); + ctx.scale(1, -1); + ctx.translate(current.x, -1 * current.y); + ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); + ctx.scale(1 / textHScale, 1); + var inv = ctx.mozCurrentTransform; + if (inv) { + var bl = Util.applyTransform([0, 0], inv); + var tr = Util.applyTransform([1, 1], inv); + text.geom.x = bl[0]; + text.geom.y = bl[1]; + text.geom.xFactor = tr[0] - bl[0]; + text.geom.yFactor = tr[1] - bl[1]; + } + ctx.restore(); + for (var i = 0; i < arrLength; ++i) { var e = arr[i]; if (isNum(e)) { - current.x -= e * 0.001 * fontSize * textHScale; + var spacingLength = -e * 0.001 * fontSize * textHScale; + current.x += spacingLength; + + // Text selection-specific + // Emulate arbitrary spacing via HTML spaces + text.canvasWidth += spacingLength; + if (e<0 && text.spaceWidth>0) { // avoid div by zero + var numFakeSpaces = Math.round(-e / text.spaceWidth); + for (var j = 0; j < numFakeSpaces; ++j) + text.str += ' '; + text.length += numFakeSpaces>0 ? 1 : 0; + } } else if (isString(e)) { - this.showText(e); + var shownText = this.showText(e); + + // Text selection-specific + if (shownText.chars === ' ') { + text.str += ' '; + } else { + text.str += shownText.chars; + } + text.canvasWidth += shownText.width; + text.length += e.length; } else { malformed('TJ array element ' + e + ' is not string or num'); } } + + if (textLayer) { + var div = document.createElement('div'); + var fontHeight = text.geom.yFactor * fontSize; + div.style.fontSize = fontHeight + 'px'; + // TODO: family should be '= font.loadedName', but some fonts don't + // have spacing info (cf. fonts.js > Font > fields > htmx) + div.style.fontFamily = 'serif'; + div.style.left = text.geom.x + 'px'; + div.style.top = (text.geom.y - fontHeight) + 'px'; + div.innerHTML = text.str; + div.dataset.canvasWidth = text.canvasWidth * text.geom.xFactor; + div.dataset.textLength = text.length; + this.textDivs.push(div); + } }, nextLineShowText: function canvasGraphicsNextLineShowText(text) { this.nextLine(); diff --git a/src/core.js b/src/core.js index 4b411cff5..7e7bb6ea8 100644 --- a/src/core.js +++ b/src/core.js @@ -157,7 +157,7 @@ var Page = (function pagePage() { IRQueue, fonts) { var self = this; this.IRQueue = IRQueue; - var gfx = new CanvasGraphics(this.ctx, this.objs); + var gfx = new CanvasGraphics(this.ctx, this.objs, this.textLayer, this.textScale); var startTime = Date.now(); var displayContinuation = function pageDisplayContinuation() { @@ -243,6 +243,7 @@ var Page = (function pagePage() { startIdx = gfx.executeIRQueue(IRQueue, startIdx, next); if (startIdx == length) { self.stats.render = Date.now(); + gfx.endDrawing(); if (callback) callback(); } } @@ -305,9 +306,11 @@ var Page = (function pagePage() { } return links; }, - startRendering: function(ctx, callback) { + startRendering: function(ctx, callback, textLayer, textScale) { this.ctx = ctx; this.callback = callback; + this.textLayer = textLayer; + this.textScale = textScale; this.startRenderingTime = Date.now(); this.pdf.startRendering(this); diff --git a/web/viewer.css b/web/viewer.css index 52852d591..19895ac27 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -246,6 +246,12 @@ canvas { line-height:1.3; } +::selection { background:rgba(0,0,255,0.3); } +::-moz-selection { background:rgba(0,0,255,0.3); } +/* TODO: file FF bug to support ::-moz-selection:window-inactive + so we can override the opaque grey background when the window is inactive; + see also http://css-tricks.com/9288-window-inactive-styling */ + #viewer { margin: 44px 0px 0px; padding: 8px 0px; diff --git a/web/viewer.js b/web/viewer.js index 63215a6d8..523b7dc56 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -475,9 +475,9 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, canvas.mozOpaque = true; div.appendChild(canvas); - var textDiv = document.createElement('div'); - textDiv.className = 'textLayer'; - div.appendChild(textDiv); + var textLayer = document.createElement('div'); + textLayer.className = 'textLayer'; + div.appendChild(textLayer); var scale = this.scale; canvas.width = pageWidth * scale; @@ -491,7 +491,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, this.updateStats, textDiv, scale); + this.content.startRendering(ctx, this.updateStats, textLayer, scale); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true); From 98f3bab65c58fb4d1080cf57c1410209c9626502 Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Mon, 31 Oct 2011 16:49:18 -0400 Subject: [PATCH 03/15] Lazy rendering --- src/canvas.js | 122 ++++++++++++++++++++++++++++++-------------------- src/core.js | 7 ++- web/viewer.js | 2 +- 3 files changed, 78 insertions(+), 53 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index d771fa15e..d5db79446 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -60,7 +60,7 @@ var CanvasGraphics = (function canvasGraphics() { // if we execute longer then `kExecutionTime`. var kExecutionTimeCheck = 500; - function constructor(canvasCtx, objs, textLayer, textScale) { + function constructor(canvasCtx, objs, textLayer) { this.ctx = canvasCtx; this.current = new CanvasExtraState(); this.stateStack = []; @@ -70,7 +70,6 @@ var CanvasGraphics = (function canvasGraphics() { this.ScratchCanvas = ScratchCanvas; this.objs = objs; this.textLayer = textLayer; - this.textScale = textScale; } var LINE_CAP_STYLES = ['butt', 'round', 'square']; @@ -98,6 +97,10 @@ var CanvasGraphics = (function canvasGraphics() { } this.ctx.scale(cw / mediaBox.width, ch / mediaBox.height); this.textDivs = []; + this.textLayerQueue = []; + // Prevent textLayerQueue to be rendered while rendering a new page + if (this.textLayerTimer) + clearTimeout(this.textLayerTimer); }, executeIRQueue: function canvasGraphicsExecuteIRQueue(codeIR, @@ -152,17 +155,37 @@ var CanvasGraphics = (function canvasGraphics() { }, endDrawing: function canvasGraphicsEndDrawing() { + var self = this; this.ctx.restore(); - // Text selection-specific - var textLayer = this.textLayer; - var textDivs = this.textDivs; - for (var i = 0, length = textDivs.length; i < length; ++i) { - if (textDivs[i].dataset.textLength>1) { // avoid div by zero - textLayer.appendChild(textDivs[i]); - // Adjust div width to match canvas text width - textDivs[i].style.letterSpacing = ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth)/(textDivs[i].dataset.textLength-1)) + 'px'; + var textLayer = self.textLayer; + if (textLayer) { + var renderTextLayer = function canvasRenderTextLayer() { + var textDivs = self.textDivs; + for (var i = 0, length = textDivs.length; i < length; ++i) { + if (textDivs[i].dataset.textLength>1) { // avoid div by zero + textLayer.appendChild(textDivs[i]); + // Adjust div width (via letterSpacing) to match canvas text + // Due to the .offsetWidth calls, this is slow + textDivs[i].style.letterSpacing = + ((textDivs[i].dataset.canvasWidth + - textDivs[i].offsetWidth)/(textDivs[i].dataset.textLength-1)) + + 'px'; + } + } } + var textLayerQueue = self.textLayerQueue; + textLayerQueue.push(renderTextLayer); + + // Lazy textLayer rendering (to prevent UI hangs) + // Only render queue if activity has stopped, where "no activity" == + // "no beginDrawing() calls in the last N ms" + self.textLayerTimer = setTimeout(function renderTextLayerQueue(){ + // Render most recent (==most relevant) layers first + for (var i=textLayerQueue.length-1; i>=0; i--) { + textLayerQueue.pop().call(); + } + }, 500); } }, @@ -516,31 +539,32 @@ var CanvasGraphics = (function canvasGraphics() { var font = current.font; var text = {str:'', length:0, canvasWidth:0, spaceWidth:0, geom:{}}; - // Text selection-specific - text.spaceWidth = this.current.font.charsToGlyphs(' ')[0].width; - if (!text.spaceWidth>0) { - // Hack (space is sometimes not encoded) - text.spaceWidth = this.current.font.charsToGlyphs('i')[0].width; - } + if (textLayer) { + text.spaceWidth = this.current.font.charsToGlyphs(' ')[0].width; + if (!text.spaceWidth>0) { + // Hack (space is sometimes not encoded) + text.spaceWidth = this.current.font.charsToGlyphs('i')[0].width; + } - // Compute text.geom - // TODO: refactor the series of transformations below, and share it with showText() - ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.scale(1, -1); - ctx.translate(current.x, -1 * current.y); - ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); - ctx.scale(1 / textHScale, 1); - var inv = ctx.mozCurrentTransform; - if (inv) { - var bl = Util.applyTransform([0, 0], inv); - var tr = Util.applyTransform([1, 1], inv); - text.geom.x = bl[0]; - text.geom.y = bl[1]; - text.geom.xFactor = tr[0] - bl[0]; - text.geom.yFactor = tr[1] - bl[1]; + // Compute text.geom + // TODO: refactor the series of transformations below, and share it with showText() + ctx.save(); + ctx.transform.apply(ctx, current.textMatrix); + ctx.scale(1, -1); + ctx.translate(current.x, -1 * current.y); + ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); + ctx.scale(1 / textHScale, 1); + var inv = ctx.mozCurrentTransform; + if (inv) { + var bl = Util.applyTransform([0, 0], inv); + var tr = Util.applyTransform([1, 1], inv); + text.geom.x = bl[0]; + text.geom.y = bl[1]; + text.geom.xFactor = tr[0] - bl[0]; + text.geom.yFactor = tr[1] - bl[1]; + } + ctx.restore(); } - ctx.restore(); for (var i = 0; i < arrLength; ++i) { var e = arr[i]; @@ -548,26 +572,28 @@ var CanvasGraphics = (function canvasGraphics() { var spacingLength = -e * 0.001 * fontSize * textHScale; current.x += spacingLength; - // Text selection-specific - // Emulate arbitrary spacing via HTML spaces - text.canvasWidth += spacingLength; - if (e<0 && text.spaceWidth>0) { // avoid div by zero - var numFakeSpaces = Math.round(-e / text.spaceWidth); - for (var j = 0; j < numFakeSpaces; ++j) - text.str += ' '; - text.length += numFakeSpaces>0 ? 1 : 0; + if (textLayer) { + // Emulate precise spacing via HTML spaces + text.canvasWidth += spacingLength; + if (e<0 && text.spaceWidth>0) { // avoid div by zero + var numFakeSpaces = Math.round(-e / text.spaceWidth); + for (var j = 0; j < numFakeSpaces; ++j) + text.str += ' '; + text.length += numFakeSpaces>0 ? 1 : 0; + } } } else if (isString(e)) { var shownText = this.showText(e); - // Text selection-specific - if (shownText.chars === ' ') { - text.str += ' '; - } else { - text.str += shownText.chars; + if (textLayer) { + if (shownText.chars === ' ') { + text.str += ' '; + } else { + text.str += shownText.chars; + } + text.canvasWidth += shownText.width; + text.length += e.length; } - text.canvasWidth += shownText.width; - text.length += e.length; } else { malformed('TJ array element ' + e + ' is not string or num'); } diff --git a/src/core.js b/src/core.js index 7e7bb6ea8..4313959a8 100644 --- a/src/core.js +++ b/src/core.js @@ -7,7 +7,7 @@ var globalScope = (typeof window === 'undefined') ? this : window; var ERRORS = 0, WARNINGS = 1, TODOS = 5; var verbosity = WARNINGS; -var useWorker = false; +var useWorker = true; // The global PDFJS object exposes the API // In production, it will be declared outside a global wrapper @@ -157,7 +157,7 @@ var Page = (function pagePage() { IRQueue, fonts) { var self = this; this.IRQueue = IRQueue; - var gfx = new CanvasGraphics(this.ctx, this.objs, this.textLayer, this.textScale); + var gfx = new CanvasGraphics(this.ctx, this.objs, this.textLayer); var startTime = Date.now(); var displayContinuation = function pageDisplayContinuation() { @@ -306,11 +306,10 @@ var Page = (function pagePage() { } return links; }, - startRendering: function(ctx, callback, textLayer, textScale) { + startRendering: function(ctx, callback, textLayer) { this.ctx = ctx; this.callback = callback; this.textLayer = textLayer; - this.textScale = textScale; this.startRenderingTime = Date.now(); this.pdf.startRendering(this); diff --git a/web/viewer.js b/web/viewer.js index 523b7dc56..d8a59e651 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -491,7 +491,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, this.updateStats, textLayer, scale); + this.content.startRendering(ctx, this.updateStats, textLayer); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true); From c74d7b8777d9b963bbb7b56dac957db5b51647db Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Mon, 31 Oct 2011 16:49:49 -0400 Subject: [PATCH 04/15] Workers off! --- src/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.js b/src/core.js index 4313959a8..ab2509016 100644 --- a/src/core.js +++ b/src/core.js @@ -7,7 +7,7 @@ var globalScope = (typeof window === 'undefined') ? this : window; var ERRORS = 0, WARNINGS = 1, TODOS = 5; var verbosity = WARNINGS; -var useWorker = true; +var useWorker = false; // The global PDFJS object exposes the API // In production, it will be declared outside a global wrapper From 9ddc40c3d7b82f3059e3864c887f05c649b575ca Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Wed, 2 Nov 2011 12:22:39 -0400 Subject: [PATCH 05/15] Nit --- src/canvas.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 1ed1ab76d..4edcb3096 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -106,7 +106,7 @@ var CanvasGraphics = (function canvasGraphics() { this.ctx.scale(cw / mediaBox.width, ch / mediaBox.height); this.textDivs = []; this.textLayerQueue = []; - // Prevent textLayerQueue to be rendered while rendering a new page + // Prevent textLayerQueue from being rendered while rendering a new page if (this.textLayerTimer) clearTimeout(this.textLayerTimer); }, @@ -166,7 +166,7 @@ var CanvasGraphics = (function canvasGraphics() { var self = this; this.ctx.restore(); - var textLayer = self.textLayer; + var textLayer = this.textLayer; if (textLayer) { var renderTextLayer = function canvasRenderTextLayer() { var textDivs = self.textDivs; @@ -557,10 +557,10 @@ var CanvasGraphics = (function canvasGraphics() { ctx.translate(current.x, -1 * current.y); ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); ctx.scale(1 / textHScale, 1); - var inv = ctx.mozCurrentTransform; - if (inv) { - var bl = Util.applyTransform([0, 0], inv); - var tr = Util.applyTransform([1, 1], inv); + var ctxMatrix = ctx.mozCurrentTransform; + if (ctxMatrix) { + var bl = Util.applyTransform([0, 0], ctxMatrix); + var tr = Util.applyTransform([1, 1], ctxMatrix); text.geom.x = bl[0]; text.geom.y = bl[1]; text.geom.xFactor = tr[0] - bl[0]; @@ -601,7 +601,7 @@ var CanvasGraphics = (function canvasGraphics() { malformed('TJ array element ' + e + ' is not string or num'); } } - + if (textLayer) { var div = document.createElement('div'); var fontHeight = text.geom.yFactor * fontSize; From 9ebec03ddc11e8de6e36c059b1bd71e34f24688c Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Tue, 8 Nov 2011 15:27:03 -0500 Subject: [PATCH 06/15] Implemented selection for showText() --- src/canvas.js | 153 ++++++++++++++++++++++++++++++-------------------- src/fonts.js | 8 ++- 2 files changed, 98 insertions(+), 63 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 470bbef94..05f74f24e 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -453,7 +453,58 @@ var CanvasGraphics = (function canvasGraphics() { nextLine: function canvasGraphicsNextLine() { this.moveText(0, this.current.leading); }, - showText: function canvasGraphicsShowText(text) { + applyTextTransforms: function canvasApplyTransforms() { + var ctx = this.ctx; + var current = this.current; + var textHScale = current.textHScale; + var font = current.font; + + ctx.transform.apply(ctx, current.textMatrix); + ctx.scale(1, -1); + ctx.translate(current.x, -1 * current.y); + ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); + ctx.scale(1 / textHScale, 1); + }, + getTextGeometry: function canvasGetTextGeometry() { + var geom = {}; + var ctx = this.ctx; + var font = this.current.font; + var ctxMatrix = ctx.mozCurrentTransform; + if (ctxMatrix) { + var bl = Util.applyTransform([0, 0], ctxMatrix); + var tr = Util.applyTransform([1, 1], ctxMatrix); + geom.x = bl[0]; + geom.y = bl[1]; + geom.hScale = tr[0] - bl[0]; + geom.vScale = tr[1] - bl[1]; + } + var spaceGlyph = font.charsToGlyphs(' ', true); + // Hack (sometimes space is not encoded) + if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) + spaceGlyph = font.charsToGlyphs('i', true); + // Fallback + if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) + spaceGlyph = [ {width:0} ]; + geom.spaceWidth = spaceGlyph[0].width; + return geom; + }, + pushTextDivs: function canvasGraphicsPushTextDivs(text) { + var div = document.createElement('div'); + var fontSize = this.current.fontSize; + var fontHeight = text.geom.vScale * fontSize; + + div.style.fontSize = fontHeight + 'px'; + // TODO: family should be '= font.loadedName', but some fonts don't + // have spacing info (cf. fonts.js > Font > fields > htmx) + div.style.fontFamily = 'serif'; + div.style.left = text.geom.x + 'px'; + div.style.top = (text.geom.y - fontHeight) + 'px'; + div.innerHTML = text.str; + div.dataset.canvasWidth = text.canvasWidth * text.geom.hScale; + div.dataset.textLength = text.length; + this.textDivs.push(div); + }, + showText: function canvasGraphicsShowText(str, skipTextSelection) { function unicodeToChar(unicode) { return (unicode >= 0x10000) ? String.fromCharCode(0xD800 | ((unicode - 0x10000) >> 10), @@ -463,14 +514,24 @@ var CanvasGraphics = (function canvasGraphics() { var ctx = this.ctx; var current = this.current; var font = current.font; - var glyphs = font.charsToGlyphs(text); + var glyphs = font.charsToGlyphs(str); var fontSize = current.fontSize; var charSpacing = current.charSpacing; var wordSpacing = current.wordSpacing; var textHScale = current.textHScale; var glyphsLength = glyphs.length; - var text = { chars:'', width:0 }; + var textLayer = this.textLayer; + var text = { str:'', length:0, canvasWidth:0, geom:{}}; + var textSelection = textLayer && !skipTextSelection ? true : false; + + if (textSelection) { + ctx.save(); + this.applyTextTransforms(); + text.geom = this.getTextGeometry(); + ctx.restore(); + } + // Type3 fonts - each glyph is a "mini-PDF" if (font.coded) { ctx.save(); ctx.transform.apply(ctx, current.textMatrix); @@ -498,17 +559,14 @@ var CanvasGraphics = (function canvasGraphics() { ctx.translate(charWidth, 0); current.x += charWidth; - text.chars += unicodeToChar(glyph.unicode); - text.width += charWidth; + text.str += unicodeToChar(glyph.unicode); + text.canvasWidth += charWidth; + text.length++; } ctx.restore(); } else { ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.scale(1, -1); - ctx.translate(current.x, -1 * current.y); - ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); - ctx.scale(1 / textHScale, 1); + this.applyTextTransforms(); var width = 0; for (var i = 0; i < glyphsLength; ++i) { @@ -524,12 +582,18 @@ var CanvasGraphics = (function canvasGraphics() { ctx.fillText(char, width, 0); width += charWidth; - text.chars += char; - text.width += charWidth; + text.str += char; + text.canvasWidth += charWidth; + text.length++; } + current.x += width; ctx.restore(); } + + if (textSelection) + this.pushTextDivs(text); + return text; }, showSpacedText: function canvasGraphicsShowSpacedText(arr) { @@ -540,32 +604,13 @@ var CanvasGraphics = (function canvasGraphics() { var arrLength = arr.length; var textLayer = this.textLayer; var font = current.font; - var text = {str:'', length:0, canvasWidth:0, spaceWidth:0, geom:{}}; + var text = {str:'', length:0, canvasWidth:0, geom:{}}; + var textSelection = textLayer ? true : false; - if (textLayer) { - text.spaceWidth = this.current.font.charsToGlyphs(' ')[0].width; - if (!text.spaceWidth>0) { - // Hack (space is sometimes not encoded) - text.spaceWidth = this.current.font.charsToGlyphs('i')[0].width; - } - - // Compute text.geom - // TODO: refactor the series of transformations below, and share it with showText() + if (textSelection) { ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.scale(1, -1); - ctx.translate(current.x, -1 * current.y); - ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); - ctx.scale(1 / textHScale, 1); - var ctxMatrix = ctx.mozCurrentTransform; - if (ctxMatrix) { - var bl = Util.applyTransform([0, 0], ctxMatrix); - var tr = Util.applyTransform([1, 1], ctxMatrix); - text.geom.x = bl[0]; - text.geom.y = bl[1]; - text.geom.xFactor = tr[0] - bl[0]; - text.geom.yFactor = tr[1] - bl[1]; - } + this.applyTextTransforms(); + text.geom = this.getTextGeometry(); ctx.restore(); } @@ -575,47 +620,35 @@ var CanvasGraphics = (function canvasGraphics() { var spacingLength = -e * 0.001 * fontSize * textHScale; current.x += spacingLength; - if (textLayer) { + if (textSelection) { // Emulate precise spacing via HTML spaces text.canvasWidth += spacingLength; - if (e<0 && text.spaceWidth>0) { // avoid div by zero - var numFakeSpaces = Math.round(-e / text.spaceWidth); + if (e<0 && text.geom.spaceWidth>0) { // avoid div by zero + var numFakeSpaces = Math.round(-e / text.geom.spaceWidth); for (var j = 0; j < numFakeSpaces; ++j) text.str += ' '; text.length += numFakeSpaces>0 ? 1 : 0; } } } else if (isString(e)) { - var shownText = this.showText(e); + var shownText = this.showText(e, true); - if (textLayer) { - if (shownText.chars === ' ') { - text.str += ' '; + if (textSelection) { + if (shownText.str === ' ') { + text.str += ' '; } else { - text.str += shownText.chars; + text.str += shownText.str; } - text.canvasWidth += shownText.width; + text.canvasWidth += shownText.canvasWidth; text.length += e.length; } } else { malformed('TJ array element ' + e + ' is not string or num'); } } - - if (textLayer) { - var div = document.createElement('div'); - var fontHeight = text.geom.yFactor * fontSize; - div.style.fontSize = fontHeight + 'px'; - // TODO: family should be '= font.loadedName', but some fonts don't - // have spacing info (cf. fonts.js > Font > fields > htmx) - div.style.fontFamily = 'serif'; - div.style.left = text.geom.x + 'px'; - div.style.top = (text.geom.y - fontHeight) + 'px'; - div.innerHTML = text.str; - div.dataset.canvasWidth = text.canvasWidth * text.geom.xFactor; - div.dataset.textLength = text.length; - this.textDivs.push(div); - } + + if (textSelection) + this.pushTextDivs(text); }, nextLineShowText: function canvasGraphicsNextLineShowText(text) { this.nextLine(); diff --git a/src/fonts.js b/src/fonts.js index ca02bb020..9462ac88e 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -1797,7 +1797,7 @@ var Font = (function Font() { return rule; }, - charsToGlyphs: function fonts_chars2Glyphs(chars) { + charsToGlyphs: function fonts_chars2Glyphs(chars, suppressWarnings) { var charsCache = this.charsCache; var glyphs; @@ -1830,7 +1830,8 @@ var Font = (function Font() { var charcode = int16([chars.charCodeAt(i++), chars.charCodeAt(i)]); var glyph = encoding[charcode]; if ('undefined' == typeof(glyph)) { - warn('Unencoded charcode ' + charcode); + if (!suppressWarnings) + warn('Unencoded charcode ' + charcode); glyph = { unicode: charcode, width: this.defaultWidth @@ -1847,7 +1848,8 @@ var Font = (function Font() { var charcode = chars.charCodeAt(i); var glyph = encoding[charcode]; if ('undefined' == typeof(glyph)) { - warn('Unencoded charcode ' + charcode); + if (!suppressWarnings) + warn('Unencoded charcode ' + charcode); glyph = { unicode: charcode, width: this.defaultWidth From 686f275830ba749d02f04e41c1954d0d0427bff5 Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Tue, 8 Nov 2011 16:05:11 -0500 Subject: [PATCH 07/15] Fix font and spaces --- src/canvas.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 05f74f24e..83d9c34d1 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -494,9 +494,7 @@ var CanvasGraphics = (function canvasGraphics() { var fontHeight = text.geom.vScale * fontSize; div.style.fontSize = fontHeight + 'px'; - // TODO: family should be '= font.loadedName', but some fonts don't - // have spacing info (cf. fonts.js > Font > fields > htmx) - div.style.fontFamily = 'serif'; + div.style.fontFamily = this.current.font.loadedName || 'serif'; div.style.left = text.geom.x + 'px'; div.style.top = (text.geom.y - fontHeight) + 'px'; div.innerHTML = text.str; @@ -560,8 +558,8 @@ var CanvasGraphics = (function canvasGraphics() { current.x += charWidth; text.str += unicodeToChar(glyph.unicode); - text.canvasWidth += charWidth; text.length++; + text.canvasWidth += charWidth; } ctx.restore(); } else { @@ -582,9 +580,9 @@ var CanvasGraphics = (function canvasGraphics() { ctx.fillText(char, width, 0); width += charWidth; - text.str += char; - text.canvasWidth += charWidth; + text.str += char === ' ' ? ' ' : char; text.length++; + text.canvasWidth += charWidth; } current.x += width; From 6fec709011c6570b72ced48e003692fa989ef2dd Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Tue, 8 Nov 2011 16:14:23 -0500 Subject: [PATCH 08/15] Adding 1040.pdf --- test/pdfs/.gitignore | 1 + test/pdfs/1040.pdf | Bin 0 -> 299340 bytes test/test_manifest.json | 7 +++++++ 3 files changed, 8 insertions(+) create mode 100644 test/pdfs/1040.pdf diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 443cb155a..dce433acf 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -14,4 +14,5 @@ !sizes.pdf !close-path-bug.pdf !alphatrans.pdf +!1040.pdf diff --git a/test/pdfs/1040.pdf b/test/pdfs/1040.pdf new file mode 100644 index 0000000000000000000000000000000000000000..12b9a66429417553b31b1bc57ea254e44cfc3a9d GIT binary patch literal 299340 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

`1C*m-*)5T|AAmSKf1R z;9o>@i8n;}L#iT>;EpETZOgk45G@VPo!M;5XW#C`JT!!Ul@df7!$m)V1Z@BZ_^g}D zCvq?AjB^Qa>N%}n_ogH=y&Wo~`jki%ubNm+YTcX!Fg8(xNqY~8rCl-pO6Fd(;ogU; zxqeOh^5*$Grj4Vl(Z{;UupUTEF84=mON(;p*Ixa=CKR{~AJnMojoWd$4-~yG7DxoF zf4y-3aNF!3rJIB8|1ebk(8hC7`ixBc3@Qff#TYIo zs|%vnexO3@zges({$Sr!pe=xt0whsDS;>|X zm7*5KJN%_SidQf@{{v)dK3Y6lRGga*BljoDY)wl-Hv?$ebTejU2r4Eny|}RI0zQ_X z32XQM_z!)aUREM)g)u5(%~4`wMIPb!x#}eUTJTU&O9kd~>7Py$CmZ`Tp@rMs89Lt$ zK8i!sL?M#7w6_D~#eoa4LD2g5psz{^0^R++n630T44KFVZ!~Zx#c;ZdX_Hd3oI1l$LiRMpNluRHB5424|%{D zeACj?%s=$LHgit1F_b>9JHXtIoUOTyPNP~`Y_728wRjxtgR#A2{&)>ib!jai2qo4h zQ=!QmECZ4uN4)bR2p#bIUhDBW{eWO|2f336;wIsVv+M&iNNFz`2MTK6$ULCfmj2P8 zV+R4|iAnotUVvTz*I#Wf1Cd>Pm74!(QPh&!X8Sz~a%u4A#kg5Q78sY7-QB|;Uf)zN zW~d*za?m`w{jl!o<*aW=#|e%U*8bE{=X}y&7&$c@O$9uENuC&}myqde$k^I*)a>dm zP@09yQ0!Cw4{UH*2cwQwg?vn%Ymr0OI=qKX^nGO%=Yj7JNCQ2I@_8ySM=WaEAYS$@ zZ#ju$G$);IFZM6X5CSKDAXf5*x}kiX7!*V-qGS}Fmiku zepjpjVKh#QSOYEQT3Q=T*_#$`LmTCt8CKBubK!V;zZi&{Yl=QMjw&pX%E}_+C$Xr? z)j}YLO^O`#`EApREUK{~>OukVZ7x_l=)SQyG8fS%|NhGkKlo(=J?DqN#y8Sm2p zGwCw$clZ0(&Cp(hNYm>dCt$PDJ4*O*acQ~I8}!Od*4S{kY(HOE9mR`bv1I{q5yd~0%qR)k+<@*buWdZ;h~PqjlwyUJlWL!KD^r zSgBvAw)K5PCxMtvI?w^Ao@LVx8XtXmloYpN_9l)1!yxptEK{R*Unrk!l;!a75dwtzKX9ff$rNAP|ugy$t@(vUxCr=22g47dsg-v4hfvz> zj~xihUw0s%eFx2N8yN%rr@n`S>CZ>_es3p59rSH1t;}uk#cZ9-%nko`m`~8w*7Cpg zAisa>|9w~a`2zp-{J%f_cNZdTY;FFhCgk6h(Vw=7zuaFkFth*f9mwyj=YMq|pYD(U zU~a?4!uG#3Al&lW;$Jn9v*IUHD^6TF4K~r)W~38zu!u@}5-bN;ghu(uJH~h;Kg~r-rXw7D+IcE(nCSThB_Cq2)x`)dps>Z zR(5oD@HK8zYV9Ke=T?+f=C(ZZKkK9&7fF8~c`*-XZERpXn9?5goBx6G0@tIXWcK4$ zvKgY%`6Bpo9L83qd%n!H<<4S>P~hpxxoI0n(NO{Lj8Ds?$(wf9M9JjE5#hNjV zSt0;+?mO*942CkLgf^jo26ljiMv26C8`CE)5Cs`RB$HuCnNd-)nYHKCvT5N2OnZwM z9#P80)PxDOkTQku^9!o*9^6UdsTOQ91rmba6($NG^>Ko;!d+uTmFLu3BODM}jEH1@ z#?N%12rnYXCCmjDGn;80aKP9ovLNPz#=G;SF@9B2FqB?ksdE_HsQ}5{@^Nfq|J`jSq*z1eM8!m3A2q?Dy!t;p_ zMF`P2(5ya^gyiNY9kmzNUe>t;2G~sj_W19?qVfZy5`#y|OuX)8W2{91K&PygmyMf) zC)5~JV8BgHe3uh|nHMe|9n06RxXzb{w!&S958UQ%jV1VhIQz=5IG3bt+=D}K2=0Ts zLvRZrxVyW%dxCp#g1dW=;2zvvg1gH%N!Z=9yXWkAukQ!bJWuO%b=Oo^SKYPHr;hB8 zdmDAzNLTHHswjL3CLZN04MJMdvj-xXbb3zNItNf~NQTsQVrzC=RWMAFy?Lx8V_pnSJ;f1VK(RwY&P<@M+YV!FNA?0)MkG}+E5qHE$Kx(>+sk~Qt0 z@+zRV>7RS)AH0h5FONgN4nhvj)_>$cz>9=G3sukZlLGwS@tZ zoTG!qf1HDU?e;(Lp#O0WGLUop8xHhWk<9-_!NtnN@^1|259+_a_S|P>{+H+ef1iMW z$`5PQcgV}il!}%NHGa^qlEF(u1H&*kg+N-b!ao?;HNvXQWFv8^WatmY;0pza-MZ{4X{CHM zaF#szrCe$iGONijvOb2T3Y-snQDBL#;0e@$TQGf1a2SoCvXZjlL;d~uXcK~2i!o_! zA2x;*ll2&d*>}np2eyLc)-%7$ND#+lh|>!xX?xbCa%w6<0Bx6x)^Isw7Tp32hTqkv-8fi9s{0hFJ zwc5Cmleqq%cUK8BG{o1jIuq3g^%nZQ?PojcsV+n(ks^w`K<(W1Y&5&{*0Kd=te!@9 z2qbyOH9_PlFHusS$bf6qG*7lSoi0oJ&0kkmW?z5dm9F8vspFNuYIzn_Z$`VxbDYF^ znCA^#n{c@vnvhu020Hoc)&LA|FJ(U%>QP4{*{UX7(n%Z z3kW~4H~%0Y`~ec-ulFYhE9?Ih5G+m9KVY>v%UH2}#FlY0mblz5L6=Ni#_rWwij=OJ ztBr49Gwli!UuCl)zOCHEqtwkUXCxtAn7 zS&+kT(8BI{-i78J0lwpze%&&<=Bkx$Z?W!@jwC%S{Y@{n!#0KPos<++ut~J2aUR`= z<#K{CZjzX#-UVL7`#1F=Bqo*`bK)Fp!KEkW*B__p0QI3e-p|(pZSrh24n4$?M@zUk z)gyXguRt zw?mK!E3b7te4H<*Fynv$Ejv4(G`c1k=NIWDDgQjy?Fk)X844;h6}V!t@F1fiwSn(v zO^xT#{u9h;a!zRR1Zy1W_*U?vuFVa@7Kw{*tip1Nb3HZ=zxFzn3-63!Ql*+(+4Vv{5@DJ0%6X7}?61>Mt;Q zVYoFDElY+8V=2gsu8URqo#7)$I0vG@7zqYc5Ox|1wgAt&>4*^I7G(JBj4qgO5$+j3 zzqN(%mv({{q9Fo51%D?%;1{*&nq#1xLd39y#xMqHzMxjUpt%;PqITpi8+1q;VvK@! zB_;F38l?lBTA2YB95N_$n8rR@-ts)*+{(Y=a(&MKu!{W%byDK(0h42G)ww-fhAMi{-$-_Ht!xU+*LekLBoLZwJk--k8avCq_|eVjhVF zOE+^4w}FFB&g$4-#i~Z*AYDDZ%AKelGaDn1u{faDS^Yg!7k>vo^R)zqeZ~|~Ju`@IT{HLxK_!Ix943Om~*2&Kp zhCt8_PBzBBWq|*wrv+kg{$Kgu<mhtET-c5rvWEZ+IZ{zaNtRPZu=6Fnj+?NO4fK z{Hdl*e`5f(#2amhRT7$p5FSQHDCh^JScLhI3B6T~0lyx^Ab{>i{^m^x=Dt#QoZ6w8 zR3znWX&$_i@6QnY@RQys^x#$F1ir*RCt~ zJc*$OYodu+^$KbWO#9t(yzHhEnQ4+-S zlzQO+g3Zwc?v{YpH=O=3{4ozZ8@Xq-h}D%1-v&m-#X~|j_4W1iZXpA=Ai*-WDpUfQ z;4}1?;!$*@0+=w++g5hJc;O}#mIfk;rz0^cnvie`;Gq{REAt*OhV2KN!F zxN^}TbeeWx;EF7C13r-0kLXkw;s!+!0!0WJfc#C-4~8Oy($9s}M}_N?iXbYF6=P+D zIK?yyy%1?{v~^5#UwJ>_gUQ$H#~_1uRr~{G15f+b=hjzWcaNic2R@#$nc*2`UMW0h z)jD8%`dkUcokv`pAcU^GAL;x2^u2EFBH9wYCAdlD0?vad_zm3YE*^YaM<2agzyRUL zHH?7XxXJ!I;!RvC7f8V4O~3(R+@%zMm9`3H*TPi{HGO28z0QvEOuRE|4Kex;3m{VZ zrtLc@?5$TxLB--&#uRhEit%qJWm2Y>qQ@i_)gbQ1 z!yl2zNv2WnLNn8=hgb!$H>_phX7d^}zb?^IeI0UeS$fuLnZ|pq0UIi@AMNcj8I+at zIbq-dy-=54`WOtm1q47An$_s~2^CFQ-5KV>uHZbAW^#6#grMp}3cY!}s7iw%T}m`| z8It;?JKEVoAGC*@C&c>&q6+XnK)Oc5gcIB9UY~;+s9&{Q)1sKxmC$1*0!!DM10qOU zZ=ng4V83E{gfK;ON=sCDSM*JXb|Doont?Zn$y1c!3Op7y9hyigyaun!-h6|1&g$^T zX@?8uC9!Kcx$he8o;~ zmK3C~u`aQQ&sT7ByS;tRy!iM%wb_y!boSF9d=@WZa$ZZ>Ww`5p3F((<-z0K*_Sx|g zHo;O*G|xdh1VKTc{UdpwFd1%gu z-tcBbhTyUjR|^}W>y;D#QVTAO^>f=M%ZP~k``Ip*u_@#rK)?2BniCfJBmOz-|ev?u{FY zjLh;!C4r$vW@v7lNk{m?Z2Z%Z)g<%c0MGpTB1d$EY4ClEcc9}dkhW%!C#;hwvjZyRb>yV*)0I| zK5aIZ>bku$hVQy{k-Yn8ji#;HN<4J^=tsev?=I$y>dt4{eC9zB_B3TSQC1EEVwcs8&P~)81NI+hLea|GokfBu zr6$BCL`{~8RVZN6-+FO0L&&pX5Ub>=xU2V2AOr-ua;%SzUx|TIwxbXfD-nHsWppWV zI?ACFzDQ6DL&WUo+haqAacWJT((uys zF(h;;P7pHSmxYKkp`I!mVR(y`#J2vAQKR3bk*u%~6t3IMc%5vn>kbKRhQz>GCaU$% z)g3<+)v$W^Ro+lGTKzD2du=l4_e4vNtXr2v%cPu)8>5lZer4qi4TGK&COh;>tZFbm zk$Q5dRSM&1k94c$3+@a#2fbG3r@k^_YL~>x$4u3py17Yd@QsM;0qW%^9nv?nO zHDmuJasHnz1O6}a=Kp8FV^(IiKODLLphUE?vUad1dI22-V*de=H0_CgLjelgS=$I% zyQnkJ12y=-KOk@)@ROYr_^AnyF*GpM{mWeWpJKiPFf{p3eWd~rwbLGGilJ|4|1-Wa zuoGY+%%Ba_HnIaFk^d|Jd}1VG1coAic>qo~=g)J70zi@Rce&qJ8^9-EId-7o-Af*@ zAUp8ld0k_}e@)jv)Q9SfoWJ@7cJgb!fa$NVN5shS>stWRmwfhL zW^q4<_H$%E2mF%$8YvMY+e<#%uWto>eyRTpNDx>asOI@q?>8nP@cE_P-{6o$jKJ{f zzw%jM+Wi&h8(0q*M*a8umvQ}`86rlYcK6qNUdfmv(_6<9|QDw9E9;E-;+> zulK-c;=j|EaWcNN%lI-*#+Q1)5cI#w0mGmFPG9mFUixGB-5>CJ?PvDy6-D$yG|u0B z0x>gx=5hS)@r95azuV*Z-Q4dZBhd?Se=E?4ere)?^?tYVLU8uqt+4+d)^C#_qL)SR zvIc%zG7|kZj3oMP2TJtY0F~%vS-h-@mqqciCSI1rZxl-+*55t6(EWwHFVtoEo%cf9 z7t+2^_V>midZFJ7`Ch2^LcAB+y^szFEBbSKfN|@8CBG-+g`6+cd?6;&Z<_p!1plij z@Fw$j`kMw!KotFSKNOp(PW;OL?H8^H)8Fmo@T2Oh(S%^%yyS zjZpI+>cpSD{jFUnBLfr1zk#<8DK7!R+i^VoT%olN0;|OppThCbA?Itr9iSkc*xOV| z{R8!AKIT_0MQc|7+{BN_ONhEK?dl&-Qw~}Klag(`)u6uB{>hCb8|=$AmE{ z06UL^7|TXy-bS{s+oEZ~=T7u1iFn-42#n4UpZbSnlJLvV|Wuu~@bdNA#&et;BujU%lVCjU>>p4P}1A&=Vm*Rsi~1 z{%wXId_vZWd&s+#Xx>h!V5$^Goou6d;`lHSg|sf|9Mc}(c8VQA8#w0<8NSh8ACK7~ z#BpBwh9PER6BsP{wpPsK09R%9Spj@9yM3XXEc#JKj(qS&SiIQ9;&xpjn|x(r^w|75 z&g+Z4g6oM9=6CpTlKs&Q&1;cVrXZCgj60pr3vrXs%3Fj0vGzmASDiVMwe3^7f)kHf z)x^Z^5YUdtaK-^}#fvkMTk8`7b-Ie!b6UI}gxo0zk$FoRrdw%tB051d^3Kt=i$(We zTS!S6#1L*_;xcj1dbdU_Tjem9Yr5(A*ozOhkrRxQ(ELf|`a|PnTc6vOF72ymrVt*r zI*X6$r=XS+k<@PVrWX zwe$lxP>m3HvMphusgis zu-!I!@Fy;^g{cZ910nxH$k5TW+L;FJdsKZ1tw8&Cm4dQoLy(9QZ*`*lTdi6AIQ237B?U%raP#C#t&U6U$~W`Tvk zI?yHNqrnXO9HLhK&KNH_hfkA1EZqQK3{8%$yH{Gq$*x1~>zTBaW-Mdjmx=0&IoRyj z2Z)B(;mT7BtM`2j`Ft554`^2muez2^(mAC!zo%b4fqE_-Q7fvmiWTQ+lt00uf@iB` zHa%!4zI`u5mx?cbSH~2-psJR+Rp!!El$t#^RnTyMWctC19;GS<7+N?K_Ps&w40Zz% zYSHIJ!u=twSOI1T=qaB?pk6JWNQ||iYH74o-BDERn6pLd0WBcrBD4>ikS*wkiTPE~ zc9{P}+@wm)biFO!LVZ25zx&aF=R!W2TEgH`r-3{n{KJ9OmAvK5E)-YQB5(X|ZR3fP zd6Tr!*!YGeCSvb?=5VUvyI0H3EytM4%85RiGE0h@;@g4BJnXNvD`qA=o_U^aSA@PU zOLph)l}w&-Dv)c~^`@_ruy4USs~2uA@7v-vE~LbeE}0A0N<|$qn>mX@bNvXaKr2rs z8Ml=UT5fYgFuFmd?C8EM3y#I=H$3q&zV+g6o?Bx7P-%kfGKngUTeVo{%@Byt%0W1G z@Vv$Cd*mZ?a*4HLz;uWar~0|;<^sGW^ThQQtqQtgRoC5Wsh@EJI_vH9Qq4rs#)o?1 zWOalD@zQH__jHZ>*2Ch=SW?gG34tS5TZPLhN=eBR%c9nFTb!KStKlVQ?SWcW1V<;P z=ds|W_tkd~7Z{JBnv%ZbkIIug2`1I*D~a*8iV0r&jV9;!4dZ_82HgSGbi(+c(H9 zmMw~a*pJO7L5t=r<Nt@Oz=jtYwB6;>HE8WMQrME$4goE7_HEsgkP$iHD-~+gv zH+)wLKeGHSweRmbk-Un|5llLBS);a%t%V*(t>z^$r}6QZ(=(L5<4g)xd2(WR$kKVw zDw!8_EkP=TiR>47M2yz#DzseZ_pyk}61_dH76{|weftR;-79LdbQsk(Z6cgT(j|qG znQ_FN+hT`$*c`fs)3G^HnWw)7a(6R&yAH7}T)`sH{q3GoE*#EizIJp^-7rc`^&a2I zcX`(a;!v35hMDgzUSM67R4G%|WNPJX#g|r=wR@BEH*b#|C(y&i3|!xI^kB~r-xAu> zWgoa`d?dmQf!u1lB4?s;{aW8GQARPQid1Vs<`ALQhCyH3gi$z|A{6@X06{;VwAzZK~W-HV#{d`j5b%09$$m??TpD5;I@AZZj$$fv5d@U ziVMsybV%!Lc-)?(=VS?_2AA>w;1!fdK!KA*l?RO$(`!-$#zMv`qZ<`p9Er;f{`y0s z2J2A-Nr3pqkK(hLCAf4F;ZL(I=c9~0Z+j46Nfl-GZ57Peq!z7$mOrntI6w>vxH4?9 zsA%+lma^~NMdj={C$fP>T=J3J6QAZB4gi>U(JfiYj-)X2!q5s~BJy3`jtT9tC?-yh z1szXsFn6iaC!L$JbVK+-3?u!Z-j0QTobK-gKnDRQ#+uV*aqkh?OX17KY&TW6 zHbnDDMzJzQ0mcoJ`A6LYVYT`rb1TP^*G{n~<9Bs2`+;vwcnh z`L^W}B7D?}6ab3s>vH7V;CDJrQ2+Y0!_}Jxmtn%(UQ+X+Zr-D0989)U>6*JMVBWkt zUV%ffjV$%3>@9tMvw4<66n;Sw^qeJeXdl6=k&b1ZZiT2cwMxVqO@((l_cIVarM=*| z7Vr24AVWda^#Bz=V5^{^wbbS88f3DYRW%b#Y70}%>MK^;ni4vVTkvzcR_i|cAYKh z9sD-`YJo+!2C_D3US8fnyo`~3(%ce_dPtdD@(c13)g zVK_+0%+m3tIlC}=>Iibj-4#41EJJ{{J$uH0a9~dhHCygt{5=4WHjEwKtf(f04Ike+ zGGoKLG9!Kkr=24r?dT4+Utk4JIz5x*mb7o~@g|(=Xg6xEv$nvm`%r6x%8IkKfs@x! zhk)8@i_$9Ip*QO;T>8_NVQ*;mvVva-@LRPscqV{0JYnod%Xa`Huuvm_aKg2q0UV2$50utdE1s>umCZXpSy| zFmr)s4#gfI5UGqs>Gx^SA!hSKG+cm81}X7{9OXM7ZgEbLcd72Do{?UMLeU<4snR@R z8mQ>YiT52wKfkdITZY4_`UK~Zpl!u0rVI~z9CGnysa7yzVyXW-=d3%OALAJ=u3&MA zrtjzC;~x$k=li=njldv+s)S=wF?jp_as`oV7#A0-9E0Iv@yas_-yaOr-ii|j^a3iU z0d!W%G*yL8TfQL?Ec>3G4^=@Tq?_kWJaM@`4y}{Dt*+gxeBpUk?K+Mh^WEoL1q9kk z3C~lDXS|w*vB?!BQ^yq3?{|N^?KsO!Yl~6BHmL(k4pd_t$a_yCGExB`NteE@1xx(W z2UB*aXOff*-4YChF`2nSfEdkvH_G6GmvaEAS^e#Yiv~y2dIa#wJcnjvG%`hmJ0)$g z24S2Ye&Wc>*4e}2s=JDD6a0rsYw9id5ajL6B!2;-fx0kqs$=CoW=r6B9_WU%Frin& z8>5JAlocQK?v%MY0$6BUK_g zzloM$Bq1u6v=1Q%?^o!>ZG8x2=&#Uc>DWy2>k~R?-JW@FT}T|gY@<@%ln2n9tOnb; zE-DYhQ#sL`(cGMpr8p5enp5#j-XBJ0u{YsSzbALO>Fm^O`)nV@5}gkV!@N4Q0F2?u zm9bR&jy65DXgO{9=tP?;ozZ6{Fa|!fdYU1Dc&o$22+;ye@tdCeg$_8zsOPN4D9`Mf zi-lhmDXwm__9oX9WoKbueyG0enjIC+{*QG^77YQR`r$>VJ2)zb2(G5aRb(;nfbLKd zEj)Q{dV-u!%TaF&^ga4Yc+^y)&vv0Pb0XiH>lQ?o7emTWz#52V8E#vC*aVd|PyE^+ zGlUnML3Q(CIvrY&O}a_5lscEZfNYQ0=3*m%p-Wu>H}dLI#iA%54&70kZK{nWZ`bwx zfzI1GT6gPYi;6k&c-yj}))YD9*L zYf54L^;1|XX2t~UfiYEpBcJ`X0^NqY=>SHLbpW*HSl9Z=NzlViP%ByFr8BBf0iK5M zSzj3zbPwxfG;YaxGPH#gzC{89{A+ZsXk(ju#-n4>OBJmU?aWmZALhZkFw*@zsKXLdW=X|ku25SJ8^AMVb5vUUtmDrGnc^dF?mT0a6TCfJ;ZHJ z0J^%YGGAY^+vcl5%%#m+Q>~rYjl^iwQ9T=<`fc>T5kFm~NehQ~-P){ddIE!?1Z&c` zRkR4cRlHQSoDg)oQe@Oh&rWkzQ(h0@eg?XP3EUqXC^7IXGWL$5Gg6|qZ_qx;U>(8C zZUo@6Q<<>~>JGCHQw=FdB;$AcO%>x$rIKmPflnx|8$$0ej$tSe zq?oC*Yz-)$+xN22uIQ-~uD$9$KhLAK^ktSr(Y0SZ7X5LJ&XlvW$C{NX2+BjhE=iaF z26t|zilXY1n$m!TA*l|Rh>=W<_EO+|&X!!2nC~}^UVp{>s@x3NRBwI8?~b9p-YPOfwOe56 zwv#zZ*tc_BjN6=HXZM+M@Jt_v%|JQwF`D?!fcinlxvxa3A}@<4V92e!1go5?ft*PBa0-Z z352*JdfT3hTz#brg-Bg`ZUi+F(3h2?VLq?n&3)`jZ?ky*mYbrDMJv&KSjDTfPVM(# zx)KRDQP$N=-;d*WT5eMCY(1;?CFtAc;%2;gyf`wR(UYHnJ~OxVY>RchA9V;wfnrY& z3UWS-4Qm95V%$fcM@tD2BduvqP#5GQQ>yC71^YYxZYrOfKvSsV(g>Ah;@i@7pbL`ttq6W(;4v=rH}vEedIKStLj}aaoh`=~ z;+S1%10LH%Ov<^F>?E1jx#X~_nPXvCbG#lj(6bC5Gug0YULS`)BJwohOD~j(5MUx7 z1+$Yc`&)o_#?6Lau_Uxzox5$A=_7v9pLT(lj5kxR+7R{QnQRD44`BhLcuc`DDiYhXk-^%I7aMz%*{?s21+Q#1VEBHj%{9T+P2tr6qn{bwNY{@-9r9#T@j@qwVOPW+ zz~N{62QOnV6`TSODBh3>+o5m|slg)QlPphh=bY;t!2*{$&z{+3!6i%ebQ$=T9A%d;r&px&l)ztwsr!Z&p#@M&iW zV5O|%B`_BLiqR>~XIEV+E^1*q*{k4MJ!WS$V|lUtLEi%*-*opqRVxwcz^*}I{z~tz z3_Sx9VrAH%KMXcLvhhcu1u=7U&){LxXc2`8cBr}+-$iO+Pgi6494;7_UNd>n%6aHz7>LWHO|zCc>QZ{k>cMtG!yS`Et&IZrEi^T zwH1>~WTiZbx!2OwTau0gPWXpN(yHX`GX$yQ;|4#y@9(mb{4OOq0xlv%Zbsz??-PA_ zy}%3756Xe%i&| +P8YckstVz9Vi`Xg1ZW%zkn`qMh+{8TIUE1w}{uDfEidGTp=0 z75<$m&X%~`JrKa%lVnK3RC2=dDC};`_A6r4+0|EFAI7M5?FwZ_74QWT;kTr1Zg=6* zc5{lkQQj)w48b%(G~;QukBMRH>hGd@1Qdg4!3Mr6*eJI9+Fe?q5}lu|>Ru7Pj3gC&d(BcWgbn}x`e>qsaZ|MB_GGkJ!!aL^Ex zsdgms9?n?54zgAaB%IOC)AN3uN*Q9EYo%liJhj6AY>TSK-ORJt8UAy6$ws{*gqN%j z@oVd(Y@x4)VQ{>VVOltkoe&kfLZPzbW1)PQ&1mmvgGM8C$2C5^g>qY}dp|jbg>GpR z!sM;Fp4Mm;;dHbCP;l8tC`q?=*A_tZn0CE`P7cDTR*B@Yq-fn^TY!{Jh{ z1zGL@*CN}0YL73Vj4OhmnT6)*;7F0Z3zvZ{n3$WG6YfV_dx#$BC$dVW3Zlgo?dgyO z#15pZ+l$4zXEaL_8|V_qP+xJvJn}Fa2ZzGmuo-llL-3f`Vpw41n3nq#B98c@y<8FG zpyn7mxasXioG-^4u2t!JcDkdkEZgNgc65!C=E@VW`&AVeJQ&Rht#_purnF7S!NLw2 zj^lJ<*%NHh`s0CZxZ(7o?aN(sLU#_c@Qs_Km{Ox+QAE(iNKO zp{T8+nzXWh)ir^do;;l!Sfi*v!~{JFM-C6ODEOqpSEgj}-r_vPRE1R9D@!Ec^Cz`W6=|ZK~#o6OCX1QQ8#EVMg>I3cQo5w zeHa@UtP@+8&?rS>Avsicl%hF$lY^2AK7I-KV=fV<5jmF#U3lLLtXJ*=+j1U>{J~Khx>QaZ684bq9*4NK4xmchlv^bT|EFaG}Lwko|N8WWZ{kM2S`78JG90weolZ zhuMj)vM>6EQr(9*MtCud);{817Ee?1`r&s3T(S*(t^=!c6{^&)mD-49LW5&Ed|K3z zcNYMLm*N6n)DOOvm{x6ZX?qf#G(I4y?tsKxD8+K4PjA zfT5F@hK{4<`m8BnTCyfgarbH^EouG)>iyx?diEzm%vIor(ppu*4A0^jKG#Qg6OAsK zbd|ZY!=3B_U98eGP1V=KfKsQHM_*d2vxl2!J$3deuQ~LsI$6EVOu6}k7C`2vMn_ZL zK_wZ8R~a3VKwl)3v5SX!`Z`~aj2;UzoE3bsl^=ZAidlt%h%naW4e zy8GVy798yQq4X#I!fT+O;p5^ULBs*wL+1Zu25)XL>jopzU zTR8dN>1hj0d+AXQ=hcE1CKIyy2!+uQc z*0DiKU#`(L;?9)^4EacM%gVWJ7yW=r-r1u-r)ZbmowprPz;dVTYq2L0PH04N+kTuo zXM8>+dy+ab(i|;MJs>=3yJ`i3_+?**rknNdFMbx~M5yY(ij>TH?M$$L9rR5CuK{5f z1BVFz!+SJqq*~e6c$CQkCN`Uf(V+0TZW0C>1oJeg6IA6cjoWClXsvMXWpI|_pgM(w z=zZ3Zo5tz-0}>K_D{dMznjrHqFwqM-UBSkzuc zR9~Nt%OsuoT7+53Mi7l|rSlk`SY(F0p0lc_I>RuP)}B(Nq1p$>IBw4d~lkA0a`= zH}{|Ok%wI&@6EyBbQMJ;O($ItP*~+fgxn{V@n3QBW}oGXYiE>(Gk>(^?%qJxq9lgx z(fVW}9dn<3*BP=L^KscdEr|D2uoI$;EW-Y}u!wD2*3ZxIWvrk~EO`Y^=V+cA9)|Ko6^Ska9=t6)g7i z<^iee`^|RhXhNU9eJ2}iFhPh$9kBdPk5{k$^zEw$I)5;y6g4l87j&*;x8OElmCSqP zX`G~&kuMh0Wk`pxJ#W6%>GP=DJypocV5-l;>D%BARMg>t@4vd=pwMIcwE4wdR>_w6e6cnmmH06f;Ua zDIEDr73F+TnKjm%rFCU(@F>l;VYXrB+os)13WuGU>oI|ZFX5ZK-@0xg`74*eHdYAN zDo{b@+K6ovWRq9vwSTC#fuVhtq_`9HUBUhGzU7GA)R-NtV_7^^51T_GbeZCc{tUK7 zc2#Aclw>hGE~6D7sq8WlaWZwPbdMRPV0U*&vhcCDpnaj*2)qub&Bj7aA1?h9v$_OM z#%w|>L#5$;(t5iQ=47TB?1hu2BF&kxl3*`~;?k1?hkTh;h~E9a)WUUXQmA%BlP(@3k-7y%iLJDIRH`iL`uk@dtBVmwMTDSSmOZq&^6 zBo*Qx%X#~hDba;$3nQZClo3a~lK6J(Q|Q}ywa*27B#&jcpgNtHgZf^J7z&7e9i@<9 zGch%5=Y=BkZUP8{?AV#SWmP0k8ivnsVh@RyC{tnSdIsUCnrjBGi0Q*lJC{dOg=g`U zvbZJ5YsGso%?;fs#oV{-alsJVZxzMn?cJT)4z9G>vt2Y7VK~90TQLWlucooQoHlg_ zVjIB4$!s`^rp{89HFvbqRccX}zMw-7W$`I=I&08bRpHMmK}f#KuC@tHEa~)Q04Ih` z17BZo3M?;nY}=bwHFO|!obP^>rVP0#7%Xw8(-)(VvC82{{bK;F3#{y+1jj-WJmPMC zHR6H8WQhT0b~mDeuD6aPK27a&gsQp@M<_$?cZClzEd~Xky3>lT-!P$NX-%N~pkztL z_urTHKiUw0tl)8b=LK~K_ysNT&UeI6?b6FE`N*Tf>wrQeI1FpC3LZeAdEH5l8Esfx zye;gQ!)}N35KcZke{k4Ex1%&+>a1z#htcnmK_Vep9flz}7U*0>mMMD!2T(iW<0hQ3 zv4A%9i4&`sh*WG9sYF^-xv`uROXVReuZ9`A*5GHs&kSM-6XlN9?$Tr6mMHZZ4Sp;v zdbE`?Dm$+TK=qy$c_@2@Q7hQ!>6?oX({ly!HpfvT{EY;0Vj$&rqO>5o&vs;{`&s>n zcY6r!G*OKqG-&atrl|1@n3Hu35fOFrm5!QhVI?0O&*`hCDYUl+>0L~mT0Jt{QjH(X zw}XdCs8fud@(eLfaXY-3PiN35img6bwSYeC6ATZfCiLkjAiuI}?dE-`S5osBcDoNIf2gC*+Iuaih!R3PVE) zaG@~TUGSk77tc-`{>%lbcYtdt&8u#;E<6X&t&x$+k+_Iy@5`yqPZrEbR0|Ph9TN+H ze_e=@@M+4=c3?*b&$im7a849Fkiyu2X#|ynRem@*SC8|=(Ig3N$+@DHoSeute+{@%^<81@ zt~)k+#r-BR9ENjNUrBwVogZCYIhxTneA${9T}crMPVaCkjLS)fYaL}wLgh6b5gt4> zt+*jgiN!OGmIh*C35n4rrQTZYZ48AFG`I+&5b5>6w7Y;UXlpMb#ksRCeTHHaG_rBz zZ%<5cg227=xam7FS1C;w+-P7?Pyp{AxW(kdKCm=Y=hP?-8`PYhgOON}lSX1vN*K2| z3IStZEAd<+q~56y?(JZbeT>ngH67sei;N8%U3<6Eh{l&s|ROne$=f9+mZt?SjZ+qx<$}z(p5q!`R+qd+4=WdP34vP zBd(3W%d+Zamy&yi{+&FDL`WI`E|GL!vh**0dwEsLBI~NnX6vMybV=&wTIjjc>kg&z z*u7I;6rY!t53#WiHO{!s@ZCVe93}gNA0@Zl%t+$aL_R~JZuuazm1KK1I^rM_=F$={ zu#1k?cO}1eJ3JYzb%hX|f&y5rRkU_Tw(dUx+Cjd%Ai4dCS^G~j#}|Xcf5PQT>e}d9 zF;W5To{dfI9qe2w1r4nA45@(r%QiL^hL%4~qyJ!z{nM!OZ%r0|LK*;@GSszv1t%VA zrh^5Uqk|sd_l`lq2Sfk}{RmP868$Hm`)RlNw{5eqGyl`I`Y$naJ)%0ye}YUK&mUk; zFtT=hp;^j9D&(!n4fP{(p_bGy)iX7dlB?>MjR8hK{=5W3)#^e$Pklk`B9FB9LDB8B zBK;db(X$VGIj0d@v+t28MAquzW83kmXJqg@JqX(=tg9y5Z(^ z(en>*BjGp*BumWq{U1f3r56Uousvqqt7T5bp9Zxr zYv#qlmyv~$;~#Ljzf6Gt=(EAb{4cCrX7+!$?E+Jvp}){i4*@z>prJ7xFbimB542eS z+1S6i?Mhj@IhyPK1KJ2^w@;@eK_v4>Xro`&$G;ks)wMJPynxdJ>xo$diz`Xc{q#m~ zwER^9XxVS*pl<^BZ#<*F!pmi3Wc%N61+0HSRQzdm{4zQJ36}fcPGK&x}89r2lriGco_0?el-2;-*%nNoVd;ZdUNq zE`W2?#b9I3QI5Q^=I@5bm)7xr@Z>*Lz5C9?iq5pl{;8}R!INl|qdOU2C|H=tv8Ww7 zvA%54sz%}`D((Of6<5pWYe+d3ygwLr#`7WNQm${r5S z71Qoq-fM2+T|ayrfLq_7U=n|CZwzwL_YAMDhFx39={M>)^2tC{+->R)G^EdRD+OiF z+6nQ6Wjoxq%GZ%d-L0+VpFNPQvKEJET?Y^)qgaKAT1u(9A%sfB9)Usm>R_#B{$!p1 z@*;Sdt$(s^2_O=ugQjqdAvOa64hqB<#P`nz^?x#8XJ+|V zn83f}*#AU1hl4pqK)9H3lJ1w2eAR~l1UL`fd-wyuIm9o3^P?3MCR%T=bp6(EITxPv z&)404E3bhF=c{Wk2g@&eehSn8`&w$kCR~hit!x>~ArX=)91TD>fwhDFu3)7!LD`lajfdsuR8aoC-*+P&d58Xq*weFwmMhN%_{FT2r~cVjsHE6e`kunU3vbBEBni~Q|0^e-Oyho85YRGVW~FFX?G-+1J6#tofk z(J1RJ#9f-dC4=BjKjSA|z3?%;V+njXo8`RP!FqgYMYUBU0yIQcN5OcqT_lv=Z_E~2 z8YZ^I7r5L8a=aF8vcs4T%-t@%pi~_MMR0gdOuJ_5!w4{3`pxs9M-we*+oPwPVgbb0 z!7B`G9C$gEeL-%DTUteaXT%?EHREO{v@+;`~dm9_y& z5P|Yz^oWyb<986%D1N0#$f2S1O;n3Ryhddsi>c}E`ds()3Q)N<#ZS=Bz7R_{Qi}~X zQ^V3+psgF(smHb)D{C7KvZh0}n%9s0JEES?6P=;xufyOt3IV)KY8Lm;mIB6KO0P88xJ`?^H~ys zls1Y2$0BMw#Jk!qFdWet{XJmKbYVUcmt^_k{K&?70ze3Xg9}IKf7`{Iq&mo2#j1;% z7e9$^dUE|%LkJU!YSxU=ZtXQY#YWhJ3`h7y6p@^0$`aa!D3{3=y3_TOW>jE{{I!FD3ppyjA&6YX2#5z$X<~>WXqN{Ve9q@{KId~j=Y7@)Sq__dzwLYT za_Cx&Q^Ngc#mwlyp^TVCRy}q*>byN)H*IswiTZGoHG<1=O-}Td@S2d^mwTV*_O`ST z3#ZRvIC<;Rv+=}B@gu;5OtR@B5~!&!iK4*oqwrM06LP6%%wmZ@8!urZM9@M63nP$F z;9fr%FC9lPXV=Bm%pRtuQnTFSirRyccXDt5294U?L#B{@H)cBeTQ!t6t{uA^;;)3R z-ecpo6S`buGA7H3tQ(loO4GdIa8%|Eo}@@_>0!T?GA~vf%!&mY1l7d>s{beqTE)`Q z+HEJ8EQ?k(b91rrFvO52(Lxtd?Hi3ZH`c&RVFxtH6Lz&Hn#xL9QvrG?0zyxHhpnZ# z+xLFrE*3CZ7DWL6Tr631SsYp9v_WhMx;b8ifYP>N!H5uWpn<}QU_`+LL2U~bya|X_>njis8hd zQUnu`Nnkdhm>4uI8E}q4M@D0YNY}=~+R_av8ChtS^Y^v^p0P-NYX#ZW=)VxB!6fY# zkVruhSV2>tp}B|Tzj!b&(Zw3nR`9}`w9(og=uK8&YN)t40jLUu0KB`ZnFo+R3imSz zq?Oi0VJSdJBB1z10UR*RQH&reA`VK60M#XmcquSekBl-nGhi8n8Qd5!;GZaiA=r$B z#s^5{L{0_3pM>)lTsQ)e8W#>mNe?bj1`SYXo4o* z#vV|IKyHtlrGllolZE9ttv(>9`zM=y#UngHcUc~3a3~D+9~C-b^&toCYWP~@_;pm7 zP_$nF$LM|M*-6njXYJqwyBFKzwbdSW9G|f?=;@-|?3$$=M^Dr``^LnjylG@rG04aj zOiU;;xfH%Py0M#=6>~Cd@++fQ4yjTNfZzkSi_EuI7%FHiLAzRX>gF=@t>QA3^iCff`JR$xiBZhcy1mn zZLq$V*=`$0YvAcY`UCtr*wLe$gbVZsXAd$WRBkA^#v1k03B<*s?GqwFQ^Y3(yT|^TcmIE{x5)d@s=QPV z5)CAD88Hmzm$Z`1>+`?ryC@zJe078EfDDI!jZf^3EjA@N=K8lw6gQiv&7OUB6aNj= z!#*^V!+l@unyU-*@m#ATuHKG%6dcE8Wv{4WKk_;7xL)6f1IiyIKct2TV66l(eXrIj z<#VfxZH=nL9I9?(TXluosb~Mvd!TcCJc4`Kc$SRH7o$;@KUp*JU$bWa<8nj#e4u{^ zDlV;#pBMp<3H|+!A50eWSBoIO)6(1y7y=Xy8R~#Kg0OB;Ov3jc!0r04bpWZ99Y;Xg zeMs4H1d<4#%J~It|6e<56Sy;^pS>BRSbp$kaDc7{iwAHBC>-b^f&L!>^akFuf01M*kDP?eBJT$-N~44(_j$`%6STI06HKl-7H^jxLdQZwaO`nnHk+x!mO5 z5(O91U!o5e&E67Bvqi@BgXN(SY5JplD3~wo7Xg4(R{tR<@TV}@xS=kX3yn4=xLGx% z?i`F46BNh(643u~`=EGaO&wNSR9lqs(RuA_&etSGk~l<$FDXO`&d}O`3kVexk>7wb zmlv2JutA=YlQST6fr!=yb7cY601iHprRJOx0io+eN;$5{h(J`2vOes)#%VfXnlW-& zjfDk4fC~xfLCpffBuDlX!8hGf%#);WBSj>A;-jE?p1PGQTaGz#$(9GLD+Z4 zd>n+F_c!@CI1CuuMd3t22n@u@aTw4?21lfc+YyR?L(|&Ae8aTs$4}vqKdNJbpD3n7 zqi6NUD=pR7+60#LKc%H8EtMNYt+a4B3Qk-=D7C*UEmXLFH+cQ49TO};9K@|DN(<8e z;3GPemZk>*lZF4Qm6pl{nxKOJWOe>@r6o*0O!lABl9d+bJRhf}g$J7urG?Yr$CMT> z+~20OSUkve8B-<1{~9QjS|F$Uy0fuSR^dyFALS($XX$28OK;H4VKb$%-P>c1L{K*A4{ zU<4M7D@_)PfZ$;!$|{5xq?kf@bcP}*sE|;^i{=;!ynxXZ!unOQ!HC8TB@r{Zp(M~Ay@MBOnnHkd%8h~xksE!uXh!Yeb*QEg z*RKi=fke?aaj3nU)KJolaKP(rO(8%!1xLY!2#!8nG&_Ota$-}6i*CW;ATJArLm+|d zE@=7?js&?TlNm~yo(a5a+7#lOOm1-A)puA3NIGEQY0pxD*MyrwSagexJSGVvq8Lgs zQOGfw#G}O1c1+;4@1_voWO5^qNm6jZ`bH-%nvMy)wBHos`bEKsi9!h*V3q?sFAPd* zo^&u74|^sP_I2PT45ttveS#aqg$Ry5T##!rF)pgW%v5x7epPS?B#PjmNh-AMBqFv6 zdpht$(0^WR6jX@V=s`u(pM)3LoI+H;Dl~X55n0#7Xk>y>W?|xKdz0`|qEiTuPF+J# zAtIv>6-{3fUMF=5QPC|lBvDFC44OKNB_~RW;h}uDNqk8>m;^>+>MXn->=Xi=Ol(L_ z@fa>RQHm~HVziwSc)8mt#PzF!LqtUp92oeV#6*hGc1hqxeWwr}onoV)Lc~T7Dw+-n zyv{Tk6}=;$e^kB&ykPb(0{GKMf#4O!X=D0t6o@hNcoYa(N_}h; zh_ZY;I6-EHfc!Z+Cky^+z6A~o&D zeo9yPvy_%9Nrqml^T#VK)hN#dnEq2*iqcXI7*Q)NR4uk5N=wd)g6H{S0N2m&Op*e= zEMRURD=ij8xgj10I+b?9E*1t}UjE;#wHRQ+etF{hpRTqT;M-3I>OZ|D>n%ojAHb6GXNgT5o@PZ69AFol z&<~`9fW&BrfH0y|p42}mI0`UCbo2qE83n?KPVP?q**-2tl*-AOz#;qz!5`mRQu9Ag z0P4TilG0jI(?9>vT7J(fM(R0LYY7+d?`kb^AT3cGB_>Xu!$T5>k0#A5#xT%~DPgD? zt0$-=Kh^v{s(*^XQ29CZBKY%lm&%Em0MviFJEpr-9uc+f!Zm~J=_1VAW055c!X^Ei z5{z;1Jb*FX1&jk=99NtU-K9DG9;{UGXSqxykaY!m{|LbVUKAQNBhnt~6ayRzG=^U= zm_Ng1q5y+kCOU!9%;mwrq{id`!&LZ!zc>Ix#zYYv2BN~4gaT8H_Q)9qrum&hg!FY& z#(*KBqX!s{_RtxIn)&%p5FLz(L=hcK&^if`5{~xh8HSq2c`6XnDLM!k$W}zU(Rc_L z5l`Ek;3jc){xGU%7!xpLQ|EU~~wYn@cA!np7-c5v1=Do50ii$pQc4-B*~O{a+nF2a6Vr zDbfUD`Og8TIN)HBfU&|FbHE|e3k;d4AENn3YC5I+jGTc7k$#gCjwKOcVlO-vva{k~ zh94d|#(|b)BJM%T7%%PECCqgDi`D&)*WrIXcQb|#^5*|^n4-fIvN~hPw9bge!r?G- zHyS?ke7s&_HlQ_p@bm$rnP82XYS!jo z6&;KTu)xBzZ16Cd^CZy}>?H9bYX0V_sGM|)jsgr39eu!PCt6VRI!^_#UlkpKi6T0f zd3%!ZGj@`A5jD&6R3M~NbQEBS=;#ARd*pzcl6fkC{i^5?Occ>U%lb?fe#SD;?vhP4 z`7)iNqX0uhM;|cSzUowyF8`|NU`%5MlLWWyw4=1xN!q%preCI0bQEBS=;#ARyR8F@ zJB)=%{sgTv`^0&(VpM^ksX$1l=qSKo(a{NPlD3X2L1-#~(XDmJ zXb4!UbS$Zm0CDL|mQ*-d8VEH3^HkuQOmN6VH!>`Etd34twA(pqTIQ*M^{Zk-L`5E} zBS2g_69pbANrjk6+Bs^H=BYqPr{E~S5Yf>GjCMOm&8R#TzkThKPG(462F#&@A!fBLn z8Z}SykKr`9B5Z|MuExMM{f8kfxR8HWI1R}OCEy59I|4X(pqx+wm;^sztAY$?O|q^s z22bVeOi)pNs_K9Ia26dL%Rhnov-Fpm`FH}c{HMPZ{iUW%{!xDsK4`N3{xqBg7xM4Y zUuZ}giyG5kFdz+%=+R%=ofT@f<*9Hie${mn`#uAT0P)#P-dUj?3@7|kxj!{G4Awu|vV>)DQqrgJMMh`67p#cJwlk+EtO&sEzKvL%k5SQI# zMv`{;d#dS>>C`m@6e2QuK+z5fP*WgJ-~j#P!u|1nDK-Bwy`cUqzm%Hccmf3f`K1)U zl$tmBN52%V2;_bxT+@H(SHgw-yZlly;M$0x2*5jq87Bdcl^BW$yi;&A{?HDkUrF2K z{$rHN7_#36j|UJzCN~B&YS0ir7BGboaZrOf!4lh)Ff8r-6KYQ72{hneXqc${8hSzf zVTOsybD03ae}-wyFj4tKe=$r@MW7faC<^+cVS)_Wk&=jk8M|m3 zCfeQ-HAnLV73JTjztp_U^n&`c^p~1}c>)Cg=`Tfpso9)=)L*zFko6a?=|AW%T*$vm ze=&GyK{Sf~VhGSgXu9;5cE>=RDj+mLMfn%%FI6~*UQmCS{!Tt*_MiTa=`WSL^%wnx zGqjO_HC)qw)L(Lo{ChYuVIl(}7LbsDg&$z;1-aZ4ko8hJ1+;xL$O_%mpQihOSYt zbTxOeadvZZLBVVvThS_JOZ+* zfiDaQFvtG`I-1CrKkSHuvv`pI0beE#j68H=!h3xG0=fxh`+j!(I}yP;Pd`3~@(if3 z;H$^p>HEE)mx1m_DNxEC;Nx-McgjK znmg9mQum7})=NWMNmEmOt*nL94oeLiV7t(eaRQf^Il4in3eXS0elmKaqq&oXjiWVM z$->gn&Bo1BSn&r#C5qN|0yYr*$Pxv!Pi_5fxu{=)x@$vu31wYvMScCX%1&OJoitpW zwkZj#T3Xn+JN)!6h*R)OuL7+QKf$X|bsT6Jz+yk!3eY6BB02Fv{2%}_%TPym;nYbWI;pg6E0MRAyLI# zrw|`@VtizF8)$_YNQQ743p6wWW$e&{aFQ8xSYXnpRDu%^31~Huzb3S@ z39x8=Awf(QkjX`1!OENfCJpPP!QjGR$>7Xj27kIRxH4!l*f3Z#ID#{74DRq* z8Z@Zj0pD%bR9NN78XIKAU#Rs2(;^UR1VEWSdDaAEjcG<$u++rszZKaJ%?uzbg}{*8 z84R@a)A$wiyK6VeBxWo%`TB1KM&T=j*Dt03Bg>2)V3SPo1)MG4>*5cF8rB7P5;4f7 z*#sMF^d@^VH%kRes5b>-KQ0bXC^G7k ziDF7{a*BSQ9J94tH{jq?t3OYlCCb3HeaXSOEWikpZ%;AD)Ew%tIaWg<#RM5&IW6$& zTHv293Ih)RCv^df#}M%1Py?;U{*wDBS>%qlpJ9 zjvWm?()bDK1JU2a0rq00-0o$AEwx)G}dU&T2Yv z(F_%1G1S2pIVTTL(-19%I*4Ecn*Nho|5=VDHA(sp_UbzVdTbR~pXQg06%=#=x(TmU z2s)wg5H3_jscaZp+tS00ZbQZsbeH9k28Y66|52e6Rv&WEu7s^fmk!j#gavr z#gRo$n}vGeNEVC;0SD|hRs^gUC5F$2c{~7BRCIig4H~17b#!zB?ItD2ilt_6pFraOY0V^BLroMvK^gv}HGh`vq$Yw_ zwy|(EgobHA^##K9qb@kZqN?otU{L~ zS#Hn{<<4;43HXWt$4=lK^5q1WH3T|?ED{3kkRL%9!%sPZ%m4>J0V5djqX@_haOlj~ zZzwlLrk;YYkXfeC4jC~4p0f!(6Q0}%?~oA_;CXZK88Tu5JS7W0L%B0N-v>HFDN8V4 zkNiHAvLsN-l0Yd-0;RwRlma7A3XDK0Fff6Pd>pH3Maro zXOI*JXooBc0^86Xi3B!e?VIPePZkO30mh#q`~Tv@~KHaG(VKid=L=xGN2xq1+i+#R=RQ?%6LM3*Ttr3jfKbxIAP)Fw*Jqf|vo-5jgOl!{H!A<7$5AW&)wx%kG^ zhg=L4-Gez+08*Gu2KuCYPcaNoV-L=Yk)H<>SV70+=fPZL&@uUWFs&SPOfF@ZArLwy z-w!5x1jjI~CG<&tf0&^ZIwrqAMO-j*Iyg_M29$b1wlm059MJdV_oUP1t>D-m*b3Ki+I>iasPBwa{qgTC%U}-v zL3eiq_g4d-4#20d1Re!4oJ#%1P(e}kyy;mTUK=gv=7>f-8l+sYh(eA3Hb^4t_n}Ve zr$bfn??0Vv4iIZF&cn^ICRjXh_Q(8k>XjCd_a`?6SaM5%C0iCO(hgAF6SjPa;8b9d zS%QUT%^9?TdEWsG?PpgFGKzm69N>|mSlhAooKjs06hlNnn%{BW(;Q?k|t}sksJZBV;g?297{!@d${O zr1w!`e|Z#@9g(Bt$0%Cb@3wTaF*p03g`;cZDC_8IGnNW7LCzqxXsGPS&v#a{bhlK| zhH@9>EGB*mjYLK)qLTlvOh(YELWy)@zzc#C?I;OpZDPP3AOIDFe+>4a zPaJ4rDHl!l3EvA`1KoqNLDz^w$KY8+;8qZUD+Fx>(AeUEJ4gg_qMXl#T?dDD*wNfqTMPh2Wi`Pv{+>Off8Y2GmuA zuA}~he*>KZ&%*+j5PE;;duX2oT3F~jbPZ+0L0Ocb#lrzN5&8}f+%9p@f_LE%7wf_xvi@Sq9-or7*J z20ozz1z|9Fg9{ZZAW#VKy}@tb@4&O5>&3zE;51IC&;UlL0*tqjfFnq$5KyI{Y*2-u z-r&jraKRM;sti;c^j`2W^gY!!Rx!wehlKmr4XS8=Jx8eoaHW7M2H4=r^Op)isTgo& zCs!o6VnEV^HmK~O^B59UiXvh|$TnRTN<(x*fwk+<@@CG8mNwQq-9TQ87&$4>4J8bG z4``sw+7*Sv!Wq(Vut*q$0^sj}_(4g)Yu`aZJ`@8$OI0v7ce)N?)c2~vFAg}Q4PDmk76n8x?o%UH!x-MB{@0c7cJ7b1n%99$$tEe9L)g zTXw->^UD?Nj4Kqi8S#qvUFkDyY%h3)^0Gc)@C&Nk5gImAX8KN!GMA#&p%qM~GB(BM zp1-nNu`{^nppR`v-OPh4WL;VqJmTIz&}ItX%hVWJsa147w35I7lv-fjQBpnIb75JR zz`B_m?#R1j>bohnFAM*YB+tJ%ZA(z-oHJW;-&nl5Dro2*HqF$Dcm9?|io7fgi#<$&DZj zZ4XuOr%$&(Bp*D8^;pEt%ZFUjS@8>_wWcq4988s1x3|W^M+%pZhS1fI0 zc=CWjbidv+%@flUuh}w$+u<0V3or4jTR9VT=d{KCI;-#*;dhmup4^lv#45;sb2Go^ z;c1Gz?-&GYHLuS$y|PN)wz1Jt?8p-hJkuW5ujX>ZR)ckD4ZPSKGhIc@BW~e~g7Rhd zThsWvw_uiKI7<&Xf2n=U#iyQh@F+&|uE)O6*G0uwLX!IS>?w$>Y$XP%T)z9njU?|6ertO7y0<((|HDD%qMo|u4^3aY?%qAa-r?xj5$iip zUwS5_L!|cQeW@HT*DW)BvV43mry6e`?)qvWJ?b)er|@xcVDVsSknaji4t6JV$IQI+&_*D`H_Y5Mz_zpOT>RpgO}h^kkC-{LDJO~)7Ci5% zFPAv|=#^9==Cz>K>BO%V>ua}Pw%8&NCx3-as^gGQbD?xSdgGj*>+7HzPv5YMD z{0@~@_qYrnYpRdtDptN+CbUs;t;D5S-e%SdPirnb=A<`Th~~hs3~$Zn9XKDo;YE(q z*CO=0*4Lyy+pk4j?^^kFqss+u`r`H~hFO7c@>`#`I(gv+&s0e|>`WxOrZgpVL^r7l zUT9LisZIp%+mT2NPe_cCY)&K=q(2f`Z8^YYC=LEND(^l|a>l9j7oBM`(ST0JWmp8J zFs^!BJadln?yVBnxvhMQ- zB%ro?6aUkwScM0hxo3J_f5di9Yd&G*+|AZ~l8Tr7KVrDM<{!o?X8FtDa~X|p6|>)1 zcH|PVJo&I!@h;Kj88_$ku9V=_bV}o#-}|UWKAB6?Nfafhuz@FuTRT4L46a-==nSFU z<`rYgvb=C+v&LQqyJu;Q=JCWgGbLj3Rl6dz!Z$v^HZB~*OG=ts4xS^V*z@sz=FFIz zZf3c+Pinf#vFmAP-!l&}e!gsKxwm^{ZrR`-(cL>Uv0PA{scWQ2B6&33dfiO6(aQI!?R?q_xdjYi9P=a&`aEjx=?+}92-CPq z;ayA={*;Mpta%i%L3+8#nH#lsg(w!QUiHy0R|aO0w$>f#%?n=@d!#G3H!ot9Bmdx* zAYMuTL`?8SPu~4jRg$~bZ*4f@+Sz$Vc;V+Qg(+E_g<@Wxye!^uW`5+~@O~LXPE@V< z)@IMjX#L*YCdHIh1rMb;NlKlCo7KE5$~X%J_kQxKE9cAiH`@|XYF;4Sk?{Igt@M6Ke zU10%QsR^MC=1IKe{kipuMXRoD4wl-*I?`XTdA(ZBVPQFf_1XRb@Dkw)O03PYE_W*Xd7Q4ucS=Z)QceJy%5v3>~zTqmBD%?&kZj3 zrEGGfZ0^e>U)$_>|C+mZPu{N9&DX9TA5718*x-MU!D?)r}#FXpcu#*$eDw+z z^dkRKL!au#J)w`3XVpCM|2B*%*1MnCb62J2$)V1Q7abDAY}!M{(aCAw&f-&(hN|9n zYz;`xSn#5I&6aq{`>fWNMSRo?_HGyQkyi8c=_oj9qPJ~cq>g`-jE`<>-?K-8+fVti zo^ZNv_jSPv*|o9&aC6%e8$C^U5{Hfj9s(E$K$Hv zbM{mLq5g*zT1B6Fd0q%epB&QYl7G&=LOMG!p)RoW?#ZD}gHzzzRpt-z*AFk%<6&DD zeLg|5Oa4r01h_H$mzog|VeD8z$ zVXH_x^+6%5>3_KWsTSw0l$YUr5ksakKlL*~?+Z@f^u1Katlk5?)1~Kj55aZXT?ZRH zrO#dfC411?=@vNCX|ZfgzvgrH*fTJOCoM%M8%A|yeL9(18Z@N^KJAg>W4_7fQaIYQ zzZ=!Cs(f_m3f~c@1?n!rqYFL1oW=9|N^j;JjdADMdY@yTl=aLnZ+ogTn>;ZGZtm^W?K|uIh0tErRo?7Seb3>2ru$%qeRcEKtM=8O+upYsB;*?yvAGdociMC z;AgK>*Y^I&w*EKLW5i-gX{O@)MeLE;1~r58jX;wI?? zos_utR%U@h<{ODq_eLF?nl@Sp&XUWWUdGUpWP8YM4S&`Olfg165z?AcW6ksf7j#`; zW${>_cCE4uI1;f;&CoICo+Qb<-+3h}#xJa7ID4hnw$M`R6`tO@;emGH**A3Rj;Ahn z+Og2{gvXKsgJoQt>ZLI^t@vKuTq)kMotG0J)9K*fP>&ky<_SHRc^k#-80LZ5 zyQCcD8n?90ZD#0AZkd9|3@(cq^CIS;N=5xD&rGXZxp>W0B|_*K3r0^xLTDiJ!Tx+^ z7k{~olwj>8qwu+POH)Iv`}!Bk-V>Bqb6sh-o9T(xBQj}R26Ab{>CdHRh2}@O5f2^n zd$XeXlMi>%RneKD0*hrnClxA|9G_M<2RwJNOuUG->cfpoKPfb>y@6{2|IEQU49vQC*Y4&Qu* zzF^2?t|w-0!1FZCZBxtjzss8;hpd&r@3~x}SNGA(M(s(|VTK>WAmn2tGsclL+&}Yhs<<4 zk@^gt5FUeC^?bHV_?&GEz(-gNs(8=b`!gGgI$b+w8KH>J>u;^)47Ir~650ed8_X7- z9`0doG5yEazpS3Qnc1OaM%P3AELo|?Om)ZN-4E_NF*}dT$H&)q@LT2ecWL+SAL|^J zt{TbR({<6Qx_ac>V4PF+?K$dy4ylh9QBv! zJFI9bh`M<9;zbETi(&uU{;zaG%h7o}bHk#}M(WrEg+1ja|A~CM(eE*7kC7fE(iI;-5g{mqFL>1&d8l&)^Ijo5nSq(S{qxT{p` zp5RYP!&{r9w%k9}Z^WxkI(_oQk+p@{mO2H(ZaQlCOCIuPZu^V_3w{B$gLy60(N7 zk1ncrG z%1(2+xtFtU!)lqTW7F%57Uc75`R$9DUUx8Jb&p%D>i!wrf)WJN&{nIN7-FDrS=$XVxyggU-k}JzwGGgb=(V3&(1TDj!v&rc+WD!Lxd&t zPNcoR>$Zg`Ts})E>lwpoF3VW1UDfide6>o(aS=DlHGn0(Urmzr{l}%OTHLXGw=Q1S z_nBYE)PG%ODDAd%z|xWj^+c!GSn1x6vj=5RZ4F6%Pj&qE4SefqA1ustT5NTEiD#R8 zs#DwCnzouZ5(#_q8WMXVJG+?Hc0^W17QQo9Eg>cK9O`MF-RyX2_COeJy;gX7pHtVf zR1=?}-7Od0FVu%_xmu9qr7v+ZBln10S?$N1SM|NuNAEn9j7oWwu&4R+<>YNIOZp<0 zYQ9;^TwJkMUHxToG5^gs3!5DC_|ti|Ug^G3_kPzAV#|l(x>qfi-;3cjq=s-;k$&EFq^OhcqYPDreM2tPzfI#cGgK3{bi!Gz zZ25Ay+sWx=L(AjM`x{t2*v{T<-F1mKRVazeW%`#>4^GBe4+(0|&U?q|iAo$YpN*50?q1+FnYoYIOFcwWgKKVvHsC*z?w&YiIn#k~iq*J|oxL&t%&9 zqnv<{$aN z)_NmHu8Cz8s<;|=y-qIoSnrO<&78BAvz+(f|Mt~TOOVy7m{ZYZWy9O#rUCcS6VE#_ zn>WqDZFdp8cm8SB?G*mR+wJ^|J+OhT0axbWAL;}q*4oPNsc9D7zxdXny|dT8e|F>0 z+98*@&m>Oo{dUMCe;&*I@OhoD-ppI-6R>BYPkkkhwc_~RhzkpRbS`LUl`KiG(cQZ) zz$*WShO5Y8yT?vVWnR|^gdLx|ZgB0>opYL{HbRdnW|!_tpO*o7%R7zp)=ld^UX-Rb z1FKNKZUL)Fiqe8JD~>MWZ1vOL5iHDMIHyix2Jv0b7NOP#hub|ODctaL^)Q{* zAfCK3MvIA6JV|1avsLHphVUaZVqVT=6)!cz)ns?pN=DW@9|~Caajm_;(noSaY0C;$ z>k?*hEpPJISK3kI9QkOv>S}%Y8A}%(zQi3Pt2)DbjkC^1%>?f0c=5G~GOu53edckl zQ%?PDN|_km?QW5dyZ_o-MjzCqYg)MvKl-?nLB=diY)%39hPkg)%&_?0%KhD^UpzA3 zFjq*gvHbe=<0b3&e9Ttcuv)h?nK{fY&WppaFPV9#==Dp?-|S<({K~9iB~BTIU3l2J zB}O9P$@*x#%CzKt=DWUqym9tOD#yC6O3igeLyxq}7Z0%W@%l)fip%;%b%slV|SZateD{) zws1j@mXVrlbqbb6MCjxJWtRAJ4w3g-rFOJ6SXYmZbd;8^itFKU(JGS9+bCO|EZFeQ zTE)fK`zhFAx0r9<%Xm6h?@H1|^vTQj5>B?7_a0Z<9WTO>cV{3-w&0!h9G3zq^HA5X zSHX_Yl7lffN0%mhd2GlL|Ot(IXTictO2JaPe^NdZkU(s;izi zlEjs~3Lh%H*~_LDUgax#RxpRpV3ksb(h}&jA~?M%yvkKH{FYQe*u`F4DIG=v= z>=B9KZeQQgfzGD8A#r?s{R8`aS_1En^mkvuo$(;KtTuEexy+iKxjDF@!g%zAr_TEz zC)>TAn(gR;rSbk+yGV7j&iIV|ks3^VX_M74%(f^ep}Rr;t)X7)$c~(VC*Lmd;WSwW z*pJPcF`~BmeyNqirQ7!}IR!-Td%MThk!3(FA18dTszuw_&Ty3PBYOHAhG{_;4vcGc zsPaPSw>reJE+s}3Po(Vt`0M6hvwta%zHGB5{vM*nG z429nW>`J?RHmJ62mDID5M91}?oo|{2KU*SEy^n)67Bg#Q=7!Z@JMqkGtGMQ#E;Er- z=rTH#Qdt^*;>)f0$PPR1`g`of`$EiQJ=$*w9vb9f^=-diPilBkA6&MSP&)6(V+Vy; z*9RB&_1$>a$#n0u3=hL94NsMIgmuoVc6?(p58K1~Fk!Xu(T$0-mI~s8Sy`3%wr}5U zz@bkPKD>R8tWjPbEB8AG!tzr0(2#APDh_9NVQ0w}G#$*-7pXoR6MSzTX?|J3`RRHp z3RMh?IKzm3Gi)EaCT_eQ+M~HnBf~FZKku=CjTb}Mt+pte#y8!(!Ehbbxner&yhVN- z{&_EKWG#;0LZ!u@n#N=wyGX$p=gr}H^%knD0(`-xV5Lw{!6e`^!Woojw$*=^py;N$ zt2UTC%f!MhA1*$*q1VKzCn#z<{{V~pXO5X!GD~WhR%$F>B^t9p$@F~kU2tEQ0aTh5 zMswY3rkUPHR)|)b%$YuWV_n1(Z3Sa}m5mnarZPgY4;F--sFB%mWZlXh5utk;3TnLp z%UxceGx7CYgc}Sm&HSIJv9hc7TW%Dq@2h#-vU$jRs6TW6<-#xhy-lUE>ED_g-v)b|ea`3{eKjbx6uNfq|=?Rwc#e4p(K&+R?eUCvd>zBD7SRX=z( zPqKN)q_di>z5Ag@R{Gn>zEgL2wspwVn>Hx7c|J}2kU%)g{-QX+${}5)&1leVzkS22 zp3zqlw$>R(l+Eo-=Er$%ALQR<@&mSogTy-Dnmj3CrMMqn$W)3yK5yR<>XE`MCSjwPxm$-S=-jcah&6YiyFxmwO=w1T@u? zbcP?aB^9q}(|p-|*(ZK&VMCKbRh3d<@xfS+H4a+~wQNop#HK9RM2zi`JbS4@sqk_V zb8L#Xs<8UDiWvA0{LSb6N!>lC*(LRRAKQDTz4_egxuz|Dt$G7G#`9y7q`+rR^>^r- z4MOQccN=U&q6dAk7_GOL}Bev3tj}H@0lEcKJOH-rbi`!FcX9 ziy)KStRuc5Cv@?m6{Ss&Ro*PSTcM=0VtC-ph0H7Yn2J;HJYKplRMoz6R@HW2u>BhM zHr?V&yP~X0vr4SC)jH-^UTM49lEr(q5Z~^QmlaGHSQ3|?>V7u=>NVDvEmd=D;#&+1 zQ?QQ=Qr4f}p}P!I5z~_O;wGL~Sa+FbuhEszyylcGYqng|d2zDY;>osU%gsOBh<T7d~%jcatuEaLIOMd=JpEGm&9+o?);a2>8I$G}p3MwPldRfz zi`TBato5!Qf5z5i&ry-95sE_hQdpG3nsc)*sP283w7`XUMUB62xky52;I();UWuI0 zoUK|c<%3JsSfF=r&78kRnU!R(ofLXun^bz}g_TiwC8POD!gakS+df3wB`#TUPBU-) znIr3BQVKr3yJn@c!+ndzHrCJ#?TpYX+glc%dUC7R;8hCq`_*k$SHnCbPH)RIu0x;I z>ygWli%nP5KbIjGl@rRPS8{UQvGc7Z13GI8w=^mblq)~lsBXBgC+G48gUs|L?ynt$ z<O*)EYVEECuVdFKDQmxU%Iqau$-Vy1kNKLbGkpi_k{i~%^zN%EE>zv!5I8zi z+a2iS+dbGJ~Z2!UvF0j_id1Je0pDd zWy6aB^qRr&5EVdsdvj+0iqtvUWtf zTT;5*x8LH-UW-a8(pL{(kF+??ppnnd4bPZms#jG68OA!;;p&ppn0ZqTd52$JXgEW1 za2UwG>S!jVD zTE)QXIO>|)y>Hju+midaIHtfSotPA3AD}OZYUp>E-ftq{!Etpv=8Cgq!Pp6O#Yq{4a0X{zFXRA2IXzptK&3FjnzEo z>*bAp<1SOWZ_FLPp=$l+r>c-R74WSEFU5JgRObCI-}7^C1xMB%+V*<7({kuvhkIHp z`^i+hI_6J|U-p0dDBj8VEqLGNSb>pVMrYq6-swTlT$wwWKT-ZkeER-x?w3Oz^4a`V z98QOIbA`GVd^zgTDgAJise?0HT{hc~y>r9E?ty|n+b=P!EuPc(hL}CrI(a^lT+Zp- z3i5r&`H}R%RVDZSy&#=q9-X`&H#~4+`t;D%uVGg1!3O7#U<02Fg%}NX1nZyl7aCekGmh>GVUHSx@p$oC_a6OTKFNxS-hr#v%{E^xdChif+0}UOntp{5i+dlJh?nW|WVtpL+(`W<$kx1nglF)$`Tbpu zuj4nff0T)0Gg|+ZFHmaPfLp6P+u8MQ&1E5#`fIi8(!bja!}l(ouP`M z3dQCeZ`bjl?Lk1nvh{szJdGRT(H%?sl1iNvef-M!zM3?=a~kdHC^hRdKcB1c{D_cX z;>pz{OnvT2PUSGY=-jOql zXNBO2Pz|}QvyZG0j0!cCi=LglGUKVgHs@9~MG5|1{~pe5ih2TO5&rIV2cj+uw62zT zs%C9{y|$G};>5D$tYHCpau)n)9QudXDJ+5yw^*!5o3DQ)MPb|WwP6u?(BZuD!}bb< z%2B zvoHCy@d7W+#*Oh@0l#UdX=4Icgt4}l=HK0^_q^0|?#;o0u8-=2-p5S@?vD;N_ICWcbUFned^pR_QqYq4snOcl}r3au0?ycdrh zsvLN_oh1^O0ZgGs5hu~^z+K!X5xi{koa`;tru{9B^Enm>xu$il$MNVLFy+=*-8dvt z@SY&3XUHjTdyhZqXv*gW#`)Y>+k%??=Eoz%ziLP(pO$y6NijR%`uuvCxVzqY$8zVj zF;e>&EuYNNjB!=qF2FBe*1%iLz}|Xf`_&~^zH}DYW?wxwqblRZQm4VPuhV6O{;n;!Io{rrJFEkp)7WxEb7dmbHzL5b@rd$k79`CoW{+{d3m-er@7%v zKjXJquh%insGFX)G?X=u&FHdUYo6{j(ww{*b*E%RP|T-Totm{#x~xmUfqIbEjJgtr z;ptxe?X${Qm+(*j);wRGYuwLvI*tMot-U?m2P^eKnACnv9LBsq@vH zY%^q94&^x~8!c}v5{#BN*Sq4sbNNv#M!$5m!(Xp2V$odQWu=vJsJCwV>{nMk=eE?` z^qk96mBtc%tLXES<$4O;=gU52;TWH_mM|@OA7q7de)Yj#Z?@rvdor^Ot9aOg)1w)W znO&K&i1}H@XBoQ;Yu9sSyQ^cx#ot6T?l3I)+}XO(k&St?jjPP8Id6HmtGyaH%wD69 zthnAhyyU#ht!Tz4BAy%VZW~9-**|NREGgRcZrQ@~#;DT=*q>!Fwz4X;uvz)4L30^j$4!lzUG|k})@1 zNb+XjiAM!3XUy@zr4Q$+H4dg1btiTzcC;jRRz^Qlt-0e&G~Q{=eSh)O0@2;LptEMJ zR@@Sg^*RSd_YO*}&rek@^j{gX>BO7H&rMJ6iW^=g8eX1t%+5Ot&+^~@al5wyw!c{%dIXkUEw>n&vlfq8MwR)zY@7U zz3%b~=#9ZV79=5H$?L8wi_2butmG=(3*L5CbA)h2=q8q-}SKfbIgzuv@lMQyJL@Ea_ zkmZn14JS4RIc?fdiZ5cinvOv{+-3;dn`pc zGjA^Tvah#n{Gy}QzhslWnrJHpv# zrA%j6m57~PRl0q>`qdV{)>|#_LkdG>z@o5w2(7VNkYklT_Zc z>E^96mX#vq^A`uEr`PrQ!`NN2+M9woj@P$cb$AN$f~POZ(irKN=PiY4|dse(1^&x{tS|==n9v z;;u;Sy~wR4xrUrhs@eE2YQlE5SCi8dOQH>IY!i|r61V+jCm}I1+Q8N}Ir+z(owo7G z0f~#E4Sv|UllVD0+RpY`@{c<oMa*ML`;PdGDD`DJo_QJP)(t(4^BiG=8iowmiJqkNsv5KCN~!TfR6hiVe% z-%=m(Nk&*MZo@blVdmUD>cnA~A-HrF*8S!DTY;;+_Q&48Sn0-ET@*jd_u}E@LP?7s z>$W(|=_4@T-^5y5YJc}$JHcyz@u7K472fmD`J$)W5n@aUhO*bAE$5rsS2Ml-EXh=E z6^_|$c=qJ3is+air__&iJPym$)a)E%Vs3&w!fT(;oG3P&qo!t`&0=wE-F3s=F7-Bd z^3wOd6fEU+;1bGho1bm{K7o7dSN_4TyMtOKD!xoFR}=c+cHyGqtB!ic@Ik99)0p#b##nW`p;~sv-sLbTIi>LJcFFQb&mwp# zzP#ScZ@nepL5=M4Yo9mfDn2626F0%EZ)o%X7-j8u<79RcIM==$ic-0Nx1C?hs(}~GG3LNmb))MO<&kC z)X%uxn)&dajpkocImB1W6JnxN6N3t6<~+F`eO2GP;O2^FOo7D;@*bZP91c7_#?^Q1 z`fc25;WdkI>2-43?-w|}evx>1p#9-zyW7$p-0+;Y50!C(Co~}M`ToK5#{wBMf^R;b z_TIW-*(vsOUcTpIa)M`~o!Jh1dV705+dQP;RBa;Vd_AWqB+BW&&;1zT$?^6$AI3&*UX|MUvfn z&3YbJt-mU&bT;j>lbG9^_!D0Rk}ch(f=c$@RjY945xE&t!D-SJXt_;`xsBa&*w$Oo zHYa1mp>};rg2_-g+UHP8^SM%a{pyEr_M9vADM~RJdZUE)+<4{XWvS|wWaNVABTYaUs6|0X3d5>gx57~9S7qckNQZ*vv+YSt& zYmcqGtIB`ose?=TTc;D+Q4Ito_dC#zzN-A?mo48yo4eLaUChc3X206LUg}m>%eSKD zYqdsK?gsBk76Ch#kF|J2HGf)Pm5_BixDWkyc%CW4O+y#{ag~s2>JI%%NE~a!Frqjy z+74@wp0eYLjU3rqK0N5Z5+~MmUl z*q=H5j)3t9Uz_gCeMdvza0UAv2F=f1VYff(&x?=d4BQ;jY88LNROFc)Ph{`f%xO(r zju$q?mG9;?-|3h&ZSkv`UGoE%oFLh!A3j5B;3?X4JfFw5HTRC`w{Q}dipipp3i8EAlTIpEBb&d7>TILsz(A$Y+&rduI zUNTL~d!VOFU_psV)j8Y4iWN~&nbqgy%huM$8CMybRLjb0pk>uGPND?zltbrRtWXpw zs#ti*>A<$x222qGjVI2f-IbcP=59;OH~3G=-P&C156f0bwX}ht3^oo{bc_xShNMQl_q?<3rlj=QYkMxlID~d+ z77+6KPN_$~tF`&^rE}L!7vrjq=!A+*&+RoFE?7m{E>%Aj;VtFxFeRnC%g`#h*BGb# z|JwTw_&BO-ZxJ8?gQ=ke{KCeDAcLiyUKCqImSn&nY|Fw190z8n$O1K_l`R_*N8y)$#?o_oqY_uNyi z`(l-}-v0MIc8d4zC$}y<)_d&0rGGoeJ8zHWtrzWa-Olg*@`{)3Q&am-`|6ZqKI`9Y z&hFbjv*MfXi7zfYRljEL2N!L3^gbIdeg1D>ZvN>)<)C{XIrw#Tx9k3S%3V7@v*d&m z?%L|sW6zj(;69IRv-dj(FaPZ!#x-9*I{340{TEwa_owaNopH^br>6FKWabM$xGrTlaWef|v_@4bzF*E4^3{GaV#&42p&<6Ae~ZKuaKU2*-VUrd-h<*sM;o%;4OH_y~( zcIYwZ0^18_LaK5MOM8SRpuS$SF8oJVe&|NVm=`_4v_ z?wqjMGrxc5((3Qdzx(1X7p~DPt~>X#Cs#c^|N1G{9=zR(RU7ZHVDmHXKlZ6r8#kQt z)b#3k5AJQ9cHnm}+4l7NpW9JeZ;OYI-K_oXV^7?2t*!Ls{a4?8%fT%d{&C_n$85G> z+wXqwk0RszdI- za^6O}&27GD<99CJC$;&~-G21w%-2r2wRT?9Cf8j4&dTQF8fuO??DSh7PM!MS)eleV z*j3o&xL+?jBPF(8eZ?k|I=-s@(WLcupK{CtugqV6lV8nk-sQM!H+wK8-hBJ!zk0a( z=YO7Y-lX%kxonO4zb^dsw*PbXoVC99{IuIA+poKRx^26A!UOBxvaIIVjrLd9I&!OBaDe*q)DtJPUWLKUnReQiKeN{v z|I}?SREx)*rhLD@`NW5->u%a*lS}@3?M1I0diU-xTr+?9q%Xhta8=KF4^Dire(woy zK7RL)Z+W(U+6K#)-1qf?eZ4mtn_qSG2A{2Z?@v!Z^up^89QI)I+{JG%dG3nk_NPB+ zoUN~Q#xWbM{LQL=ZFK#OUw%Act3O_G(&9zO_5Sstj)}{io&Wgc;ZJ>UpZZ1h2kvqC zO|w)*8vlzsFL?a>@6Xxcx+xcbsT{P`Q|vN*wx9VAbAm>$6IzV7&fR_P1v@Cx-+Q(` zcGI)YzPI|;n{Qlq`!`qJwC-c4kGr|WxV`PfPObMh<5~~7#kwZ*&C^HD-AvwWziTp` zJKR6-kv~dDNZY^gFYi~UkNfJJ@jq_6|MKrFy6VuDwV!KUd)D`@cE_R$`{Gv{9xZ(G-1b}F^4vxr{r2v!U%LIh1*y*QuWj}Dj_!Yj)d3D3vF7tZQTiXZ8uRi|Iiw->JtS6p) z;|}e+A02h??ORN~XR*`MdfSEnknZ?o>V#>3{_DD3vvyi`%aZv%eOxH(E8@!uRd9|&!ca>w(r*m-+lKF4&UmK>pwi|vp=j{wQBKmH|%un z&KJCS!<&cv?2YTM-|4y!dw%)Njla9+z)A!%{>T@c9$J*MIzl_xY{A{N-JD zZ+-T|H_qyOcj>BE-uUVc`*-JU_|N-JIPb7W=j^dd*Ryl>SciUX`HyA4oPSdGkPkcO zy}bO`wPs%6{&Mn3KmG8OKcBJDx}R;4x^(hM&)vD=z2yskxcGZ#&oDQ>W7^K<#<$V0 zzkUAo`4bQOaK&qX+5Uldr~hlm`>Wo0?#?aqirRn2Gut$BG25b~N`*x2!dXAlH~MDB z)4zKD-t6CRYVX`_c&%#=zQdiL))Ib@1wKC8)yC_v+v}lrB`M@ zp775J&mQ&BVgR;eev{0b6&jXr8W0_eZj9T*>a#~yVPAh z$N%Q!XOF$`q$$%j+p6=6E1&!CMF(B?-P_mPYT~l~2{RAhY0buyZ}!e>xahbw54~{C z#n&}lay0(6&RgsFWA|C3;gWd^R@5##b@O$O_{Z7f|MAiz7wYf+_hG$jUwEjNn$z^t z%mEu;`N}?hcV7CtaqItjz3&{e{N=qSTzJvsbziAD>4}#ww5C0@)_CoUwZ>ZmM@(izFux5X{L-F}hNf5MuX9}SFayy?t?W@ok=IAYbqSO4OvJEvd!mmf~v^^Mmat7?0( zW82SeS*$&_PTPwOyVqWH=CNDu^6KGpp8Ni<>W==wE?XaCA2_+=hK`F)zU_zGFIsf= zp%*^z%C*NmpZQr^O+(|!*ELM~VB6lqXY6tH=@-t)_8JYBH0`HqxWZy(KC zvHbIu?|%N$m)mUfhb^wSr|IPNH$CRvPY=57&DVbPqaWUN={D-Nr#||Z2T#~?lVfdr z!K@XpzJA7yFMhXE*53N$G~<__cI~iW&yJbz9JIqPUcanGy6^6{-+o(Dm(J_j@V*H( zC*Ec4_J-K<+`fFTpXUD-IQG4o=dW=))xVx5&Aa5OEgP=Co_WX2IBU;cf4J<#W7pj;;UlfnQww z$K$-SZF&8!=YQSu!POJ~vd;S3Ts-0SwWsem|08>&2Tz>-@=EE7PgZ^0aQZQiPWqs8 za{pRKUNULZZMMC6x0&ZpI`OFQYd&inn(ycG}sjQ6 ztp9=Z$;RtwJN)dRy^m`=R^9ZApC347THDI^zCE+^f!9Aj}`;FWD=p=bk%~fqPHxMsvo!NW#eQMj&Z*G3%yFDB3y7ce^zd7fS z&o4gVx2zr}Vt&0cl! z{~Y$G=HIW`y!_;QuQ>R4^__tqd{OIO&s{H7ZR4qaox`7f-TSvBq-8$4dscF!6+3~ca&rCV3szSY%7Uj4$U2RyOy zX4^k~(pi6g>u=&~UwmA9?Z@l(P2KO=KZ{kH9eS{H=o(kn?a=+uYe)X%?O*<7Wy{ki z(SNVcR@=t!*}UhRJ=>ZdZF=P2?Fa9CWUYtKeDlsnF1`OTZLo2#>HdFz zK5@xhYh7#Iw;JCX|JL}8zqj%C-Wrd$ZT80O#y#gy(_7>BeE;M7$KA0G{yTcfo>PDO z;7$+jv_spYyZmYV{EMVxHvJ*{@7bHB(+)hZm;E<*3D78rBszZGZQ z_w9N@)t&!!ft8mUBW~-BJp+{1(@%LPszDk>mdFe_d?^9+Y^&YvkK}P-i82FP4$dPL zRTwJjxmU~X{(~)U)^e<@HI%Yt>P~~bmVJPmO=aBnj_zp_Kf3F_iKz}}+Qj*4i_p^B z=q~EmWm%s)ciA3o_Ob(P)0wza{kW-vb%R~KUFa<}*wxwHUpF{yqDAHW>hPJG(-Twd zmh1u3CbBwzsl8fery6_u+>}y_Jl-|7faHxTs?F$_eU4Yx+B740A-+wUxG0!M6T`WYfn=_g|r~0C8-8?)buay z&RT;t-TjmNPQre|%s3rA-6`tV%Jd9mr%jwlFUtJ{kahLuUew)R%b={ad%DttR&N^R zFVeZ5@!(XwI`HZHZ1>j#7HXzzCWQq6Ob)nAHq6+DpWs|7U_y`{l;Fc<;2@J=Q$H{w#xdg9 zbsnWp%GO)Gy~vkjWr6f`uj5Tk4_%5ti^l!|zcR^CYdFy9R(m+`9GNf(Iy>r-K&jKp zbhO4OJBU5%I<4;ZX%h!)9M`i3 zI(ZWHnM^u>qA zrf9BvV7zr`(Dieh>*m)rHni5Y%pPeZ@h;d%`1jE$P%E_4jlYeJAr6X8NV zMG|TZR~Ks(*)eM}az?9hkT}|Q9Z9!MCG0oyY^mo7NWkhFEQLve7|cr%gLMry$~5(N zWI8%gRhKF-4cHI^uJe;r)@pBeov9=tlea}?gk2@R_|uVxqmZoNb-0}%FfS(qhqsX0@Yk6!Hl(L z=d4+|a+=vDpu5mMzPhQ7>=U9W8iE0P5t$~o7liGDyYOfM%LC;w?(3QqYJb(C z_7}7_OOp(3l7V;Rxg*?@REOK<$!S<0a>EiuY`j!dZqb>A!XH++F)2JQWTvOuqSXcW zy_3^zv{kH*@AD$n1qS8#b0IRcJ}HX=Kz(wCTv?ooG{KDn=5&Po-?v$u`*8_%5pFuSb;?E-MJ9nRfiRSKOg)9=! z8dNJH-ewB?J4|@2aQ7)xU?=e`D?gQJGpYJStPSMN!3#o2(h%5y757R!Ya#=BqCYTk za(p5R8YSmIM4hZ8j!>_N!x1pf!G^j=$S$9FucT2i3i=7@UKAyR>iWdnWPz$XCE6r@ z4rK5dcORwoPduv#RAwXIpCVC#w?vylHH{K&8kIOnw3$>!E8eDxloc@1CUf*6s_-7+ z?gIfP+fe4HX}YAyWCL zL>rY}NVaKt+Dt085`Wf&Am!R*su-2HPesLnWEow#YJkL^MHwbehDm}#^{W#1 zu{w8&Hj}Dz#oNG0NnD~t6cw#X+{a2GCfal=_7rb}=;ZoCuswgDLKU$R&uXYIkZd!k zC|~?O8Jy0w$y5#}aUY16YtyM_SK>aCTT@6JB6n?H0R;MQ3pJH(QE8)nB8y^-~ zzKy31356xOF{2PflCC6_2IAXPZe5j-xS%^vQy^_MM3$mnf^9Qw#lf|+u zaXN@BD^x=?J{DQy_)V5gZrzf>TS@*!Ef{`I6;}5&{thf3Ng4tdak`YO${bH)`K20P z@%~VUm771PQr!IIS<7UsW&E>LIw&vOnFR;$m?)41uQ& z0}2dxpTgtZ(0P0q{Q4$i>bdzdWuC@?at^LqT=YB+eDlM3tcUJS!3^rE+aDr%x)9#=k={INDHTUeCcQLuF87 z_*FpA9BeWOfxD0DY$u+@pt<{?HYI6SQFuB~6cg2!68!-kTz{&}$sq;mE{8YOM5Urc ze;TiYpz0LW&7+^3?yaCmG1s4FP|?o#eW(}i>i^8CGo6|jTzUbQFYw-J9J*ZhnmRI z8cLD#^I`~`j)Vf`+#VaX$~is)$8dWW)ldZvmj*BYU}}}c@T0#MOUuK zgNi(;$b*VJ2xp)o4=VDYA`e1tsOSe3c~FrD6?ssR2jL7<}}}c~FrDAvaX?gNi(;$b*VJ zsK|qG1}gHPA`dF^AmoOMeo&DI6?ssR2Nih`&Ok*TROCTL9)#Rb(GM!}pdt?{@}MFQ z!WpQ@gNi(;$b*m@D*8c19#rH(MIKb-K{x{yc~FrD6?qVHLq$KR$b*VJsK|qgJP2o? zA`dF^pdt@KZm8%76?ssR2Niixkq6-nROG>braZ{@Ssk5j-}rG;r>5t2EOS}8>GZBm z3#Ovfs@xhZ2Bkr6)Mpr|>WU&+ieb!{ zK4XU1AWAa?seWNSii!7Ut-h>Z%vuyt$$Go(nrF=zKMwU%QT8X*li7bfUcI~9-JV^9 zm#15Mda^VK)Tv6f7C8`6QT68O(}hO0K}5Yq(`=NQ8c@ndn2vhDGc=)oVS3kYuO}r@ z(bvo>9PhU!u>g)ZP!!uI4ZE3HY-mBI1>g!P%-L<;Lj~jd?lW`XReeHFGsx{=Q zmHEo6M`ofG)x#GkvQmr6-=;bC5#P`~eOs7DiSaDGWqya#?q<^%oZFpENmP-I zV58BcsKZu&Fb&<^J=t{2ZZ!UeY6TU>(+#unr3wG`cKcHjm3+g^vpf%-pmbNN6}RjW zUJV-Pskw9yP>M?Ngf=P>7UC}$wOK1+oESTBixQNz271?OF{{Ik*~dqVH3$Mo$+5xD zNntjt|MhKEZ<0;5QY)>T5@R__lQ0V02<;cqvplML{fs%~3smasblk0s>_KqAGY4K$(GC z41iIjfpuTLM7f>#Ya^N)m@3$Bzb-i6tR{n?MfOUii;yf(9H(cy z3kw)1zP|EJ`ZQGp%`qshkYLO&RH#;J44(nPk~StNp;l&)aw`{txj1!NFYm%mg<4|( z1_T=d=o4&l07j9ThhWRPtSiaYAV8cCNq{&RdpGP3ONF=??T+;>2&+S0#DxGd#1#o( z0mR8so*Z+yl1qfIOb3tz%Crp41)JGYAxSwDRtZ_2jYdBpd zfHxmgp`0uVz5-|~>;6zrZtMeoV}RrYr7o6EP-=18##jqVJ*lz;cnbmaskAr%3m`70 zl#e-F!>A=bBq6^UwBD6WP{uUyF$XZYrw9-i0_Y>IH~thO;SxtB`C|PndnK)gc7jwzBPXjQom84m=-i#ei1?(#i)_eznB+9te0%De7pf zxML!`qDJq@yl}MLV;q_5QS2-i8 zllZ55IRM!qQIP|Bs0tAWTYQN`q*7j$#7wFr0op?Fe6$qA&kW|b>?0u9R&?44$ zd|OSRW1g!e1zKbt@IKTc`6@@wh(s(4?0a6glZsm)m55P8nWV!IIFh%xPh`dE07`i+ zfufLP;6N<-@cBZiIQXLM%N?00Rb{mVig2)t^JsuJgE@zUh=bFA5ptio>s_2vo|?swV98Sdo1H zQB|OQmR_38u>zmOGAit%I1H6!TEDD&vK&lKBGejMW+$oXQwp`x*mMA6H5r2VX z5b9bgfR`ZD)k1Qm0P4!RB z|GNx^D;x+C1ukX_h;1WEsK8Kot|*ZT7N~B1j4u?mFg#b3*v2_;un)Gs2_;5SD7+_x zUcx$oZ>tG=Y=cp9*duCdEKG~d%m^`BA{V43L0KcB_AxIpm*LfgJtlxk4Z9!Q#lo^h zKjtfncbQSeFnH%wyQpjmWibK`OQr$IRpr(3=1c@~nN>SJ ztjk9o0|miP>?~DfL0%=&fTS|(cq}9;s^bNy3nBF3Ee^sFQ74sIwPRslQNVmhuK-yg z>R3cxiMEVV++r}+el;QsUyDK*pw35D$aTd*SO9e~lfc*mmQ?Km)cK%$m{J0CgdR zKI)2tumI}HdSoo}frU{}0M4edfwJv$u z=o>CH3fT$FG#Uj;ll_O`jDi)Q%|}&; zI0}>~ycsS|Sc+v{=U5136v6;;A%s5aii5BK>dL#$aY3&E>U>Z_)KRQNsSYH>GTYZ! zU}zrHg%J9vD-OZ}s4K61jYWS(0rSreHCZD*gQqr~9cpj|D}w8yfJIDDi3DP$Hbtlr z6I2+mJ7j`lvB~+fT8JzPGzvSJ;G|Rzb{OFBZ8c#ZD-R83WKtt0s4#GM2zC~uJRI!F zT}8mM%8-|aMnN*ATO`YCgkd4QQQQWy)`!n$*W%!dQZ;9S5zB0X;X<$jw88W;@3~~&cjMd$I6axg-k9{uwwd5j0#Jw&#(~j;7E;yRfoAb*ow~r zk%w8+xnNh{+@#~gR0M~TeO`i7wJwv?86kt7@0JvWeojh^r@M_EE{#2VF%lG3F~dQkmbde_o~sr=mlOnoi<#7^HIXT_Q47N+4k$b`iNM@ohC> zkMU@!VP~ImXB_GA=pX%!SX# zIScoS!_6on{~0M4`4Hfo!5v_Hwcw8F;w6WhQF8z{+n_|xhFQ?cF!*K>1yQBlUvG5^ zgUdxC=`1d(M3G44-E6bqi70%&nv{c&t+_?Q7p3Vu+mdp6Ynn+mrN}B1ITdNMmBSlT z;R~WI4pw5-5#g&--u(!a^SD>M!rc6QSOOK0b|ZyWoxmWO%!tgvC$Lk~vIW^v?$QK& z0qWS^m~;lR2aEzjDSyJ<(94Q2Sk|ox3KJwC6jf3PnW@f%eT#yx{vFaxxQ`KFu~l@e zl_Duxp@J0v@Bs@*(+8{=#Kk!-4_Gn9XzamC`i1#!B`oiU9B`a5npo6i3TTe!r1IL5 zB`(rNL137QC|qp6WO%+)I5B-i5C^^%k}Og51-gx&Ufus4ORiqxl^$Meq_?t_9)&gN zb7ZBLSfEt?m0sdvaZGZ6BXUKF4l+3xhvF#kb5a5A&aUdKa#5JWVt@Op`m5$vbyT%i zb)zL)HNaZSxI6-$gaqqt83;+QWFf056 z3$KrHMCM`9n8rHhLWo5jMHMw4Wg%bz&PERyhp{pr`b#X#C<>SY3y%si6!pM@jQo%6 zJEiu_6YoELE^6=0#eeftBA7i_-^Z5(ftsThQUb)WSu0~jAJWqs7YO7*4Vx+|?Ib>+ z`jcO2Xb)5}Vp?l6h!eLipHIPQEMNot#g$f77wxMHB+)0;u zk#O5uL*iqrkd5C*5|c)VHm3qmqb^ics_Gtl zpvD&q-3wMs7QPs+nCxO;7$VZ-%2`DYMiNXHv1lZe>*Ck@-8!891uXuj6@z3Oc&d+< zE2b6M;c;)brF|vUFM2h~7cxKiR^*o@)gku2$ik9)AG-@?NL$=jQ2wp=iK?Ho043b~ zKzMlMKL@=Z*&3cKiD~G98^A z*`?K}B{yIL7}xnpDr>d3yUyfvOOKPAAq4RvY94j)WYx&cP+Lc~)2+rXMo7{7Qlg*; zDE}6cTu@{$kiacg-vLx44{Hy7be)uEb@sbplomH@Iabyp#%7_y=?1&6$L~>P$5O3W zq}r*JT#(y*E*ouIpX;(}eh4%n>ho)7G@_@@p7!W4xQwk5^l}B6fON{Kg?t^fn=EKj z_h~oKa#VJ%)S8Z1)y1HQTp9IJQRR}h%E()w8Kj33XbOzV_+03;pg7RVs+a;aT6v?( zw*q@<4lr2Iiv}!EX>xXrA>`#&J0E$aU&N_M6d8zzc!E3K5-E=zPPf=0WUzGWBF=e6 zs*p4c#uD(9)tUi}C4HrRJtPDT!h>)I&v4g#2HZ%e1nuvoPiTSfKP1fb!7yrMsXO7oxqN@ z#taN5x9|Zl0cbvPYH)fNMmkq54z#kGM*&(y)rt~l=(@owZemfW6^#)x5{#NS$3(h} zK%86x*FbVIe=vpZ<}_5wLmHgn4Q|EZue_c`Dwnu50LBN5NlgMw8a-S&D~!LsmG|HU zwHp&Fc!03LSvp`j(!RtI4wZ^SS-HLVRPIn;A@fU06KNx^=xj}wMm$!^3s}tlOO@mj z#WjoHo)xV4C}Ix$!CJgZHU=h zLQ`9)2o%KJT-yCceWt_2eGGH#Dl=Q@e}K8&n| za=HvdiW)n!iNYvBx+3E%l~`rDD9OWysi(t3m{$@5nX2)#xJ zv6BB2lc_){`%d0|>S%XQF|{DJ_bu(Js70*Xn2>}*poRACdAUub&%4uAVsvJB4d@>w2O_-lY2VY?ukA&5A3~W52rt3P6s<KrMn-<+6xfmV+#cO7f#4 z-c(FlR#25G44G=#31o&!0c+^#RT^);*YI%4yX(Y<=Y5-rztD}RjFt5sR<}L5K%B5Dz@oETa zz^kJJwJ2UKhuGy3tL1o=Vh%y7A+IWQx<0}&nC~l+RQzJ=YD~8+F|V>LW1)f%5yNaN zp~+KYS=NSA@VP8k0k6WNOhK$fg0_d}Rrb98wT`IbMY&6yFP>a`<&M zaqd!TUiFPW%o41zq)A}SAzls4YldDR^$PFFMY9hXtPP=UYb< zRAcXk z@`nsAWTy~@R~_?XnKQU3<#q7|+LMZ*k2&njBcA!BO90eSl5ig2#^f;HkPQRI@H|Ec zE@x2y9AehOv<%9>!JByiE4^xjE!zlyk;ICUq#qwj;gnFn#G_mrp%WCMp_}GF#7pSM^%=!IP|Gwpv#RY zT=kuKH5ua@{bqC-VsS+?NB5abHoOjRJjT zR$jPRmjHbfmz~o;1Bh22fn`=-xM-IEfgx}{0)0v?1l%Z4SY`!=4}4)s-DJp@Q2&&f zYxn4bC=voxE4Ko}1-}Fc^g;8{R~%?XqfaZh0>eeYD9Ca}Sz2T`zK{r25Yy^^C&R>O z_wErpc_Kcf#I`p-$60Wu6{a`K+1^+{%y330J|MxTV3te>jt2f3LP#&fr3u3$w>i|t z=9p)A6@Uvu2!IJe^J%yk&_+SQF*oS3-$C*52tN9ll`vGnWgp_zM_`#PPh3z!fWQzq zAA!XIHwqM%S&QSM6C?$huwgItvtS@8jsJ}$KQF;LGA51@BXD6d|A8!0<+%Vj7SAge z2iho5SY}O*Hz_rOp7D5Hz0$ON_oUt1(;()_fcz2rRQ2GfbXUIRwr}U~#~Wf&S2PNZa;q>fJH-z}0}c$Jj1leXqp-Y6jLzi+4!{Y4 z^Lfzc$U?x40)^#OV{{10I12s5C6Y?+2!0L)3E3fvICSE8Fp)0EDD!!m&SIUTLNuUG z23m;B0%abHJLxsbe2k{EknSjG0XRNrK4r4H#sxK(QBY=ituQ(ldmf-q@$K9ZhzoHa zN12I(3ZuLk$B{`j>4gvg6N2U=kdRpjv{9h1yef>&C9(Do>LsM^p#715wk`P(7lN`d z0?Vtr=v;Q{0GtpwSm>d<6bD?7`w1Q+>2!UpqH5cSk zODuZkI1X6O@{Q*Vv~eTY|=1I;q~0qJ5=Z}AbB1I|ZaalnlN zh2^!w=v+2#Ux*@`ENN%VJ+ELM=HgTsv)n2Smp?lI#|Mp}uSn2Ffxa@UFkIS>0DY7r zoQ~>!1QNun&wu4LzUVAhM^pn1fC)kK5m*dpqd;GoRT!47Bno4IK9mR?QelFu=&O&w zGOI8w`$`nJ0D&QJJ_3Do76Ptl6jD5wFcy)s!ye}9T;7-fi7cgk2y=lFoyCbz0u%tOrC<7FdEBcTaC725lY9T$8P*`RI3`+tO1ume; z5I7%+#Q--d6qZ?$;gT0gNYJI^3c>hE(nTNULP!kYEFAeu*c_81rQy@a>RckDfL58; zeW-L731~6YTIMB@%VZQ#YY3iCt)s$Y;UFKvW0_Y+K8=yTcVbzo0+{_GMun)gFcJy8 zF-Rsc{E{do<3s|0eBgW(76;rYL{7q;bjb(X^@Dp-9^45D`LXApw-Uqhphbc6 z5f}o;5Lg^=qd?&p<-0?h0hGm!bx@oFimEPU$ZqF`4E_Ec~w6c92gA1tS zJ(-2+U*z+`bgSFnGth^6Tu5t<+F$luH@hG`yJ-ehIAqD-_nO6Ok)@|k?-@izM869r z$i$$=AH9-prIL;)=H*&l5b%gV_ zSIh3k5+uqSVZQ@6F-8V7S;Y^!2Uu_XudK=wE z9lI>+bLTGGqs?A+fNeSxcd8#Zb+B%*tG5fq#!`b_o!$L)gVQEjRGh62pQ$-LF~x4l z9x!d9U$t$omf5Mso<27P!$pk^2O-36A#Or8C2>k>?m%~HmYq$(zJbDJfL*T>l{(p+ zSU)b6N=@x^yt>w=8Ns{oZQ8^|*=%oJI=y7clG-J5ZBJi&n(9`j1t~2_HMpaue`$Bt z8m#H=pX7HE_Jf*nc3(#?)vQZVzgDJaAUkd1M0!!~CjiRo&Aq6*zm@@5i-L9OL8~_n zqD$v`#)DJQSjP(0xm4+`o+{zhh+>Usvl^&1YIrQeCK6?7vdU`tR z3lzMIbQL_1=nG}%I=rR9crX|N|Eq17T2-!N#piP4iQJj&BPc0XR4>tcgMOx_X__O` z&TvXImS``84#&=6qj#XMlOf%)({88R<#uQLfe|r|5y!6cz{*y(-s;uS3_qu-a0f4Vvo8`tGj*L#K9WJ^{j!;?8N$lB^O5;bo^~>(D{c)1GlLZWKUmw zcx>+Gx(CKvhX!3ADfBqfNa9_vk?`-MQDmu*V*G7v3~^8}fT1zupSXA}#*xMr@0yJ* zHVXgQ5^w-WH^%}ofrJYne>qP6XsinhVn#?b);vV0Q>i^HmRVTv#O^LNr$a!twB(00 z6un(tabVdabxl3?011O#o9YJ!I-EK|aSfcSIyJH@$u){?xHX1o$Thm|A*HvYDYj=Y zA==UseKs;He!shR_h+qc+YS4bB}*4Q#jWvNS*uZWS*SrBKC?zpWZRY^Jgk zspknuz``3Wg-L=K%u5l2b+KZlq~9cpl};rInY=ABBkU@vNPjx=a2yN<^-}A@da1$V z{0*fB-f|Z8*h_|C2&#ITv9b+x&-|Xg1H8_jCH#^dbWsQ7V#OAxrsE9}pu-D`-M)Tk z4)s`ThVBjy zZYqlTP?@e`W+``1Wx8@xQOt+RbQLp8xqC*Mu5m*K7?^XWOissYU1~)tzfIG$d?{x2Xb!mnYg}3O7i!sZ^C3B?{RM??c{sJ?vEnxI|v+Cy~$9>mm~fxCYgH&a`Q%JUX_Ptz!WHhPuK$z5$EQ{L{WpG zE69{ObVZHAtRWkI4nT}MiFR0;C^L2V3i>Naf<$SC5^czE%(dy{8ke}wq@$2{n}{N% zT$@Zes1oH$M1t-ntK+Ia@=CFr1IgjBIYLts%cOP!Q7>YV3dK1NKZJ}NQq`J3$h?{ zG%pJpM+358P+s$}d-^NMqQLPa*np#DSyVZ`M-mkdk+Nt~qU!iNB-B3V+E8bkYty(T zMV1Vz7ZLAI7Puuv#*GmIqWg(;IXNQBJVDB`8RZTCSw)PZB50GN0-pq2h&fq7>E)qe zqR?9^haJVxI0(SCNqUr3nX04EPmV2Qa4m;1Rp*u>$S8`5k3XwHsB>)!oq8tjW7+P* zHsCZRg@mOUl(sXxM1N71M2xO*A}B962|8wS=yur6B9~Z|=ddRc33`T}GNM!j>sv|= z-){(%MmbF|LI=8OL;9hQ4O{z{uy+vlS;bmBfE z%6}5hqe3}}6@a1{W4D9wu|g-?AZxicC>Y5$2;m5#CCKM+vJ?@AW8Cd374C??Ueu$a z7QC55g(8}i_$s^|(mO{AP-`e;F}y^7B?TN7p;!sb8zL229M$UyZ>NzBU1GJ)!%HHm zE<@MM=xQsfbYz+XP!>3$t6-($fCeW;hD9%uAci?q!Xt%aOr(p9&Vc_c8adDvjbkK5 zF*q@TlT^MxRi@Z$`pGf6f^{b;5ENC9u@e=2&rMXE;aOGm+%*)`jF303VXX+*LD7_` z8pX&A=h?(Ea{c4L#aN(8dc*D7;ajDN;4Za0i02cu_X@ z`!HFGfN*Ra0qDG~_g1N!s z7iA`Y99Xoteno?$ZxvCjvGD?%A+A&~dSrf4ECu_Gp^GZkzQn+>wMa54cz{zD!M2=6 zhDDKE6;)Y_ihCb02zBlqiWt>j{reO-3Ruvl@)M=#lthkxa!d+Y%4w0RD)Gox!Oq;X z*sF4FW|Zjtv7iukWa5K1o|#lF4w4+55pD&WY&jWWTZO+bY%!~uyNaZ=i;y3VQD zs&4W?;;f7V+)(&Q!{(QJhhgyjnF2p)CRE$xM4BKIu1)8bLkLZd`ccoGLjoipw}NPb z#z{1k*Wn}rimr2#5;!HNa{9>;6UuoaPNhl zoSZ9c6}VMYlVwfcsmhSH=onOM-88m2d60XEGBQ?H*Y zLKADAK3!;38$?-DOtVpHYEZFro^EL33{9wqtKj%?zQq-!JK}&OU6n*Ny;rO2&CPaU z-Gp)}murYPw(iRYmSK>N04-{}?V4xJfT5UVB^Bba!i9k#t;l> zvl{%twikr$C#T^zxW8*>s|)%IO-?rqWEb`HRYyE`Ci^czV*!t~$?4D|r8;z)noMq* z&VcO}@i2K6ObT5NszaB9$;?S~QnNJ4&?Xr~ErC-)(v#2`m7BsoOo*Xi1rUQ};CcVY#JAh~t^G_dLC*@h4{VtqPLmx~cYmgVn zmYfv`GNNk81hmYy+TDJTHKZ=S&1F6sZGEoGXrEb0(abzL8?CI>+0&k$?e=xy2^8m} zM`EL*E`w1uHB_f576~nF9)7i_Ca0TPF~%7^-C6u$*Cbke(SQD+C5hMKIe_Mb> z7TJkp4O?b?3eB;>oK<095Y;+StdrE5*-dS!YRAnCv`_wD_F3&3mCtHd%oCMB8_s7n ze&^7U)>JqG``)ZY`>ZA&Nc0u)L7tm|L-GGtpVh9>`>fIma3z=k~b>zg~bNs<0z8rrY|g?tTv^XE;+^)Z?W0Y?X)FW?Ow$7iEEA zPvma(o73~sQmvG3>2I%YTh!5?qE1qatp1b}M3ATYI@%Xy`%^4)1Wxa=J*kdtZ7S8a z$nAG?7dsJFoU*!?_H?@`BnIj2bh91Z?Wt_o<&@Nt4&<%LE^<>Ij_*?b>1eBKId0z+ z>a*Wk?9%0qz7(Bix=u|;w?CN99^2~dTw03*x?o5P(lZ7+JLlqwh3SUw?w)M_0{__6 zO*bJ42By(J5J@-o^e#>B+SS|BmrXYhvOlxBJ3G4Z933;FAG~VU?!+y?L03n1F5=uB zoG5m?Y5y5u$_e|Q+iNZ9ZgT-Aj*{5{U$>PV=yMkYZ(f*go{=0=Fb;ocl!OO|tXA&) zzP^58dJn71t!`*-PWk7+EHleItyWCUh9BFmO>j<-aXQORuJfMD;<4U+rw?>=I&_f9 z$O|8+SD(s|{AZ@M*rJ3g2LOj5&B39d71L$`o$P2f-O5h+;NoCNG)Ow?g&RnVwKPSZ zjbfdOlRkq^`f%u*Zs_fey#%MyyLT*h8<*OhEhg)8hTok+ux zLCC-d&&0i|lo4E9l0-{@i`%e0z|~L?(2FEEHXI}ISCJg{7tsM0JxD#nor)r}TnZv^ z@{9!MuldR~$vxRLz6m6uc;Oc=Tcbrsit0 zY2crz1XncnYs%o*T)FR*-;+KMdm?&9LEkrR`C})aX5EA?< z0ywD~7iM=9ti_mPBfw}q%|$B)O%T&{+>TRbc&5UcS%%XZ-nE)Dfi8f)+;}kWq7|D* z_7~B^)jv}WJJurX2}RFvP=VRHkKhuimMuyqlg(* z$mp);;YrcNOajHK;aKo%#fgVxJ0eD)Xc;((!JEngv5V-}HZ9ro5X*toAn?AlG|wgc zSgrwo>x}7O5E4AVbw|go8XPTk3gK$(uqOfZ{i;q1kR=O#D{WQy4lEg9SgreoX(FA&UTK>MO2c;F-i z8Q^YsRfE>xhCtLMIwGz};CczvF5xUk0@os-LZd)R_{S^ozp^Ax@<8vBW=k%h2>AzG z2I_Mph!dYHR2lpO?!jH`Zj8Xoy@y6AdNdC5^QDns)MyO&S#&`03ULk_bwpN49z7|5 zCk)Yc!~P)Wg8tA7`owSaW{8=Dd|^*xj_8^N3d3(3ePD+1+m}0#g8&&*6~k3#b_~LUS~eW`-ylZI})GhQy#d@y)+_vc(zJBWm~R;(AJESaWrTWmV)RMNLkASD?${=reW!}D@zUtJL7n+jTOf+5Xk`k z1M5q!0iM8YKw|2U2bQFIphp99X?dnYYZub~c!FtWG+Xq*_oi)`kR|vhk-xDjdyZ@9 zvIqZk6*`~{YH%e>Qy>uFMG4WbIz~pc5Q^crkV96+u`{kF*m$EU$}ZSjw;Zq`rVcEG zcaR6Ki`X1EA6uSfWDJ`K8xqNs4Xh#(W>kV8qbL|XBiR|G-9t2`pc4Aj2@#6hM~x=XlEP=YwE~a23|3w>2O*` z=~lbd)IZ|d4yg-Rr*hI4DjN8Y$tA=u;9^emz%0?t&@E`~M|30oz{mxki$7MK;{5NaIOV$ZY@rE6%QQLrX) zvMYF^n=vggzG2`pNX#)HHqfmD(uM~+)=|g`H6sw2gQ;!w0d@r0LxanBmSE#euH<4l zLO>xH9l``+OLt8S!hlGVBpZ5#hjmND@+GSdgaEuQOcP6{lR=1+E<(aVF9Dw_P!u#U ziUuChG}ofANrZ)CT{SZlqM%w}B zFt#!lVk#t0@f6X9oK;2Dc0B_V098uxNS4?tL3Nw9)HB_XR7fI0%VZn}>x?Hr z1A>S$9SCVp#T=NH4(Y38P>2si4>=Ecji&&q3R$8e)D1|oEYJfSxjolXAbS;P3~;2+ zpliwTB*_6vH9aFkOcD(w^ecsQ2(&AhBFKO2s-R3@S0x~x8Kd{9Ce*bAUuyyGBH9-8 zR&X|cGo8c$vFR@U*;v&`|3~y%ZWs2SBAdVpfnMiBMB)kC6YOZfCQt=)dMZ>xgo&aB z>$Knjg(Rbfk!R5U{X0m?`4W$lX?ZnZU=6s-X{LAy);6>tR0_N+WsqC|3WaQeQ$*7RsKcxd?P(rqKpH4{5+yMxnBi zj*nlMN9Z_+Acbm&9UruFgoxuWE`ZEUx}MO0@tyQ%w!7qZ&~RvTgm>Gn?x8OO zTQ9^7%Z4p#8DK@iI2u1RYDKupa{|9Q7iC!+}j~_*`gaB8KfjD>Cs$j2x0! zBN-t=VnLy@ky^oq(vU%HDUgb-pl6wELxfocB(mZmQH_fsSQa)!wj{cyqk6zH=t9;r zf|}8g01~*My(8ox320Ao$oeDLE?%ZXYcokKWgu2Cw?G4CSwc1$NGQ*9M90w~{9%XD zO;-gtsz>rt0YQk8V?we*jmu!#R2^utNzXGN>)~u?N}7qez-l1D`Oc;U0D#*8NazM~ zAKD_`ta#YlNf}6Li{V+7ER5PPY|uN2MHjjk{>qM$Pm=;VMx>_yRGlHGNkI}pSEUFf zk#Y>+A1II0q&OSS|NmAjV(it?nk-FqMNhRdx&eXdK@K1(1gKKgu(>fM5VDRf6UYln ziEBd#0nuWA;F2j3vP6S12Rl8OVqnC9x&StX*@C2yZF{a}+X$EfKVo+UeF#(zJBa3D zc~>p$DKefzPpFoqyO0#v_JQfJC(Yo;#wu$nh64$Ty_tY53gUq?U>ztE609rOu0arB z_h;y~qa!5H5}_qv6A4Ynh5Ce070FN?2TWvw?;sEzQ^a-({3y7N?Yg)N@(o)n>_lA~ zu&dBfsQ8s)>$c!QG-MPD!+{O}T@Y6?5Tn>yI+!j=w@J1@AH;4FTU!m%45miR9Vz+{ z3@Y|>*f3*bi7{Fk#fCnHd4}|W5+Y&OOF{xt0YVPa4wI%T*!&^ahyt4jG(*T@NPI{a z1%f`~kOn405YvAUUy#}|R87YQ+%oBAFa$%PlrpXX?Ga`LYp>2WPO8< zS6ch&=H`qoETelzuG}&=1NCz+?S%hF_hV2AlbBNMDc$eRU$<6@VG zJ+5bq8O<^b2O-#lzNVfVp7 z6!tO>1wupFf%Obp7PKH{;)2w4U^>UtSlGZpt2J@vVPZcGO$QnZ>5&*18KMwfu40H8 z6L_>Sc!*|zr9&zU9)zobJ+FtPBQgxIP-b90g+A=Ta&Kb`44G_NP|p;Stfr2|h&He! ziLuvopvJ;Ti#!)t6FivY(Jd^6NZx>Pz<}*xh}dS5F&-=hV3XuEnvc7%Ed;+#N;5B8qy5LIvWA)5V1&a z0PPb!nXu)Myv1n;le>sy52Pyg;#dwx+GGCTKV<_f;b~%?vq~IT(zzeZ1krVZ?Sim9 zBFOVxLCO|9lUQ4VXDF=OW9N2sp6Bm0(FXe{rW?8;2oy3K%5a|d!JOjn3}K}OiAuCr z0yW|M&@mh=>ZD$Pom?#g#m+ ze&8Sb2$*&>)4@>|cpFwBbPIa1HSD1vi?Gw7jfexwDt3A}0fRb4Y7KHom=1W<0KRK<3FfGb9FgpzgqQj}2x9TO2y^ zQZmqQu+OagRA!(u1C<%5%s^!Z{A}Lnjcu3w`V%O{Af0oUS#g&5f|dH|xT5 z@}!tPLz^MP$1lv|qxyM#a72J~HJD8@4-7ep24((IDN*vhHYu-;|Ew4~jv}Q<)@^d_ z9>)#(0%WFyL_m%^xPbL1E=bg;s Date: Tue, 8 Nov 2011 17:27:02 -0500 Subject: [PATCH 09/15] Default font fallback is same as setFont()'s --- src/canvas.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canvas.js b/src/canvas.js index 83d9c34d1..590af469c 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -494,7 +494,7 @@ var CanvasGraphics = (function canvasGraphics() { var fontHeight = text.geom.vScale * fontSize; div.style.fontSize = fontHeight + 'px'; - div.style.fontFamily = this.current.font.loadedName || 'serif'; + div.style.fontFamily = this.current.font.loadedName || 'sans-serif'; div.style.left = text.geom.x + 'px'; div.style.top = (text.geom.y - fontHeight) + 'px'; div.innerHTML = text.str; From baf395ab16dabca43d977162534b35694ab762fc Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Wed, 9 Nov 2011 13:53:27 -0500 Subject: [PATCH 10/15] Removing 1040... (duplicate) --- test/pdfs/.gitignore | 1 - test/pdfs/1040.pdf | Bin 299340 -> 0 bytes test/test_manifest.json | 7 ------- 3 files changed, 8 deletions(-) delete mode 100644 test/pdfs/1040.pdf diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index dce433acf..443cb155a 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -14,5 +14,4 @@ !sizes.pdf !close-path-bug.pdf !alphatrans.pdf -!1040.pdf diff --git a/test/pdfs/1040.pdf b/test/pdfs/1040.pdf deleted file mode 100644 index 12b9a66429417553b31b1bc57ea254e44cfc3a9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299340 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

`1C*m-*)5T|AAmSKf1R z;9o>@i8n;}L#iT>;EpETZOgk45G@VPo!M;5XW#C`JT!!Ul@df7!$m)V1Z@BZ_^g}D zCvq?AjB^Qa>N%}n_ogH=y&Wo~`jki%ubNm+YTcX!Fg8(xNqY~8rCl-pO6Fd(;ogU; zxqeOh^5*$Grj4Vl(Z{;UupUTEF84=mON(;p*Ixa=CKR{~AJnMojoWd$4-~yG7DxoF zf4y-3aNF!3rJIB8|1ebk(8hC7`ixBc3@Qff#TYIo zs|%vnexO3@zges({$Sr!pe=xt0whsDS;>|X zm7*5KJN%_SidQf@{{v)dK3Y6lRGga*BljoDY)wl-Hv?$ebTejU2r4Eny|}RI0zQ_X z32XQM_z!)aUREM)g)u5(%~4`wMIPb!x#}eUTJTU&O9kd~>7Py$CmZ`Tp@rMs89Lt$ zK8i!sL?M#7w6_D~#eoa4LD2g5psz{^0^R++n630T44KFVZ!~Zx#c;ZdX_Hd3oI1l$LiRMpNluRHB5424|%{D zeACj?%s=$LHgit1F_b>9JHXtIoUOTyPNP~`Y_728wRjxtgR#A2{&)>ib!jai2qo4h zQ=!QmECZ4uN4)bR2p#bIUhDBW{eWO|2f336;wIsVv+M&iNNFz`2MTK6$ULCfmj2P8 zV+R4|iAnotUVvTz*I#Wf1Cd>Pm74!(QPh&!X8Sz~a%u4A#kg5Q78sY7-QB|;Uf)zN zW~d*za?m`w{jl!o<*aW=#|e%U*8bE{=X}y&7&$c@O$9uENuC&}myqde$k^I*)a>dm zP@09yQ0!Cw4{UH*2cwQwg?vn%Ymr0OI=qKX^nGO%=Yj7JNCQ2I@_8ySM=WaEAYS$@ zZ#ju$G$);IFZM6X5CSKDAXf5*x}kiX7!*V-qGS}Fmiku zepjpjVKh#QSOYEQT3Q=T*_#$`LmTCt8CKBubK!V;zZi&{Yl=QMjw&pX%E}_+C$Xr? z)j}YLO^O`#`EApREUK{~>OukVZ7x_l=)SQyG8fS%|NhGkKlo(=J?DqN#y8Sm2p zGwCw$clZ0(&Cp(hNYm>dCt$PDJ4*O*acQ~I8}!Od*4S{kY(HOE9mR`bv1I{q5yd~0%qR)k+<@*buWdZ;h~PqjlwyUJlWL!KD^r zSgBvAw)K5PCxMtvI?w^Ao@LVx8XtXmloYpN_9l)1!yxptEK{R*Unrk!l;!a75dwtzKX9ff$rNAP|ugy$t@(vUxCr=22g47dsg-v4hfvz> zj~xihUw0s%eFx2N8yN%rr@n`S>CZ>_es3p59rSH1t;}uk#cZ9-%nko`m`~8w*7Cpg zAisa>|9w~a`2zp-{J%f_cNZdTY;FFhCgk6h(Vw=7zuaFkFth*f9mwyj=YMq|pYD(U zU~a?4!uG#3Al&lW;$Jn9v*IUHD^6TF4K~r)W~38zu!u@}5-bN;ghu(uJH~h;Kg~r-rXw7D+IcE(nCSThB_Cq2)x`)dps>Z zR(5oD@HK8zYV9Ke=T?+f=C(ZZKkK9&7fF8~c`*-XZERpXn9?5goBx6G0@tIXWcK4$ zvKgY%`6Bpo9L83qd%n!H<<4S>P~hpxxoI0n(NO{Lj8Ds?$(wf9M9JjE5#hNjV zSt0;+?mO*942CkLgf^jo26ljiMv26C8`CE)5Cs`RB$HuCnNd-)nYHKCvT5N2OnZwM z9#P80)PxDOkTQku^9!o*9^6UdsTOQ91rmba6($NG^>Ko;!d+uTmFLu3BODM}jEH1@ z#?N%12rnYXCCmjDGn;80aKP9ovLNPz#=G;SF@9B2FqB?ksdE_HsQ}5{@^Nfq|J`jSq*z1eM8!m3A2q?Dy!t;p_ zMF`P2(5ya^gyiNY9kmzNUe>t;2G~sj_W19?qVfZy5`#y|OuX)8W2{91K&PygmyMf) zC)5~JV8BgHe3uh|nHMe|9n06RxXzb{w!&S958UQ%jV1VhIQz=5IG3bt+=D}K2=0Ts zLvRZrxVyW%dxCp#g1dW=;2zvvg1gH%N!Z=9yXWkAukQ!bJWuO%b=Oo^SKYPHr;hB8 zdmDAzNLTHHswjL3CLZN04MJMdvj-xXbb3zNItNf~NQTsQVrzC=RWMAFy?Lx8V_pnSJ;f1VK(RwY&P<@M+YV!FNA?0)MkG}+E5qHE$Kx(>+sk~Qt0 z@+zRV>7RS)AH0h5FONgN4nhvj)_>$cz>9=G3sukZlLGwS@tZ zoTG!qf1HDU?e;(Lp#O0WGLUop8xHhWk<9-_!NtnN@^1|259+_a_S|P>{+H+ef1iMW z$`5PQcgV}il!}%NHGa^qlEF(u1H&*kg+N-b!ao?;HNvXQWFv8^WatmY;0pza-MZ{4X{CHM zaF#szrCe$iGONijvOb2T3Y-snQDBL#;0e@$TQGf1a2SoCvXZjlL;d~uXcK~2i!o_! zA2x;*ll2&d*>}np2eyLc)-%7$ND#+lh|>!xX?xbCa%w6<0Bx6x)^Isw7Tp32hTqkv-8fi9s{0hFJ zwc5Cmleqq%cUK8BG{o1jIuq3g^%nZQ?PojcsV+n(ks^w`K<(W1Y&5&{*0Kd=te!@9 z2qbyOH9_PlFHusS$bf6qG*7lSoi0oJ&0kkmW?z5dm9F8vspFNuYIzn_Z$`VxbDYF^ znCA^#n{c@vnvhu020Hoc)&LA|FJ(U%>QP4{*{UX7(n%Z z3kW~4H~%0Y`~ec-ulFYhE9?Ih5G+m9KVY>v%UH2}#FlY0mblz5L6=Ni#_rWwij=OJ ztBr49Gwli!UuCl)zOCHEqtwkUXCxtAn7 zS&+kT(8BI{-i78J0lwpze%&&<=Bkx$Z?W!@jwC%S{Y@{n!#0KPos<++ut~J2aUR`= z<#K{CZjzX#-UVL7`#1F=Bqo*`bK)Fp!KEkW*B__p0QI3e-p|(pZSrh24n4$?M@zUk z)gyXguRt zw?mK!E3b7te4H<*Fynv$Ejv4(G`c1k=NIWDDgQjy?Fk)X844;h6}V!t@F1fiwSn(v zO^xT#{u9h;a!zRR1Zy1W_*U?vuFVa@7Kw{*tip1Nb3HZ=zxFzn3-63!Ql*+(+4Vv{5@DJ0%6X7}?61>Mt;Q zVYoFDElY+8V=2gsu8URqo#7)$I0vG@7zqYc5Ox|1wgAt&>4*^I7G(JBj4qgO5$+j3 zzqN(%mv({{q9Fo51%D?%;1{*&nq#1xLd39y#xMqHzMxjUpt%;PqITpi8+1q;VvK@! zB_;F38l?lBTA2YB95N_$n8rR@-ts)*+{(Y=a(&MKu!{W%byDK(0h42G)ww-fhAMi{-$-_Ht!xU+*LekLBoLZwJk--k8avCq_|eVjhVF zOE+^4w}FFB&g$4-#i~Z*AYDDZ%AKelGaDn1u{faDS^Yg!7k>vo^R)zqeZ~|~Ju`@IT{HLxK_!Ix943Om~*2&Kp zhCt8_PBzBBWq|*wrv+kg{$Kgu<mhtET-c5rvWEZ+IZ{zaNtRPZu=6Fnj+?NO4fK z{Hdl*e`5f(#2amhRT7$p5FSQHDCh^JScLhI3B6T~0lyx^Ab{>i{^m^x=Dt#QoZ6w8 zR3znWX&$_i@6QnY@RQys^x#$F1ir*RCt~ zJc*$OYodu+^$KbWO#9t(yzHhEnQ4+-S zlzQO+g3Zwc?v{YpH=O=3{4ozZ8@Xq-h}D%1-v&m-#X~|j_4W1iZXpA=Ai*-WDpUfQ z;4}1?;!$*@0+=w++g5hJc;O}#mIfk;rz0^cnvie`;Gq{REAt*OhV2KN!F zxN^}TbeeWx;EF7C13r-0kLXkw;s!+!0!0WJfc#C-4~8Oy($9s}M}_N?iXbYF6=P+D zIK?yyy%1?{v~^5#UwJ>_gUQ$H#~_1uRr~{G15f+b=hjzWcaNic2R@#$nc*2`UMW0h z)jD8%`dkUcokv`pAcU^GAL;x2^u2EFBH9wYCAdlD0?vad_zm3YE*^YaM<2agzyRUL zHH?7XxXJ!I;!RvC7f8V4O~3(R+@%zMm9`3H*TPi{HGO28z0QvEOuRE|4Kex;3m{VZ zrtLc@?5$TxLB--&#uRhEit%qJWm2Y>qQ@i_)gbQ1 z!yl2zNv2WnLNn8=hgb!$H>_phX7d^}zb?^IeI0UeS$fuLnZ|pq0UIi@AMNcj8I+at zIbq-dy-=54`WOtm1q47An$_s~2^CFQ-5KV>uHZbAW^#6#grMp}3cY!}s7iw%T}m`| z8It;?JKEVoAGC*@C&c>&q6+XnK)Oc5gcIB9UY~;+s9&{Q)1sKxmC$1*0!!DM10qOU zZ=ng4V83E{gfK;ON=sCDSM*JXb|Doont?Zn$y1c!3Op7y9hyigyaun!-h6|1&g$^T zX@?8uC9!Kcx$he8o;~ zmK3C~u`aQQ&sT7ByS;tRy!iM%wb_y!boSF9d=@WZa$ZZ>Ww`5p3F((<-z0K*_Sx|g zHo;O*G|xdh1VKTc{UdpwFd1%gu z-tcBbhTyUjR|^}W>y;D#QVTAO^>f=M%ZP~k``Ip*u_@#rK)?2BniCfJBmOz-|ev?u{FY zjLh;!C4r$vW@v7lNk{m?Z2Z%Z)g<%c0MGpTB1d$EY4ClEcc9}dkhW%!C#;hwvjZyRb>yV*)0I| zK5aIZ>bku$hVQy{k-Yn8ji#;HN<4J^=tsev?=I$y>dt4{eC9zB_B3TSQC1EEVwcs8&P~)81NI+hLea|GokfBu zr6$BCL`{~8RVZN6-+FO0L&&pX5Ub>=xU2V2AOr-ua;%SzUx|TIwxbXfD-nHsWppWV zI?ACFzDQ6DL&WUo+haqAacWJT((uys zF(h;;P7pHSmxYKkp`I!mVR(y`#J2vAQKR3bk*u%~6t3IMc%5vn>kbKRhQz>GCaU$% z)g3<+)v$W^Ro+lGTKzD2du=l4_e4vNtXr2v%cPu)8>5lZer4qi4TGK&COh;>tZFbm zk$Q5dRSM&1k94c$3+@a#2fbG3r@k^_YL~>x$4u3py17Yd@QsM;0qW%^9nv?nO zHDmuJasHnz1O6}a=Kp8FV^(IiKODLLphUE?vUad1dI22-V*de=H0_CgLjelgS=$I% zyQnkJ12y=-KOk@)@ROYr_^AnyF*GpM{mWeWpJKiPFf{p3eWd~rwbLGGilJ|4|1-Wa zuoGY+%%Ba_HnIaFk^d|Jd}1VG1coAic>qo~=g)J70zi@Rce&qJ8^9-EId-7o-Af*@ zAUp8ld0k_}e@)jv)Q9SfoWJ@7cJgb!fa$NVN5shS>stWRmwfhL zW^q4<_H$%E2mF%$8YvMY+e<#%uWto>eyRTpNDx>asOI@q?>8nP@cE_P-{6o$jKJ{f zzw%jM+Wi&h8(0q*M*a8umvQ}`86rlYcK6qNUdfmv(_6<9|QDw9E9;E-;+> zulK-c;=j|EaWcNN%lI-*#+Q1)5cI#w0mGmFPG9mFUixGB-5>CJ?PvDy6-D$yG|u0B z0x>gx=5hS)@r95azuV*Z-Q4dZBhd?Se=E?4ere)?^?tYVLU8uqt+4+d)^C#_qL)SR zvIc%zG7|kZj3oMP2TJtY0F~%vS-h-@mqqciCSI1rZxl-+*55t6(EWwHFVtoEo%cf9 z7t+2^_V>midZFJ7`Ch2^LcAB+y^szFEBbSKfN|@8CBG-+g`6+cd?6;&Z<_p!1plij z@Fw$j`kMw!KotFSKNOp(PW;OL?H8^H)8Fmo@T2Oh(S%^%yyS zjZpI+>cpSD{jFUnBLfr1zk#<8DK7!R+i^VoT%olN0;|OppThCbA?Itr9iSkc*xOV| z{R8!AKIT_0MQc|7+{BN_ONhEK?dl&-Qw~}Klag(`)u6uB{>hCb8|=$AmE{ z06UL^7|TXy-bS{s+oEZ~=T7u1iFn-42#n4UpZbSnlJLvV|Wuu~@bdNA#&et;BujU%lVCjU>>p4P}1A&=Vm*Rsi~1 z{%wXId_vZWd&s+#Xx>h!V5$^Goou6d;`lHSg|sf|9Mc}(c8VQA8#w0<8NSh8ACK7~ z#BpBwh9PER6BsP{wpPsK09R%9Spj@9yM3XXEc#JKj(qS&SiIQ9;&xpjn|x(r^w|75 z&g+Z4g6oM9=6CpTlKs&Q&1;cVrXZCgj60pr3vrXs%3Fj0vGzmASDiVMwe3^7f)kHf z)x^Z^5YUdtaK-^}#fvkMTk8`7b-Ie!b6UI}gxo0zk$FoRrdw%tB051d^3Kt=i$(We zTS!S6#1L*_;xcj1dbdU_Tjem9Yr5(A*ozOhkrRxQ(ELf|`a|PnTc6vOF72ymrVt*r zI*X6$r=XS+k<@PVrWX zwe$lxP>m3HvMphusgis zu-!I!@Fy;^g{cZ910nxH$k5TW+L;FJdsKZ1tw8&Cm4dQoLy(9QZ*`*lTdi6AIQ237B?U%raP#C#t&U6U$~W`Tvk zI?yHNqrnXO9HLhK&KNH_hfkA1EZqQK3{8%$yH{Gq$*x1~>zTBaW-Mdjmx=0&IoRyj z2Z)B(;mT7BtM`2j`Ft554`^2muez2^(mAC!zo%b4fqE_-Q7fvmiWTQ+lt00uf@iB` zHa%!4zI`u5mx?cbSH~2-psJR+Rp!!El$t#^RnTyMWctC19;GS<7+N?K_Ps&w40Zz% zYSHIJ!u=twSOI1T=qaB?pk6JWNQ||iYH74o-BDERn6pLd0WBcrBD4>ikS*wkiTPE~ zc9{P}+@wm)biFO!LVZ25zx&aF=R!W2TEgH`r-3{n{KJ9OmAvK5E)-YQB5(X|ZR3fP zd6Tr!*!YGeCSvb?=5VUvyI0H3EytM4%85RiGE0h@;@g4BJnXNvD`qA=o_U^aSA@PU zOLph)l}w&-Dv)c~^`@_ruy4USs~2uA@7v-vE~LbeE}0A0N<|$qn>mX@bNvXaKr2rs z8Ml=UT5fYgFuFmd?C8EM3y#I=H$3q&zV+g6o?Bx7P-%kfGKngUTeVo{%@Byt%0W1G z@Vv$Cd*mZ?a*4HLz;uWar~0|;<^sGW^ThQQtqQtgRoC5Wsh@EJI_vH9Qq4rs#)o?1 zWOalD@zQH__jHZ>*2Ch=SW?gG34tS5TZPLhN=eBR%c9nFTb!KStKlVQ?SWcW1V<;P z=ds|W_tkd~7Z{JBnv%ZbkIIug2`1I*D~a*8iV0r&jV9;!4dZ_82HgSGbi(+c(H9 zmMw~a*pJO7L5t=r<Nt@Oz=jtYwB6;>HE8WMQrME$4goE7_HEsgkP$iHD-~+gv zH+)wLKeGHSweRmbk-Un|5llLBS);a%t%V*(t>z^$r}6QZ(=(L5<4g)xd2(WR$kKVw zDw!8_EkP=TiR>47M2yz#DzseZ_pyk}61_dH76{|weftR;-79LdbQsk(Z6cgT(j|qG znQ_FN+hT`$*c`fs)3G^HnWw)7a(6R&yAH7}T)`sH{q3GoE*#EizIJp^-7rc`^&a2I zcX`(a;!v35hMDgzUSM67R4G%|WNPJX#g|r=wR@BEH*b#|C(y&i3|!xI^kB~r-xAu> zWgoa`d?dmQf!u1lB4?s;{aW8GQARPQid1Vs<`ALQhCyH3gi$z|A{6@X06{;VwAzZK~W-HV#{d`j5b%09$$m??TpD5;I@AZZj$$fv5d@U ziVMsybV%!Lc-)?(=VS?_2AA>w;1!fdK!KA*l?RO$(`!-$#zMv`qZ<`p9Er;f{`y0s z2J2A-Nr3pqkK(hLCAf4F;ZL(I=c9~0Z+j46Nfl-GZ57Peq!z7$mOrntI6w>vxH4?9 zsA%+lma^~NMdj={C$fP>T=J3J6QAZB4gi>U(JfiYj-)X2!q5s~BJy3`jtT9tC?-yh z1szXsFn6iaC!L$JbVK+-3?u!Z-j0QTobK-gKnDRQ#+uV*aqkh?OX17KY&TW6 zHbnDDMzJzQ0mcoJ`A6LYVYT`rb1TP^*G{n~<9Bs2`+;vwcnh z`L^W}B7D?}6ab3s>vH7V;CDJrQ2+Y0!_}Jxmtn%(UQ+X+Zr-D0989)U>6*JMVBWkt zUV%ffjV$%3>@9tMvw4<66n;Sw^qeJeXdl6=k&b1ZZiT2cwMxVqO@((l_cIVarM=*| z7Vr24AVWda^#Bz=V5^{^wbbS88f3DYRW%b#Y70}%>MK^;ni4vVTkvzcR_i|cAYKh z9sD-`YJo+!2C_D3US8fnyo`~3(%ce_dPtdD@(c13)g zVK_+0%+m3tIlC}=>Iibj-4#41EJJ{{J$uH0a9~dhHCygt{5=4WHjEwKtf(f04Ike+ zGGoKLG9!Kkr=24r?dT4+Utk4JIz5x*mb7o~@g|(=Xg6xEv$nvm`%r6x%8IkKfs@x! zhk)8@i_$9Ip*QO;T>8_NVQ*;mvVva-@LRPscqV{0JYnod%Xa`Huuvm_aKg2q0UV2$50utdE1s>umCZXpSy| zFmr)s4#gfI5UGqs>Gx^SA!hSKG+cm81}X7{9OXM7ZgEbLcd72Do{?UMLeU<4snR@R z8mQ>YiT52wKfkdITZY4_`UK~Zpl!u0rVI~z9CGnysa7yzVyXW-=d3%OALAJ=u3&MA zrtjzC;~x$k=li=njldv+s)S=wF?jp_as`oV7#A0-9E0Iv@yas_-yaOr-ii|j^a3iU z0d!W%G*yL8TfQL?Ec>3G4^=@Tq?_kWJaM@`4y}{Dt*+gxeBpUk?K+Mh^WEoL1q9kk z3C~lDXS|w*vB?!BQ^yq3?{|N^?KsO!Yl~6BHmL(k4pd_t$a_yCGExB`NteE@1xx(W z2UB*aXOff*-4YChF`2nSfEdkvH_G6GmvaEAS^e#Yiv~y2dIa#wJcnjvG%`hmJ0)$g z24S2Ye&Wc>*4e}2s=JDD6a0rsYw9id5ajL6B!2;-fx0kqs$=CoW=r6B9_WU%Frin& z8>5JAlocQK?v%MY0$6BUK_g zzloM$Bq1u6v=1Q%?^o!>ZG8x2=&#Uc>DWy2>k~R?-JW@FT}T|gY@<@%ln2n9tOnb; zE-DYhQ#sL`(cGMpr8p5enp5#j-XBJ0u{YsSzbALO>Fm^O`)nV@5}gkV!@N4Q0F2?u zm9bR&jy65DXgO{9=tP?;ozZ6{Fa|!fdYU1Dc&o$22+;ye@tdCeg$_8zsOPN4D9`Mf zi-lhmDXwm__9oX9WoKbueyG0enjIC+{*QG^77YQR`r$>VJ2)zb2(G5aRb(;nfbLKd zEj)Q{dV-u!%TaF&^ga4Yc+^y)&vv0Pb0XiH>lQ?o7emTWz#52V8E#vC*aVd|PyE^+ zGlUnML3Q(CIvrY&O}a_5lscEZfNYQ0=3*m%p-Wu>H}dLI#iA%54&70kZK{nWZ`bwx zfzI1GT6gPYi;6k&c-yj}))YD9*L zYf54L^;1|XX2t~UfiYEpBcJ`X0^NqY=>SHLbpW*HSl9Z=NzlViP%ByFr8BBf0iK5M zSzj3zbPwxfG;YaxGPH#gzC{89{A+ZsXk(ju#-n4>OBJmU?aWmZALhZkFw*@zsKXLdW=X|ku25SJ8^AMVb5vUUtmDrGnc^dF?mT0a6TCfJ;ZHJ z0J^%YGGAY^+vcl5%%#m+Q>~rYjl^iwQ9T=<`fc>T5kFm~NehQ~-P){ddIE!?1Z&c` zRkR4cRlHQSoDg)oQe@Oh&rWkzQ(h0@eg?XP3EUqXC^7IXGWL$5Gg6|qZ_qx;U>(8C zZUo@6Q<<>~>JGCHQw=FdB;$AcO%>x$rIKmPflnx|8$$0ej$tSe zq?oC*Yz-)$+xN22uIQ-~uD$9$KhLAK^ktSr(Y0SZ7X5LJ&XlvW$C{NX2+BjhE=iaF z26t|zilXY1n$m!TA*l|Rh>=W<_EO+|&X!!2nC~}^UVp{>s@x3NRBwI8?~b9p-YPOfwOe56 zwv#zZ*tc_BjN6=HXZM+M@Jt_v%|JQwF`D?!fcinlxvxa3A}@<4V92e!1go5?ft*PBa0-Z z352*JdfT3hTz#brg-Bg`ZUi+F(3h2?VLq?n&3)`jZ?ky*mYbrDMJv&KSjDTfPVM(# zx)KRDQP$N=-;d*WT5eMCY(1;?CFtAc;%2;gyf`wR(UYHnJ~OxVY>RchA9V;wfnrY& z3UWS-4Qm95V%$fcM@tD2BduvqP#5GQQ>yC71^YYxZYrOfKvSsV(g>Ah;@i@7pbL`ttq6W(;4v=rH}vEedIKStLj}aaoh`=~ z;+S1%10LH%Ov<^F>?E1jx#X~_nPXvCbG#lj(6bC5Gug0YULS`)BJwohOD~j(5MUx7 z1+$Yc`&)o_#?6Lau_Uxzox5$A=_7v9pLT(lj5kxR+7R{QnQRD44`BhLcuc`DDiYhXk-^%I7aMz%*{?s21+Q#1VEBHj%{9T+P2tr6qn{bwNY{@-9r9#T@j@qwVOPW+ zz~N{62QOnV6`TSODBh3>+o5m|slg)QlPphh=bY;t!2*{$&z{+3!6i%ebQ$=T9A%d;r&px&l)ztwsr!Z&p#@M&iW zV5O|%B`_BLiqR>~XIEV+E^1*q*{k4MJ!WS$V|lUtLEi%*-*opqRVxwcz^*}I{z~tz z3_Sx9VrAH%KMXcLvhhcu1u=7U&){LxXc2`8cBr}+-$iO+Pgi6494;7_UNd>n%6aHz7>LWHO|zCc>QZ{k>cMtG!yS`Et&IZrEi^T zwH1>~WTiZbx!2OwTau0gPWXpN(yHX`GX$yQ;|4#y@9(mb{4OOq0xlv%Zbsz??-PA_ zy}%3756Xe%i&| +P8YckstVz9Vi`Xg1ZW%zkn`qMh+{8TIUE1w}{uDfEidGTp=0 z75<$m&X%~`JrKa%lVnK3RC2=dDC};`_A6r4+0|EFAI7M5?FwZ_74QWT;kTr1Zg=6* zc5{lkQQj)w48b%(G~;QukBMRH>hGd@1Qdg4!3Mr6*eJI9+Fe?q5}lu|>Ru7Pj3gC&d(BcWgbn}x`e>qsaZ|MB_GGkJ!!aL^Ex zsdgms9?n?54zgAaB%IOC)AN3uN*Q9EYo%liJhj6AY>TSK-ORJt8UAy6$ws{*gqN%j z@oVd(Y@x4)VQ{>VVOltkoe&kfLZPzbW1)PQ&1mmvgGM8C$2C5^g>qY}dp|jbg>GpR z!sM;Fp4Mm;;dHbCP;l8tC`q?=*A_tZn0CE`P7cDTR*B@Yq-fn^TY!{Jh{ z1zGL@*CN}0YL73Vj4OhmnT6)*;7F0Z3zvZ{n3$WG6YfV_dx#$BC$dVW3Zlgo?dgyO z#15pZ+l$4zXEaL_8|V_qP+xJvJn}Fa2ZzGmuo-llL-3f`Vpw41n3nq#B98c@y<8FG zpyn7mxasXioG-^4u2t!JcDkdkEZgNgc65!C=E@VW`&AVeJQ&Rht#_purnF7S!NLw2 zj^lJ<*%NHh`s0CZxZ(7o?aN(sLU#_c@Qs_Km{Ox+QAE(iNKO zp{T8+nzXWh)ir^do;;l!Sfi*v!~{JFM-C6ODEOqpSEgj}-r_vPRE1R9D@!Ec^Cz`W6=|ZK~#o6OCX1QQ8#EVMg>I3cQo5w zeHa@UtP@+8&?rS>Avsicl%hF$lY^2AK7I-KV=fV<5jmF#U3lLLtXJ*=+j1U>{J~Khx>QaZ684bq9*4NK4xmchlv^bT|EFaG}Lwko|N8WWZ{kM2S`78JG90weolZ zhuMj)vM>6EQr(9*MtCud);{817Ee?1`r&s3T(S*(t^=!c6{^&)mD-49LW5&Ed|K3z zcNYMLm*N6n)DOOvm{x6ZX?qf#G(I4y?tsKxD8+K4PjA zfT5F@hK{4<`m8BnTCyfgarbH^EouG)>iyx?diEzm%vIor(ppu*4A0^jKG#Qg6OAsK zbd|ZY!=3B_U98eGP1V=KfKsQHM_*d2vxl2!J$3deuQ~LsI$6EVOu6}k7C`2vMn_ZL zK_wZ8R~a3VKwl)3v5SX!`Z`~aj2;UzoE3bsl^=ZAidlt%h%naW4e zy8GVy798yQq4X#I!fT+O;p5^ULBs*wL+1Zu25)XL>jopzU zTR8dN>1hj0d+AXQ=hcE1CKIyy2!+uQc z*0DiKU#`(L;?9)^4EacM%gVWJ7yW=r-r1u-r)ZbmowprPz;dVTYq2L0PH04N+kTuo zXM8>+dy+ab(i|;MJs>=3yJ`i3_+?**rknNdFMbx~M5yY(ij>TH?M$$L9rR5CuK{5f z1BVFz!+SJqq*~e6c$CQkCN`Uf(V+0TZW0C>1oJeg6IA6cjoWClXsvMXWpI|_pgM(w z=zZ3Zo5tz-0}>K_D{dMznjrHqFwqM-UBSkzuc zR9~Nt%OsuoT7+53Mi7l|rSlk`SY(F0p0lc_I>RuP)}B(Nq1p$>IBw4d~lkA0a`= zH}{|Ok%wI&@6EyBbQMJ;O($ItP*~+fgxn{V@n3QBW}oGXYiE>(Gk>(^?%qJxq9lgx z(fVW}9dn<3*BP=L^KscdEr|D2uoI$;EW-Y}u!wD2*3ZxIWvrk~EO`Y^=V+cA9)|Ko6^Ska9=t6)g7i z<^iee`^|RhXhNU9eJ2}iFhPh$9kBdPk5{k$^zEw$I)5;y6g4l87j&*;x8OElmCSqP zX`G~&kuMh0Wk`pxJ#W6%>GP=DJypocV5-l;>D%BARMg>t@4vd=pwMIcwE4wdR>_w6e6cnmmH06f;Ua zDIEDr73F+TnKjm%rFCU(@F>l;VYXrB+os)13WuGU>oI|ZFX5ZK-@0xg`74*eHdYAN zDo{b@+K6ovWRq9vwSTC#fuVhtq_`9HUBUhGzU7GA)R-NtV_7^^51T_GbeZCc{tUK7 zc2#Aclw>hGE~6D7sq8WlaWZwPbdMRPV0U*&vhcCDpnaj*2)qub&Bj7aA1?h9v$_OM z#%w|>L#5$;(t5iQ=47TB?1hu2BF&kxl3*`~;?k1?hkTh;h~E9a)WUUXQmA%BlP(@3k-7y%iLJDIRH`iL`uk@dtBVmwMTDSSmOZq&^6 zBo*Qx%X#~hDba;$3nQZClo3a~lK6J(Q|Q}ywa*27B#&jcpgNtHgZf^J7z&7e9i@<9 zGch%5=Y=BkZUP8{?AV#SWmP0k8ivnsVh@RyC{tnSdIsUCnrjBGi0Q*lJC{dOg=g`U zvbZJ5YsGso%?;fs#oV{-alsJVZxzMn?cJT)4z9G>vt2Y7VK~90TQLWlucooQoHlg_ zVjIB4$!s`^rp{89HFvbqRccX}zMw-7W$`I=I&08bRpHMmK}f#KuC@tHEa~)Q04Ih` z17BZo3M?;nY}=bwHFO|!obP^>rVP0#7%Xw8(-)(VvC82{{bK;F3#{y+1jj-WJmPMC zHR6H8WQhT0b~mDeuD6aPK27a&gsQp@M<_$?cZClzEd~Xky3>lT-!P$NX-%N~pkztL z_urTHKiUw0tl)8b=LK~K_ysNT&UeI6?b6FE`N*Tf>wrQeI1FpC3LZeAdEH5l8Esfx zye;gQ!)}N35KcZke{k4Ex1%&+>a1z#htcnmK_Vep9flz}7U*0>mMMD!2T(iW<0hQ3 zv4A%9i4&`sh*WG9sYF^-xv`uROXVReuZ9`A*5GHs&kSM-6XlN9?$Tr6mMHZZ4Sp;v zdbE`?Dm$+TK=qy$c_@2@Q7hQ!>6?oX({ly!HpfvT{EY;0Vj$&rqO>5o&vs;{`&s>n zcY6r!G*OKqG-&atrl|1@n3Hu35fOFrm5!QhVI?0O&*`hCDYUl+>0L~mT0Jt{QjH(X zw}XdCs8fud@(eLfaXY-3PiN35img6bwSYeC6ATZfCiLkjAiuI}?dE-`S5osBcDoNIf2gC*+Iuaih!R3PVE) zaG@~TUGSk77tc-`{>%lbcYtdt&8u#;E<6X&t&x$+k+_Iy@5`yqPZrEbR0|Ph9TN+H ze_e=@@M+4=c3?*b&$im7a849Fkiyu2X#|ynRem@*SC8|=(Ig3N$+@DHoSeute+{@%^<81@ zt~)k+#r-BR9ENjNUrBwVogZCYIhxTneA${9T}crMPVaCkjLS)fYaL}wLgh6b5gt4> zt+*jgiN!OGmIh*C35n4rrQTZYZ48AFG`I+&5b5>6w7Y;UXlpMb#ksRCeTHHaG_rBz zZ%<5cg227=xam7FS1C;w+-P7?Pyp{AxW(kdKCm=Y=hP?-8`PYhgOON}lSX1vN*K2| z3IStZEAd<+q~56y?(JZbeT>ngH67sei;N8%U3<6Eh{l&s|ROne$=f9+mZt?SjZ+qx<$}z(p5q!`R+qd+4=WdP34vP zBd(3W%d+Zamy&yi{+&FDL`WI`E|GL!vh**0dwEsLBI~NnX6vMybV=&wTIjjc>kg&z z*u7I;6rY!t53#WiHO{!s@ZCVe93}gNA0@Zl%t+$aL_R~JZuuazm1KK1I^rM_=F$={ zu#1k?cO}1eJ3JYzb%hX|f&y5rRkU_Tw(dUx+Cjd%Ai4dCS^G~j#}|Xcf5PQT>e}d9 zF;W5To{dfI9qe2w1r4nA45@(r%QiL^hL%4~qyJ!z{nM!OZ%r0|LK*;@GSszv1t%VA zrh^5Uqk|sd_l`lq2Sfk}{RmP868$Hm`)RlNw{5eqGyl`I`Y$naJ)%0ye}YUK&mUk; zFtT=hp;^j9D&(!n4fP{(p_bGy)iX7dlB?>MjR8hK{=5W3)#^e$Pklk`B9FB9LDB8B zBK;db(X$VGIj0d@v+t28MAquzW83kmXJqg@JqX(=tg9y5Z(^ z(en>*BjGp*BumWq{U1f3r56Uousvqqt7T5bp9Zxr zYv#qlmyv~$;~#Ljzf6Gt=(EAb{4cCrX7+!$?E+Jvp}){i4*@z>prJ7xFbimB542eS z+1S6i?Mhj@IhyPK1KJ2^w@;@eK_v4>Xro`&$G;ks)wMJPynxdJ>xo$diz`Xc{q#m~ zwER^9XxVS*pl<^BZ#<*F!pmi3Wc%N61+0HSRQzdm{4zQJ36}fcPGK&x}89r2lriGco_0?el-2;-*%nNoVd;ZdUNq zE`W2?#b9I3QI5Q^=I@5bm)7xr@Z>*Lz5C9?iq5pl{;8}R!INl|qdOU2C|H=tv8Ww7 zvA%54sz%}`D((Of6<5pWYe+d3ygwLr#`7WNQm${r5S z71Qoq-fM2+T|ayrfLq_7U=n|CZwzwL_YAMDhFx39={M>)^2tC{+->R)G^EdRD+OiF z+6nQ6Wjoxq%GZ%d-L0+VpFNPQvKEJET?Y^)qgaKAT1u(9A%sfB9)Usm>R_#B{$!p1 z@*;Sdt$(s^2_O=ugQjqdAvOa64hqB<#P`nz^?x#8XJ+|V zn83f}*#AU1hl4pqK)9H3lJ1w2eAR~l1UL`fd-wyuIm9o3^P?3MCR%T=bp6(EITxPv z&)404E3bhF=c{Wk2g@&eehSn8`&w$kCR~hit!x>~ArX=)91TD>fwhDFu3)7!LD`lajfdsuR8aoC-*+P&d58Xq*weFwmMhN%_{FT2r~cVjsHE6e`kunU3vbBEBni~Q|0^e-Oyho85YRGVW~FFX?G-+1J6#tofk z(J1RJ#9f-dC4=BjKjSA|z3?%;V+njXo8`RP!FqgYMYUBU0yIQcN5OcqT_lv=Z_E~2 z8YZ^I7r5L8a=aF8vcs4T%-t@%pi~_MMR0gdOuJ_5!w4{3`pxs9M-we*+oPwPVgbb0 z!7B`G9C$gEeL-%DTUteaXT%?EHREO{v@+;`~dm9_y& z5P|Yz^oWyb<986%D1N0#$f2S1O;n3Ryhddsi>c}E`ds()3Q)N<#ZS=Bz7R_{Qi}~X zQ^V3+psgF(smHb)D{C7KvZh0}n%9s0JEES?6P=;xufyOt3IV)KY8Lm;mIB6KO0P88xJ`?^H~ys zls1Y2$0BMw#Jk!qFdWet{XJmKbYVUcmt^_k{K&?70ze3Xg9}IKf7`{Iq&mo2#j1;% z7e9$^dUE|%LkJU!YSxU=ZtXQY#YWhJ3`h7y6p@^0$`aa!D3{3=y3_TOW>jE{{I!FD3ppyjA&6YX2#5z$X<~>WXqN{Ve9q@{KId~j=Y7@)Sq__dzwLYT za_Cx&Q^Ngc#mwlyp^TVCRy}q*>byN)H*IswiTZGoHG<1=O-}Td@S2d^mwTV*_O`ST z3#ZRvIC<;Rv+=}B@gu;5OtR@B5~!&!iK4*oqwrM06LP6%%wmZ@8!urZM9@M63nP$F z;9fr%FC9lPXV=Bm%pRtuQnTFSirRyccXDt5294U?L#B{@H)cBeTQ!t6t{uA^;;)3R z-ecpo6S`buGA7H3tQ(loO4GdIa8%|Eo}@@_>0!T?GA~vf%!&mY1l7d>s{beqTE)`Q z+HEJ8EQ?k(b91rrFvO52(Lxtd?Hi3ZH`c&RVFxtH6Lz&Hn#xL9QvrG?0zyxHhpnZ# z+xLFrE*3CZ7DWL6Tr631SsYp9v_WhMx;b8ifYP>N!H5uWpn<}QU_`+LL2U~bya|X_>njis8hd zQUnu`Nnkdhm>4uI8E}q4M@D0YNY}=~+R_av8ChtS^Y^v^p0P-NYX#ZW=)VxB!6fY# zkVruhSV2>tp}B|Tzj!b&(Zw3nR`9}`w9(og=uK8&YN)t40jLUu0KB`ZnFo+R3imSz zq?Oi0VJSdJBB1z10UR*RQH&reA`VK60M#XmcquSekBl-nGhi8n8Qd5!;GZaiA=r$B z#s^5{L{0_3pM>)lTsQ)e8W#>mNe?bj1`SYXo4o* z#vV|IKyHtlrGllolZE9ttv(>9`zM=y#UngHcUc~3a3~D+9~C-b^&toCYWP~@_;pm7 zP_$nF$LM|M*-6njXYJqwyBFKzwbdSW9G|f?=;@-|?3$$=M^Dr``^LnjylG@rG04aj zOiU;;xfH%Py0M#=6>~Cd@++fQ4yjTNfZzkSi_EuI7%FHiLAzRX>gF=@t>QA3^iCff`JR$xiBZhcy1mn zZLq$V*=`$0YvAcY`UCtr*wLe$gbVZsXAd$WRBkA^#v1k03B<*s?GqwFQ^Y3(yT|^TcmIE{x5)d@s=QPV z5)CAD88Hmzm$Z`1>+`?ryC@zJe078EfDDI!jZf^3EjA@N=K8lw6gQiv&7OUB6aNj= z!#*^V!+l@unyU-*@m#ATuHKG%6dcE8Wv{4WKk_;7xL)6f1IiyIKct2TV66l(eXrIj z<#VfxZH=nL9I9?(TXluosb~Mvd!TcCJc4`Kc$SRH7o$;@KUp*JU$bWa<8nj#e4u{^ zDlV;#pBMp<3H|+!A50eWSBoIO)6(1y7y=Xy8R~#Kg0OB;Ov3jc!0r04bpWZ99Y;Xg zeMs4H1d<4#%J~It|6e<56Sy;^pS>BRSbp$kaDc7{iwAHBC>-b^f&L!>^akFuf01M*kDP?eBJT$-N~44(_j$`%6STI06HKl-7H^jxLdQZwaO`nnHk+x!mO5 z5(O91U!o5e&E67Bvqi@BgXN(SY5JplD3~wo7Xg4(R{tR<@TV}@xS=kX3yn4=xLGx% z?i`F46BNh(643u~`=EGaO&wNSR9lqs(RuA_&etSGk~l<$FDXO`&d}O`3kVexk>7wb zmlv2JutA=YlQST6fr!=yb7cY601iHprRJOx0io+eN;$5{h(J`2vOes)#%VfXnlW-& zjfDk4fC~xfLCpffBuDlX!8hGf%#);WBSj>A;-jE?p1PGQTaGz#$(9GLD+Z4 zd>n+F_c!@CI1CuuMd3t22n@u@aTw4?21lfc+YyR?L(|&Ae8aTs$4}vqKdNJbpD3n7 zqi6NUD=pR7+60#LKc%H8EtMNYt+a4B3Qk-=D7C*UEmXLFH+cQ49TO};9K@|DN(<8e z;3GPemZk>*lZF4Qm6pl{nxKOJWOe>@r6o*0O!lABl9d+bJRhf}g$J7urG?Yr$CMT> z+~20OSUkve8B-<1{~9QjS|F$Uy0fuSR^dyFALS($XX$28OK;H4VKb$%-P>c1L{K*A4{ zU<4M7D@_)PfZ$;!$|{5xq?kf@bcP}*sE|;^i{=;!ynxXZ!unOQ!HC8TB@r{Zp(M~Ay@MBOnnHkd%8h~xksE!uXh!Yeb*QEg z*RKi=fke?aaj3nU)KJolaKP(rO(8%!1xLY!2#!8nG&_Ota$-}6i*CW;ATJArLm+|d zE@=7?js&?TlNm~yo(a5a+7#lOOm1-A)puA3NIGEQY0pxD*MyrwSagexJSGVvq8Lgs zQOGfw#G}O1c1+;4@1_voWO5^qNm6jZ`bH-%nvMy)wBHos`bEKsi9!h*V3q?sFAPd* zo^&u74|^sP_I2PT45ttveS#aqg$Ry5T##!rF)pgW%v5x7epPS?B#PjmNh-AMBqFv6 zdpht$(0^WR6jX@V=s`u(pM)3LoI+H;Dl~X55n0#7Xk>y>W?|xKdz0`|qEiTuPF+J# zAtIv>6-{3fUMF=5QPC|lBvDFC44OKNB_~RW;h}uDNqk8>m;^>+>MXn->=Xi=Ol(L_ z@fa>RQHm~HVziwSc)8mt#PzF!LqtUp92oeV#6*hGc1hqxeWwr}onoV)Lc~T7Dw+-n zyv{Tk6}=;$e^kB&ykPb(0{GKMf#4O!X=D0t6o@hNcoYa(N_}h; zh_ZY;I6-EHfc!Z+Cky^+z6A~o&D zeo9yPvy_%9Nrqml^T#VK)hN#dnEq2*iqcXI7*Q)NR4uk5N=wd)g6H{S0N2m&Op*e= zEMRURD=ij8xgj10I+b?9E*1t}UjE;#wHRQ+etF{hpRTqT;M-3I>OZ|D>n%ojAHb6GXNgT5o@PZ69AFol z&<~`9fW&BrfH0y|p42}mI0`UCbo2qE83n?KPVP?q**-2tl*-AOz#;qz!5`mRQu9Ag z0P4TilG0jI(?9>vT7J(fM(R0LYY7+d?`kb^AT3cGB_>Xu!$T5>k0#A5#xT%~DPgD? zt0$-=Kh^v{s(*^XQ29CZBKY%lm&%Em0MviFJEpr-9uc+f!Zm~J=_1VAW055c!X^Ei z5{z;1Jb*FX1&jk=99NtU-K9DG9;{UGXSqxykaY!m{|LbVUKAQNBhnt~6ayRzG=^U= zm_Ng1q5y+kCOU!9%;mwrq{id`!&LZ!zc>Ix#zYYv2BN~4gaT8H_Q)9qrum&hg!FY& z#(*KBqX!s{_RtxIn)&%p5FLz(L=hcK&^if`5{~xh8HSq2c`6XnDLM!k$W}zU(Rc_L z5l`Ek;3jc){xGU%7!xpLQ|EU~~wYn@cA!np7-c5v1=Do50ii$pQc4-B*~O{a+nF2a6Vr zDbfUD`Og8TIN)HBfU&|FbHE|e3k;d4AENn3YC5I+jGTc7k$#gCjwKOcVlO-vva{k~ zh94d|#(|b)BJM%T7%%PECCqgDi`D&)*WrIXcQb|#^5*|^n4-fIvN~hPw9bge!r?G- zHyS?ke7s&_HlQ_p@bm$rnP82XYS!jo z6&;KTu)xBzZ16Cd^CZy}>?H9bYX0V_sGM|)jsgr39eu!PCt6VRI!^_#UlkpKi6T0f zd3%!ZGj@`A5jD&6R3M~NbQEBS=;#ARd*pzcl6fkC{i^5?Occ>U%lb?fe#SD;?vhP4 z`7)iNqX0uhM;|cSzUowyF8`|NU`%5MlLWWyw4=1xN!q%preCI0bQEBS=;#ARyR8F@ zJB)=%{sgTv`^0&(VpM^ksX$1l=qSKo(a{NPlD3X2L1-#~(XDmJ zXb4!UbS$Zm0CDL|mQ*-d8VEH3^HkuQOmN6VH!>`Etd34twA(pqTIQ*M^{Zk-L`5E} zBS2g_69pbANrjk6+Bs^H=BYqPr{E~S5Yf>GjCMOm&8R#TzkThKPG(462F#&@A!fBLn z8Z}SykKr`9B5Z|MuExMM{f8kfxR8HWI1R}OCEy59I|4X(pqx+wm;^sztAY$?O|q^s z22bVeOi)pNs_K9Ia26dL%Rhnov-Fpm`FH}c{HMPZ{iUW%{!xDsK4`N3{xqBg7xM4Y zUuZ}giyG5kFdz+%=+R%=ofT@f<*9Hie${mn`#uAT0P)#P-dUj?3@7|kxj!{G4Awu|vV>)DQqrgJMMh`67p#cJwlk+EtO&sEzKvL%k5SQI# zMv`{;d#dS>>C`m@6e2QuK+z5fP*WgJ-~j#P!u|1nDK-Bwy`cUqzm%Hccmf3f`K1)U zl$tmBN52%V2;_bxT+@H(SHgw-yZlly;M$0x2*5jq87Bdcl^BW$yi;&A{?HDkUrF2K z{$rHN7_#36j|UJzCN~B&YS0ir7BGboaZrOf!4lh)Ff8r-6KYQ72{hneXqc${8hSzf zVTOsybD03ae}-wyFj4tKe=$r@MW7faC<^+cVS)_Wk&=jk8M|m3 zCfeQ-HAnLV73JTjztp_U^n&`c^p~1}c>)Cg=`Tfpso9)=)L*zFko6a?=|AW%T*$vm ze=&GyK{Sf~VhGSgXu9;5cE>=RDj+mLMfn%%FI6~*UQmCS{!Tt*_MiTa=`WSL^%wnx zGqjO_HC)qw)L(Lo{ChYuVIl(}7LbsDg&$z;1-aZ4ko8hJ1+;xL$O_%mpQihOSYt zbTxOeadvZZLBVVvThS_JOZ+* zfiDaQFvtG`I-1CrKkSHuvv`pI0beE#j68H=!h3xG0=fxh`+j!(I}yP;Pd`3~@(if3 z;H$^p>HEE)mx1m_DNxEC;Nx-McgjK znmg9mQum7})=NWMNmEmOt*nL94oeLiV7t(eaRQf^Il4in3eXS0elmKaqq&oXjiWVM z$->gn&Bo1BSn&r#C5qN|0yYr*$Pxv!Pi_5fxu{=)x@$vu31wYvMScCX%1&OJoitpW zwkZj#T3Xn+JN)!6h*R)OuL7+QKf$X|bsT6Jz+yk!3eY6BB02Fv{2%}_%TPym;nYbWI;pg6E0MRAyLI# zrw|`@VtizF8)$_YNQQ743p6wWW$e&{aFQ8xSYXnpRDu%^31~Huzb3S@ z39x8=Awf(QkjX`1!OENfCJpPP!QjGR$>7Xj27kIRxH4!l*f3Z#ID#{74DRq* z8Z@Zj0pD%bR9NN78XIKAU#Rs2(;^UR1VEWSdDaAEjcG<$u++rszZKaJ%?uzbg}{*8 z84R@a)A$wiyK6VeBxWo%`TB1KM&T=j*Dt03Bg>2)V3SPo1)MG4>*5cF8rB7P5;4f7 z*#sMF^d@^VH%kRes5b>-KQ0bXC^G7k ziDF7{a*BSQ9J94tH{jq?t3OYlCCb3HeaXSOEWikpZ%;AD)Ew%tIaWg<#RM5&IW6$& zTHv293Ih)RCv^df#}M%1Py?;U{*wDBS>%qlpJ9 zjvWm?()bDK1JU2a0rq00-0o$AEwx)G}dU&T2Yv z(F_%1G1S2pIVTTL(-19%I*4Ecn*Nho|5=VDHA(sp_UbzVdTbR~pXQg06%=#=x(TmU z2s)wg5H3_jscaZp+tS00ZbQZsbeH9k28Y66|52e6Rv&WEu7s^fmk!j#gavr z#gRo$n}vGeNEVC;0SD|hRs^gUC5F$2c{~7BRCIig4H~17b#!zB?ItD2ilt_6pFraOY0V^BLroMvK^gv}HGh`vq$Yw_ zwy|(EgobHA^##K9qb@kZqN?otU{L~ zS#Hn{<<4;43HXWt$4=lK^5q1WH3T|?ED{3kkRL%9!%sPZ%m4>J0V5djqX@_haOlj~ zZzwlLrk;YYkXfeC4jC~4p0f!(6Q0}%?~oA_;CXZK88Tu5JS7W0L%B0N-v>HFDN8V4 zkNiHAvLsN-l0Yd-0;RwRlma7A3XDK0Fff6Pd>pH3Maro zXOI*JXooBc0^86Xi3B!e?VIPePZkO30mh#q`~Tv@~KHaG(VKid=L=xGN2xq1+i+#R=RQ?%6LM3*Ttr3jfKbxIAP)Fw*Jqf|vo-5jgOl!{H!A<7$5AW&)wx%kG^ zhg=L4-Gez+08*Gu2KuCYPcaNoV-L=Yk)H<>SV70+=fPZL&@uUWFs&SPOfF@ZArLwy z-w!5x1jjI~CG<&tf0&^ZIwrqAMO-j*Iyg_M29$b1wlm059MJdV_oUP1t>D-m*b3Ki+I>iasPBwa{qgTC%U}-v zL3eiq_g4d-4#20d1Re!4oJ#%1P(e}kyy;mTUK=gv=7>f-8l+sYh(eA3Hb^4t_n}Ve zr$bfn??0Vv4iIZF&cn^ICRjXh_Q(8k>XjCd_a`?6SaM5%C0iCO(hgAF6SjPa;8b9d zS%QUT%^9?TdEWsG?PpgFGKzm69N>|mSlhAooKjs06hlNnn%{BW(;Q?k|t}sksJZBV;g?297{!@d${O zr1w!`e|Z#@9g(Bt$0%Cb@3wTaF*p03g`;cZDC_8IGnNW7LCzqxXsGPS&v#a{bhlK| zhH@9>EGB*mjYLK)qLTlvOh(YELWy)@zzc#C?I;OpZDPP3AOIDFe+>4a zPaJ4rDHl!l3EvA`1KoqNLDz^w$KY8+;8qZUD+Fx>(AeUEJ4gg_qMXl#T?dDD*wNfqTMPh2Wi`Pv{+>Off8Y2GmuA zuA}~he*>KZ&%*+j5PE;;duX2oT3F~jbPZ+0L0Ocb#lrzN5&8}f+%9p@f_LE%7wf_xvi@Sq9-or7*J z20ozz1z|9Fg9{ZZAW#VKy}@tb@4&O5>&3zE;51IC&;UlL0*tqjfFnq$5KyI{Y*2-u z-r&jraKRM;sti;c^j`2W^gY!!Rx!wehlKmr4XS8=Jx8eoaHW7M2H4=r^Op)isTgo& zCs!o6VnEV^HmK~O^B59UiXvh|$TnRTN<(x*fwk+<@@CG8mNwQq-9TQ87&$4>4J8bG z4``sw+7*Sv!Wq(Vut*q$0^sj}_(4g)Yu`aZJ`@8$OI0v7ce)N?)c2~vFAg}Q4PDmk76n8x?o%UH!x-MB{@0c7cJ7b1n%99$$tEe9L)g zTXw->^UD?Nj4Kqi8S#qvUFkDyY%h3)^0Gc)@C&Nk5gImAX8KN!GMA#&p%qM~GB(BM zp1-nNu`{^nppR`v-OPh4WL;VqJmTIz&}ItX%hVWJsa147w35I7lv-fjQBpnIb75JR zz`B_m?#R1j>bohnFAM*YB+tJ%ZA(z-oHJW;-&nl5Dro2*HqF$Dcm9?|io7fgi#<$&DZj zZ4XuOr%$&(Bp*D8^;pEt%ZFUjS@8>_wWcq4988s1x3|W^M+%pZhS1fI0 zc=CWjbidv+%@flUuh}w$+u<0V3or4jTR9VT=d{KCI;-#*;dhmup4^lv#45;sb2Go^ z;c1Gz?-&GYHLuS$y|PN)wz1Jt?8p-hJkuW5ujX>ZR)ckD4ZPSKGhIc@BW~e~g7Rhd zThsWvw_uiKI7<&Xf2n=U#iyQh@F+&|uE)O6*G0uwLX!IS>?w$>Y$XP%T)z9njU?|6ertO7y0<((|HDD%qMo|u4^3aY?%qAa-r?xj5$iip zUwS5_L!|cQeW@HT*DW)BvV43mry6e`?)qvWJ?b)er|@xcVDVsSknaji4t6JV$IQI+&_*D`H_Y5Mz_zpOT>RpgO}h^kkC-{LDJO~)7Ci5% zFPAv|=#^9==Cz>K>BO%V>ua}Pw%8&NCx3-as^gGQbD?xSdgGj*>+7HzPv5YMD z{0@~@_qYrnYpRdtDptN+CbUs;t;D5S-e%SdPirnb=A<`Th~~hs3~$Zn9XKDo;YE(q z*CO=0*4Lyy+pk4j?^^kFqss+u`r`H~hFO7c@>`#`I(gv+&s0e|>`WxOrZgpVL^r7l zUT9LisZIp%+mT2NPe_cCY)&K=q(2f`Z8^YYC=LEND(^l|a>l9j7oBM`(ST0JWmp8J zFs^!BJadln?yVBnxvhMQ- zB%ro?6aUkwScM0hxo3J_f5di9Yd&G*+|AZ~l8Tr7KVrDM<{!o?X8FtDa~X|p6|>)1 zcH|PVJo&I!@h;Kj88_$ku9V=_bV}o#-}|UWKAB6?Nfafhuz@FuTRT4L46a-==nSFU z<`rYgvb=C+v&LQqyJu;Q=JCWgGbLj3Rl6dz!Z$v^HZB~*OG=ts4xS^V*z@sz=FFIz zZf3c+Pinf#vFmAP-!l&}e!gsKxwm^{ZrR`-(cL>Uv0PA{scWQ2B6&33dfiO6(aQI!?R?q_xdjYi9P=a&`aEjx=?+}92-CPq z;ayA={*;Mpta%i%L3+8#nH#lsg(w!QUiHy0R|aO0w$>f#%?n=@d!#G3H!ot9Bmdx* zAYMuTL`?8SPu~4jRg$~bZ*4f@+Sz$Vc;V+Qg(+E_g<@Wxye!^uW`5+~@O~LXPE@V< z)@IMjX#L*YCdHIh1rMb;NlKlCo7KE5$~X%J_kQxKE9cAiH`@|XYF;4Sk?{Igt@M6Ke zU10%QsR^MC=1IKe{kipuMXRoD4wl-*I?`XTdA(ZBVPQFf_1XRb@Dkw)O03PYE_W*Xd7Q4ucS=Z)QceJy%5v3>~zTqmBD%?&kZj3 zrEGGfZ0^e>U)$_>|C+mZPu{N9&DX9TA5718*x-MU!D?)r}#FXpcu#*$eDw+z z^dkRKL!au#J)w`3XVpCM|2B*%*1MnCb62J2$)V1Q7abDAY}!M{(aCAw&f-&(hN|9n zYz;`xSn#5I&6aq{`>fWNMSRo?_HGyQkyi8c=_oj9qPJ~cq>g`-jE`<>-?K-8+fVti zo^ZNv_jSPv*|o9&aC6%e8$C^U5{Hfj9s(E$K$Hv zbM{mLq5g*zT1B6Fd0q%epB&QYl7G&=LOMG!p)RoW?#ZD}gHzzzRpt-z*AFk%<6&DD zeLg|5Oa4r01h_H$mzog|VeD8z$ zVXH_x^+6%5>3_KWsTSw0l$YUr5ksakKlL*~?+Z@f^u1Katlk5?)1~Kj55aZXT?ZRH zrO#dfC411?=@vNCX|ZfgzvgrH*fTJOCoM%M8%A|yeL9(18Z@N^KJAg>W4_7fQaIYQ zzZ=!Cs(f_m3f~c@1?n!rqYFL1oW=9|N^j;JjdADMdY@yTl=aLnZ+ogTn>;ZGZtm^W?K|uIh0tErRo?7Seb3>2ru$%qeRcEKtM=8O+upYsB;*?yvAGdociMC z;AgK>*Y^I&w*EKLW5i-gX{O@)MeLE;1~r58jX;wI?? zos_utR%U@h<{ODq_eLF?nl@Sp&XUWWUdGUpWP8YM4S&`Olfg165z?AcW6ksf7j#`; zW${>_cCE4uI1;f;&CoICo+Qb<-+3h}#xJa7ID4hnw$M`R6`tO@;emGH**A3Rj;Ahn z+Og2{gvXKsgJoQt>ZLI^t@vKuTq)kMotG0J)9K*fP>&ky<_SHRc^k#-80LZ5 zyQCcD8n?90ZD#0AZkd9|3@(cq^CIS;N=5xD&rGXZxp>W0B|_*K3r0^xLTDiJ!Tx+^ z7k{~olwj>8qwu+POH)Iv`}!Bk-V>Bqb6sh-o9T(xBQj}R26Ab{>CdHRh2}@O5f2^n zd$XeXlMi>%RneKD0*hrnClxA|9G_M<2RwJNOuUG->cfpoKPfb>y@6{2|IEQU49vQC*Y4&Qu* zzF^2?t|w-0!1FZCZBxtjzss8;hpd&r@3~x}SNGA(M(s(|VTK>WAmn2tGsclL+&}Yhs<<4 zk@^gt5FUeC^?bHV_?&GEz(-gNs(8=b`!gGgI$b+w8KH>J>u;^)47Ir~650ed8_X7- z9`0doG5yEazpS3Qnc1OaM%P3AELo|?Om)ZN-4E_NF*}dT$H&)q@LT2ecWL+SAL|^J zt{TbR({<6Qx_ac>V4PF+?K$dy4ylh9QBv! zJFI9bh`M<9;zbETi(&uU{;zaG%h7o}bHk#}M(WrEg+1ja|A~CM(eE*7kC7fE(iI;-5g{mqFL>1&d8l&)^Ijo5nSq(S{qxT{p` zp5RYP!&{r9w%k9}Z^WxkI(_oQk+p@{mO2H(ZaQlCOCIuPZu^V_3w{B$gLy60(N7 zk1ncrG z%1(2+xtFtU!)lqTW7F%57Uc75`R$9DUUx8Jb&p%D>i!wrf)WJN&{nIN7-FDrS=$XVxyggU-k}JzwGGgb=(V3&(1TDj!v&rc+WD!Lxd&t zPNcoR>$Zg`Ts})E>lwpoF3VW1UDfide6>o(aS=DlHGn0(Urmzr{l}%OTHLXGw=Q1S z_nBYE)PG%ODDAd%z|xWj^+c!GSn1x6vj=5RZ4F6%Pj&qE4SefqA1ustT5NTEiD#R8 zs#DwCnzouZ5(#_q8WMXVJG+?Hc0^W17QQo9Eg>cK9O`MF-RyX2_COeJy;gX7pHtVf zR1=?}-7Od0FVu%_xmu9qr7v+ZBln10S?$N1SM|NuNAEn9j7oWwu&4R+<>YNIOZp<0 zYQ9;^TwJkMUHxToG5^gs3!5DC_|ti|Ug^G3_kPzAV#|l(x>qfi-;3cjq=s-;k$&EFq^OhcqYPDreM2tPzfI#cGgK3{bi!Gz zZ25Ay+sWx=L(AjM`x{t2*v{T<-F1mKRVazeW%`#>4^GBe4+(0|&U?q|iAo$YpN*50?q1+FnYoYIOFcwWgKKVvHsC*z?w&YiIn#k~iq*J|oxL&t%&9 zqnv<{$aN z)_NmHu8Cz8s<;|=y-qIoSnrO<&78BAvz+(f|Mt~TOOVy7m{ZYZWy9O#rUCcS6VE#_ zn>WqDZFdp8cm8SB?G*mR+wJ^|J+OhT0axbWAL;}q*4oPNsc9D7zxdXny|dT8e|F>0 z+98*@&m>Oo{dUMCe;&*I@OhoD-ppI-6R>BYPkkkhwc_~RhzkpRbS`LUl`KiG(cQZ) zz$*WShO5Y8yT?vVWnR|^gdLx|ZgB0>opYL{HbRdnW|!_tpO*o7%R7zp)=ld^UX-Rb z1FKNKZUL)Fiqe8JD~>MWZ1vOL5iHDMIHyix2Jv0b7NOP#hub|ODctaL^)Q{* zAfCK3MvIA6JV|1avsLHphVUaZVqVT=6)!cz)ns?pN=DW@9|~Caajm_;(noSaY0C;$ z>k?*hEpPJISK3kI9QkOv>S}%Y8A}%(zQi3Pt2)DbjkC^1%>?f0c=5G~GOu53edckl zQ%?PDN|_km?QW5dyZ_o-MjzCqYg)MvKl-?nLB=diY)%39hPkg)%&_?0%KhD^UpzA3 zFjq*gvHbe=<0b3&e9Ttcuv)h?nK{fY&WppaFPV9#==Dp?-|S<({K~9iB~BTIU3l2J zB}O9P$@*x#%CzKt=DWUqym9tOD#yC6O3igeLyxq}7Z0%W@%l)fip%;%b%slV|SZateD{) zws1j@mXVrlbqbb6MCjxJWtRAJ4w3g-rFOJ6SXYmZbd;8^itFKU(JGS9+bCO|EZFeQ zTE)fK`zhFAx0r9<%Xm6h?@H1|^vTQj5>B?7_a0Z<9WTO>cV{3-w&0!h9G3zq^HA5X zSHX_Yl7lffN0%mhd2GlL|Ot(IXTictO2JaPe^NdZkU(s;izi zlEjs~3Lh%H*~_LDUgax#RxpRpV3ksb(h}&jA~?M%yvkKH{FYQe*u`F4DIG=v= z>=B9KZeQQgfzGD8A#r?s{R8`aS_1En^mkvuo$(;KtTuEexy+iKxjDF@!g%zAr_TEz zC)>TAn(gR;rSbk+yGV7j&iIV|ks3^VX_M74%(f^ep}Rr;t)X7)$c~(VC*Lmd;WSwW z*pJPcF`~BmeyNqirQ7!}IR!-Td%MThk!3(FA18dTszuw_&Ty3PBYOHAhG{_;4vcGc zsPaPSw>reJE+s}3Po(Vt`0M6hvwta%zHGB5{vM*nG z429nW>`J?RHmJ62mDID5M91}?oo|{2KU*SEy^n)67Bg#Q=7!Z@JMqkGtGMQ#E;Er- z=rTH#Qdt^*;>)f0$PPR1`g`of`$EiQJ=$*w9vb9f^=-diPilBkA6&MSP&)6(V+Vy; z*9RB&_1$>a$#n0u3=hL94NsMIgmuoVc6?(p58K1~Fk!Xu(T$0-mI~s8Sy`3%wr}5U zz@bkPKD>R8tWjPbEB8AG!tzr0(2#APDh_9NVQ0w}G#$*-7pXoR6MSzTX?|J3`RRHp z3RMh?IKzm3Gi)EaCT_eQ+M~HnBf~FZKku=CjTb}Mt+pte#y8!(!Ehbbxner&yhVN- z{&_EKWG#;0LZ!u@n#N=wyGX$p=gr}H^%knD0(`-xV5Lw{!6e`^!Woojw$*=^py;N$ zt2UTC%f!MhA1*$*q1VKzCn#z<{{V~pXO5X!GD~WhR%$F>B^t9p$@F~kU2tEQ0aTh5 zMswY3rkUPHR)|)b%$YuWV_n1(Z3Sa}m5mnarZPgY4;F--sFB%mWZlXh5utk;3TnLp z%UxceGx7CYgc}Sm&HSIJv9hc7TW%Dq@2h#-vU$jRs6TW6<-#xhy-lUE>ED_g-v)b|ea`3{eKjbx6uNfq|=?Rwc#e4p(K&+R?eUCvd>zBD7SRX=z( zPqKN)q_di>z5Ag@R{Gn>zEgL2wspwVn>Hx7c|J}2kU%)g{-QX+${}5)&1leVzkS22 zp3zqlw$>R(l+Eo-=Er$%ALQR<@&mSogTy-Dnmj3CrMMqn$W)3yK5yR<>XE`MCSjwPxm$-S=-jcah&6YiyFxmwO=w1T@u? zbcP?aB^9q}(|p-|*(ZK&VMCKbRh3d<@xfS+H4a+~wQNop#HK9RM2zi`JbS4@sqk_V zb8L#Xs<8UDiWvA0{LSb6N!>lC*(LRRAKQDTz4_egxuz|Dt$G7G#`9y7q`+rR^>^r- z4MOQccN=U&q6dAk7_GOL}Bev3tj}H@0lEcKJOH-rbi`!FcX9 ziy)KStRuc5Cv@?m6{Ss&Ro*PSTcM=0VtC-ph0H7Yn2J;HJYKplRMoz6R@HW2u>BhM zHr?V&yP~X0vr4SC)jH-^UTM49lEr(q5Z~^QmlaGHSQ3|?>V7u=>NVDvEmd=D;#&+1 zQ?QQ=Qr4f}p}P!I5z~_O;wGL~Sa+FbuhEszyylcGYqng|d2zDY;>osU%gsOBh<T7d~%jcatuEaLIOMd=JpEGm&9+o?);a2>8I$G}p3MwPldRfz zi`TBato5!Qf5z5i&ry-95sE_hQdpG3nsc)*sP283w7`XUMUB62xky52;I();UWuI0 zoUK|c<%3JsSfF=r&78kRnU!R(ofLXun^bz}g_TiwC8POD!gakS+df3wB`#TUPBU-) znIr3BQVKr3yJn@c!+ndzHrCJ#?TpYX+glc%dUC7R;8hCq`_*k$SHnCbPH)RIu0x;I z>ygWli%nP5KbIjGl@rRPS8{UQvGc7Z13GI8w=^mblq)~lsBXBgC+G48gUs|L?ynt$ z<O*)EYVEECuVdFKDQmxU%Iqau$-Vy1kNKLbGkpi_k{i~%^zN%EE>zv!5I8zi z+a2iS+dbGJ~Z2!UvF0j_id1Je0pDd zWy6aB^qRr&5EVdsdvj+0iqtvUWtf zTT;5*x8LH-UW-a8(pL{(kF+??ppnnd4bPZms#jG68OA!;;p&ppn0ZqTd52$JXgEW1 za2UwG>S!jVD zTE)QXIO>|)y>Hju+midaIHtfSotPA3AD}OZYUp>E-ftq{!Etpv=8Cgq!Pp6O#Yq{4a0X{zFXRA2IXzptK&3FjnzEo z>*bAp<1SOWZ_FLPp=$l+r>c-R74WSEFU5JgRObCI-}7^C1xMB%+V*<7({kuvhkIHp z`^i+hI_6J|U-p0dDBj8VEqLGNSb>pVMrYq6-swTlT$wwWKT-ZkeER-x?w3Oz^4a`V z98QOIbA`GVd^zgTDgAJise?0HT{hc~y>r9E?ty|n+b=P!EuPc(hL}CrI(a^lT+Zp- z3i5r&`H}R%RVDZSy&#=q9-X`&H#~4+`t;D%uVGg1!3O7#U<02Fg%}NX1nZyl7aCekGmh>GVUHSx@p$oC_a6OTKFNxS-hr#v%{E^xdChif+0}UOntp{5i+dlJh?nW|WVtpL+(`W<$kx1nglF)$`Tbpu zuj4nff0T)0Gg|+ZFHmaPfLp6P+u8MQ&1E5#`fIi8(!bja!}l(ouP`M z3dQCeZ`bjl?Lk1nvh{szJdGRT(H%?sl1iNvef-M!zM3?=a~kdHC^hRdKcB1c{D_cX z;>pz{OnvT2PUSGY=-jOql zXNBO2Pz|}QvyZG0j0!cCi=LglGUKVgHs@9~MG5|1{~pe5ih2TO5&rIV2cj+uw62zT zs%C9{y|$G};>5D$tYHCpau)n)9QudXDJ+5yw^*!5o3DQ)MPb|WwP6u?(BZuD!}bb< z%2B zvoHCy@d7W+#*Oh@0l#UdX=4Icgt4}l=HK0^_q^0|?#;o0u8-=2-p5S@?vD;N_ICWcbUFned^pR_QqYq4snOcl}r3au0?ycdrh zsvLN_oh1^O0ZgGs5hu~^z+K!X5xi{koa`;tru{9B^Enm>xu$il$MNVLFy+=*-8dvt z@SY&3XUHjTdyhZqXv*gW#`)Y>+k%??=Eoz%ziLP(pO$y6NijR%`uuvCxVzqY$8zVj zF;e>&EuYNNjB!=qF2FBe*1%iLz}|Xf`_&~^zH}DYW?wxwqblRZQm4VPuhV6O{;n;!Io{rrJFEkp)7WxEb7dmbHzL5b@rd$k79`CoW{+{d3m-er@7%v zKjXJquh%insGFX)G?X=u&FHdUYo6{j(ww{*b*E%RP|T-Totm{#x~xmUfqIbEjJgtr z;ptxe?X${Qm+(*j);wRGYuwLvI*tMot-U?m2P^eKnACnv9LBsq@vH zY%^q94&^x~8!c}v5{#BN*Sq4sbNNv#M!$5m!(Xp2V$odQWu=vJsJCwV>{nMk=eE?` z^qk96mBtc%tLXES<$4O;=gU52;TWH_mM|@OA7q7de)Yj#Z?@rvdor^Ot9aOg)1w)W znO&K&i1}H@XBoQ;Yu9sSyQ^cx#ot6T?l3I)+}XO(k&St?jjPP8Id6HmtGyaH%wD69 zthnAhyyU#ht!Tz4BAy%VZW~9-**|NREGgRcZrQ@~#;DT=*q>!Fwz4X;uvz)4L30^j$4!lzUG|k})@1 zNb+XjiAM!3XUy@zr4Q$+H4dg1btiTzcC;jRRz^Qlt-0e&G~Q{=eSh)O0@2;LptEMJ zR@@Sg^*RSd_YO*}&rek@^j{gX>BO7H&rMJ6iW^=g8eX1t%+5Ot&+^~@al5wyw!c{%dIXkUEw>n&vlfq8MwR)zY@7U zz3%b~=#9ZV79=5H$?L8wi_2butmG=(3*L5CbA)h2=q8q-}SKfbIgzuv@lMQyJL@Ea_ zkmZn14JS4RIc?fdiZ5cinvOv{+-3;dn`pc zGjA^Tvah#n{Gy}QzhslWnrJHpv# zrA%j6m57~PRl0q>`qdV{)>|#_LkdG>z@o5w2(7VNkYklT_Zc z>E^96mX#vq^A`uEr`PrQ!`NN2+M9woj@P$cb$AN$f~POZ(irKN=PiY4|dse(1^&x{tS|==n9v z;;u;Sy~wR4xrUrhs@eE2YQlE5SCi8dOQH>IY!i|r61V+jCm}I1+Q8N}Ir+z(owo7G z0f~#E4Sv|UllVD0+RpY`@{c<oMa*ML`;PdGDD`DJo_QJP)(t(4^BiG=8iowmiJqkNsv5KCN~!TfR6hiVe% z-%=m(Nk&*MZo@blVdmUD>cnA~A-HrF*8S!DTY;;+_Q&48Sn0-ET@*jd_u}E@LP?7s z>$W(|=_4@T-^5y5YJc}$JHcyz@u7K472fmD`J$)W5n@aUhO*bAE$5rsS2Ml-EXh=E z6^_|$c=qJ3is+air__&iJPym$)a)E%Vs3&w!fT(;oG3P&qo!t`&0=wE-F3s=F7-Bd z^3wOd6fEU+;1bGho1bm{K7o7dSN_4TyMtOKD!xoFR}=c+cHyGqtB!ic@Ik99)0p#b##nW`p;~sv-sLbTIi>LJcFFQb&mwp# zzP#ScZ@nepL5=M4Yo9mfDn2626F0%EZ)o%X7-j8u<79RcIM==$ic-0Nx1C?hs(}~GG3LNmb))MO<&kC z)X%uxn)&dajpkocImB1W6JnxN6N3t6<~+F`eO2GP;O2^FOo7D;@*bZP91c7_#?^Q1 z`fc25;WdkI>2-43?-w|}evx>1p#9-zyW7$p-0+;Y50!C(Co~}M`ToK5#{wBMf^R;b z_TIW-*(vsOUcTpIa)M`~o!Jh1dV705+dQP;RBa;Vd_AWqB+BW&&;1zT$?^6$AI3&*UX|MUvfn z&3YbJt-mU&bT;j>lbG9^_!D0Rk}ch(f=c$@RjY945xE&t!D-SJXt_;`xsBa&*w$Oo zHYa1mp>};rg2_-g+UHP8^SM%a{pyEr_M9vADM~RJdZUE)+<4{XWvS|wWaNVABTYaUs6|0X3d5>gx57~9S7qckNQZ*vv+YSt& zYmcqGtIB`ose?=TTc;D+Q4Ito_dC#zzN-A?mo48yo4eLaUChc3X206LUg}m>%eSKD zYqdsK?gsBk76Ch#kF|J2HGf)Pm5_BixDWkyc%CW4O+y#{ag~s2>JI%%NE~a!Frqjy z+74@wp0eYLjU3rqK0N5Z5+~MmUl z*q=H5j)3t9Uz_gCeMdvza0UAv2F=f1VYff(&x?=d4BQ;jY88LNROFc)Ph{`f%xO(r zju$q?mG9;?-|3h&ZSkv`UGoE%oFLh!A3j5B;3?X4JfFw5HTRC`w{Q}dipipp3i8EAlTIpEBb&d7>TILsz(A$Y+&rduI zUNTL~d!VOFU_psV)j8Y4iWN~&nbqgy%huM$8CMybRLjb0pk>uGPND?zltbrRtWXpw zs#ti*>A<$x222qGjVI2f-IbcP=59;OH~3G=-P&C156f0bwX}ht3^oo{bc_xShNMQl_q?<3rlj=QYkMxlID~d+ z77+6KPN_$~tF`&^rE}L!7vrjq=!A+*&+RoFE?7m{E>%Aj;VtFxFeRnC%g`#h*BGb# z|JwTw_&BO-ZxJ8?gQ=ke{KCeDAcLiyUKCqImSn&nY|Fw190z8n$O1K_l`R_*N8y)$#?o_oqY_uNyi z`(l-}-v0MIc8d4zC$}y<)_d&0rGGoeJ8zHWtrzWa-Olg*@`{)3Q&am-`|6ZqKI`9Y z&hFbjv*MfXi7zfYRljEL2N!L3^gbIdeg1D>ZvN>)<)C{XIrw#Tx9k3S%3V7@v*d&m z?%L|sW6zj(;69IRv-dj(FaPZ!#x-9*I{340{TEwa_owaNopH^br>6FKWabM$xGrTlaWef|v_@4bzF*E4^3{GaV#&42p&<6Ae~ZKuaKU2*-VUrd-h<*sM;o%;4OH_y~( zcIYwZ0^18_LaK5MOM8SRpuS$SF8oJVe&|NVm=`_4v_ z?wqjMGrxc5((3Qdzx(1X7p~DPt~>X#Cs#c^|N1G{9=zR(RU7ZHVDmHXKlZ6r8#kQt z)b#3k5AJQ9cHnm}+4l7NpW9JeZ;OYI-K_oXV^7?2t*!Ls{a4?8%fT%d{&C_n$85G> z+wXqwk0RszdI- za^6O}&27GD<99CJC$;&~-G21w%-2r2wRT?9Cf8j4&dTQF8fuO??DSh7PM!MS)eleV z*j3o&xL+?jBPF(8eZ?k|I=-s@(WLcupK{CtugqV6lV8nk-sQM!H+wK8-hBJ!zk0a( z=YO7Y-lX%kxonO4zb^dsw*PbXoVC99{IuIA+poKRx^26A!UOBxvaIIVjrLd9I&!OBaDe*q)DtJPUWLKUnReQiKeN{v z|I}?SREx)*rhLD@`NW5->u%a*lS}@3?M1I0diU-xTr+?9q%Xhta8=KF4^Dire(woy zK7RL)Z+W(U+6K#)-1qf?eZ4mtn_qSG2A{2Z?@v!Z^up^89QI)I+{JG%dG3nk_NPB+ zoUN~Q#xWbM{LQL=ZFK#OUw%Act3O_G(&9zO_5Sstj)}{io&Wgc;ZJ>UpZZ1h2kvqC zO|w)*8vlzsFL?a>@6Xxcx+xcbsT{P`Q|vN*wx9VAbAm>$6IzV7&fR_P1v@Cx-+Q(` zcGI)YzPI|;n{Qlq`!`qJwC-c4kGr|WxV`PfPObMh<5~~7#kwZ*&C^HD-AvwWziTp` zJKR6-kv~dDNZY^gFYi~UkNfJJ@jq_6|MKrFy6VuDwV!KUd)D`@cE_R$`{Gv{9xZ(G-1b}F^4vxr{r2v!U%LIh1*y*QuWj}Dj_!Yj)d3D3vF7tZQTiXZ8uRi|Iiw->JtS6p) z;|}e+A02h??ORN~XR*`MdfSEnknZ?o>V#>3{_DD3vvyi`%aZv%eOxH(E8@!uRd9|&!ca>w(r*m-+lKF4&UmK>pwi|vp=j{wQBKmH|%un z&KJCS!<&cv?2YTM-|4y!dw%)Njla9+z)A!%{>T@c9$J*MIzl_xY{A{N-JD zZ+-T|H_qyOcj>BE-uUVc`*-JU_|N-JIPb7W=j^dd*Ryl>SciUX`HyA4oPSdGkPkcO zy}bO`wPs%6{&Mn3KmG8OKcBJDx}R;4x^(hM&)vD=z2yskxcGZ#&oDQ>W7^K<#<$V0 zzkUAo`4bQOaK&qX+5Uldr~hlm`>Wo0?#?aqirRn2Gut$BG25b~N`*x2!dXAlH~MDB z)4zKD-t6CRYVX`_c&%#=zQdiL))Ib@1wKC8)yC_v+v}lrB`M@ zp775J&mQ&BVgR;eev{0b6&jXr8W0_eZj9T*>a#~yVPAh z$N%Q!XOF$`q$$%j+p6=6E1&!CMF(B?-P_mPYT~l~2{RAhY0buyZ}!e>xahbw54~{C z#n&}lay0(6&RgsFWA|C3;gWd^R@5##b@O$O_{Z7f|MAiz7wYf+_hG$jUwEjNn$z^t z%mEu;`N}?hcV7CtaqItjz3&{e{N=qSTzJvsbziAD>4}#ww5C0@)_CoUwZ>ZmM@(izFux5X{L-F}hNf5MuX9}SFayy?t?W@ok=IAYbqSO4OvJEvd!mmf~v^^Mmat7?0( zW82SeS*$&_PTPwOyVqWH=CNDu^6KGpp8Ni<>W==wE?XaCA2_+=hK`F)zU_zGFIsf= zp%*^z%C*NmpZQr^O+(|!*ELM~VB6lqXY6tH=@-t)_8JYBH0`HqxWZy(KC zvHbIu?|%N$m)mUfhb^wSr|IPNH$CRvPY=57&DVbPqaWUN={D-Nr#||Z2T#~?lVfdr z!K@XpzJA7yFMhXE*53N$G~<__cI~iW&yJbz9JIqPUcanGy6^6{-+o(Dm(J_j@V*H( zC*Ec4_J-K<+`fFTpXUD-IQG4o=dW=))xVx5&Aa5OEgP=Co_WX2IBU;cf4J<#W7pj;;UlfnQww z$K$-SZF&8!=YQSu!POJ~vd;S3Ts-0SwWsem|08>&2Tz>-@=EE7PgZ^0aQZQiPWqs8 za{pRKUNULZZMMC6x0&ZpI`OFQYd&inn(ycG}sjQ6 ztp9=Z$;RtwJN)dRy^m`=R^9ZApC347THDI^zCE+^f!9Aj}`;FWD=p=bk%~fqPHxMsvo!NW#eQMj&Z*G3%yFDB3y7ce^zd7fS z&o4gVx2zr}Vt&0cl! z{~Y$G=HIW`y!_;QuQ>R4^__tqd{OIO&s{H7ZR4qaox`7f-TSvBq-8$4dscF!6+3~ca&rCV3szSY%7Uj4$U2RyOy zX4^k~(pi6g>u=&~UwmA9?Z@l(P2KO=KZ{kH9eS{H=o(kn?a=+uYe)X%?O*<7Wy{ki z(SNVcR@=t!*}UhRJ=>ZdZF=P2?Fa9CWUYtKeDlsnF1`OTZLo2#>HdFz zK5@xhYh7#Iw;JCX|JL}8zqj%C-Wrd$ZT80O#y#gy(_7>BeE;M7$KA0G{yTcfo>PDO z;7$+jv_spYyZmYV{EMVxHvJ*{@7bHB(+)hZm;E<*3D78rBszZGZQ z_w9N@)t&!!ft8mUBW~-BJp+{1(@%LPszDk>mdFe_d?^9+Y^&YvkK}P-i82FP4$dPL zRTwJjxmU~X{(~)U)^e<@HI%Yt>P~~bmVJPmO=aBnj_zp_Kf3F_iKz}}+Qj*4i_p^B z=q~EmWm%s)ciA3o_Ob(P)0wza{kW-vb%R~KUFa<}*wxwHUpF{yqDAHW>hPJG(-Twd zmh1u3CbBwzsl8fery6_u+>}y_Jl-|7faHxTs?F$_eU4Yx+B740A-+wUxG0!M6T`WYfn=_g|r~0C8-8?)buay z&RT;t-TjmNPQre|%s3rA-6`tV%Jd9mr%jwlFUtJ{kahLuUew)R%b={ad%DttR&N^R zFVeZ5@!(XwI`HZHZ1>j#7HXzzCWQq6Ob)nAHq6+DpWs|7U_y`{l;Fc<;2@J=Q$H{w#xdg9 zbsnWp%GO)Gy~vkjWr6f`uj5Tk4_%5ti^l!|zcR^CYdFy9R(m+`9GNf(Iy>r-K&jKp zbhO4OJBU5%I<4;ZX%h!)9M`i3 zI(ZWHnM^u>qA zrf9BvV7zr`(Dieh>*m)rHni5Y%pPeZ@h;d%`1jE$P%E_4jlYeJAr6X8NV zMG|TZR~Ks(*)eM}az?9hkT}|Q9Z9!MCG0oyY^mo7NWkhFEQLve7|cr%gLMry$~5(N zWI8%gRhKF-4cHI^uJe;r)@pBeov9=tlea}?gk2@R_|uVxqmZoNb-0}%FfS(qhqsX0@Yk6!Hl(L z=d4+|a+=vDpu5mMzPhQ7>=U9W8iE0P5t$~o7liGDyYOfM%LC;w?(3QqYJb(C z_7}7_OOp(3l7V;Rxg*?@REOK<$!S<0a>EiuY`j!dZqb>A!XH++F)2JQWTvOuqSXcW zy_3^zv{kH*@AD$n1qS8#b0IRcJ}HX=Kz(wCTv?ooG{KDn=5&Po-?v$u`*8_%5pFuSb;?E-MJ9nRfiRSKOg)9=! z8dNJH-ewB?J4|@2aQ7)xU?=e`D?gQJGpYJStPSMN!3#o2(h%5y757R!Ya#=BqCYTk za(p5R8YSmIM4hZ8j!>_N!x1pf!G^j=$S$9FucT2i3i=7@UKAyR>iWdnWPz$XCE6r@ z4rK5dcORwoPduv#RAwXIpCVC#w?vylHH{K&8kIOnw3$>!E8eDxloc@1CUf*6s_-7+ z?gIfP+fe4HX}YAyWCL zL>rY}NVaKt+Dt085`Wf&Am!R*su-2HPesLnWEow#YJkL^MHwbehDm}#^{W#1 zu{w8&Hj}Dz#oNG0NnD~t6cw#X+{a2GCfal=_7rb}=;ZoCuswgDLKU$R&uXYIkZd!k zC|~?O8Jy0w$y5#}aUY16YtyM_SK>aCTT@6JB6n?H0R;MQ3pJH(QE8)nB8y^-~ zzKy31356xOF{2PflCC6_2IAXPZe5j-xS%^vQy^_MM3$mnf^9Qw#lf|+u zaXN@BD^x=?J{DQy_)V5gZrzf>TS@*!Ef{`I6;}5&{thf3Ng4tdak`YO${bH)`K20P z@%~VUm771PQr!IIS<7UsW&E>LIw&vOnFR;$m?)41uQ& z0}2dxpTgtZ(0P0q{Q4$i>bdzdWuC@?at^LqT=YB+eDlM3tcUJS!3^rE+aDr%x)9#=k={INDHTUeCcQLuF87 z_*FpA9BeWOfxD0DY$u+@pt<{?HYI6SQFuB~6cg2!68!-kTz{&}$sq;mE{8YOM5Urc ze;TiYpz0LW&7+^3?yaCmG1s4FP|?o#eW(}i>i^8CGo6|jTzUbQFYw-J9J*ZhnmRI z8cLD#^I`~`j)Vf`+#VaX$~is)$8dWW)ldZvmj*BYU}}}c@T0#MOUuK zgNi(;$b*VJ2xp)o4=VDYA`e1tsOSe3c~FrD6?ssR2jL7<}}}c~FrDAvaX?gNi(;$b*VJ zsK|qG1}gHPA`dF^AmoOMeo&DI6?ssR2Nih`&Ok*TROCTL9)#Rb(GM!}pdt?{@}MFQ z!WpQ@gNi(;$b*m@D*8c19#rH(MIKb-K{x{yc~FrD6?qVHLq$KR$b*VJsK|qgJP2o? zA`dF^pdt@KZm8%76?ssR2Niixkq6-nROG>braZ{@Ssk5j-}rG;r>5t2EOS}8>GZBm z3#Ovfs@xhZ2Bkr6)Mpr|>WU&+ieb!{ zK4XU1AWAa?seWNSii!7Ut-h>Z%vuyt$$Go(nrF=zKMwU%QT8X*li7bfUcI~9-JV^9 zm#15Mda^VK)Tv6f7C8`6QT68O(}hO0K}5Yq(`=NQ8c@ndn2vhDGc=)oVS3kYuO}r@ z(bvo>9PhU!u>g)ZP!!uI4ZE3HY-mBI1>g!P%-L<;Lj~jd?lW`XReeHFGsx{=Q zmHEo6M`ofG)x#GkvQmr6-=;bC5#P`~eOs7DiSaDGWqya#?q<^%oZFpENmP-I zV58BcsKZu&Fb&<^J=t{2ZZ!UeY6TU>(+#unr3wG`cKcHjm3+g^vpf%-pmbNN6}RjW zUJV-Pskw9yP>M?Ngf=P>7UC}$wOK1+oESTBixQNz271?OF{{Ik*~dqVH3$Mo$+5xD zNntjt|MhKEZ<0;5QY)>T5@R__lQ0V02<;cqvplML{fs%~3smasblk0s>_KqAGY4K$(GC z41iIjfpuTLM7f>#Ya^N)m@3$Bzb-i6tR{n?MfOUii;yf(9H(cy z3kw)1zP|EJ`ZQGp%`qshkYLO&RH#;J44(nPk~StNp;l&)aw`{txj1!NFYm%mg<4|( z1_T=d=o4&l07j9ThhWRPtSiaYAV8cCNq{&RdpGP3ONF=??T+;>2&+S0#DxGd#1#o( z0mR8so*Z+yl1qfIOb3tz%Crp41)JGYAxSwDRtZ_2jYdBpd zfHxmgp`0uVz5-|~>;6zrZtMeoV}RrYr7o6EP-=18##jqVJ*lz;cnbmaskAr%3m`70 zl#e-F!>A=bBq6^UwBD6WP{uUyF$XZYrw9-i0_Y>IH~thO;SxtB`C|PndnK)gc7jwzBPXjQom84m=-i#ei1?(#i)_eznB+9te0%De7pf zxML!`qDJq@yl}MLV;q_5QS2-i8 zllZ55IRM!qQIP|Bs0tAWTYQN`q*7j$#7wFr0op?Fe6$qA&kW|b>?0u9R&?44$ zd|OSRW1g!e1zKbt@IKTc`6@@wh(s(4?0a6glZsm)m55P8nWV!IIFh%xPh`dE07`i+ zfufLP;6N<-@cBZiIQXLM%N?00Rb{mVig2)t^JsuJgE@zUh=bFA5ptio>s_2vo|?swV98Sdo1H zQB|OQmR_38u>zmOGAit%I1H6!TEDD&vK&lKBGejMW+$oXQwp`x*mMA6H5r2VX z5b9bgfR`ZD)k1Qm0P4!RB z|GNx^D;x+C1ukX_h;1WEsK8Kot|*ZT7N~B1j4u?mFg#b3*v2_;un)Gs2_;5SD7+_x zUcx$oZ>tG=Y=cp9*duCdEKG~d%m^`BA{V43L0KcB_AxIpm*LfgJtlxk4Z9!Q#lo^h zKjtfncbQSeFnH%wyQpjmWibK`OQr$IRpr(3=1c@~nN>SJ ztjk9o0|miP>?~DfL0%=&fTS|(cq}9;s^bNy3nBF3Ee^sFQ74sIwPRslQNVmhuK-yg z>R3cxiMEVV++r}+el;QsUyDK*pw35D$aTd*SO9e~lfc*mmQ?Km)cK%$m{J0CgdR zKI)2tumI}HdSoo}frU{}0M4edfwJv$u z=o>CH3fT$FG#Uj;ll_O`jDi)Q%|}&; zI0}>~ycsS|Sc+v{=U5136v6;;A%s5aii5BK>dL#$aY3&E>U>Z_)KRQNsSYH>GTYZ! zU}zrHg%J9vD-OZ}s4K61jYWS(0rSreHCZD*gQqr~9cpj|D}w8yfJIDDi3DP$Hbtlr z6I2+mJ7j`lvB~+fT8JzPGzvSJ;G|Rzb{OFBZ8c#ZD-R83WKtt0s4#GM2zC~uJRI!F zT}8mM%8-|aMnN*ATO`YCgkd4QQQQWy)`!n$*W%!dQZ;9S5zB0X;X<$jw88W;@3~~&cjMd$I6axg-k9{uwwd5j0#Jw&#(~j;7E;yRfoAb*ow~r zk%w8+xnNh{+@#~gR0M~TeO`i7wJwv?86kt7@0JvWeojh^r@M_EE{#2VF%lG3F~dQkmbde_o~sr=mlOnoi<#7^HIXT_Q47N+4k$b`iNM@ohC> zkMU@!VP~ImXB_GA=pX%!SX# zIScoS!_6on{~0M4`4Hfo!5v_Hwcw8F;w6WhQF8z{+n_|xhFQ?cF!*K>1yQBlUvG5^ zgUdxC=`1d(M3G44-E6bqi70%&nv{c&t+_?Q7p3Vu+mdp6Ynn+mrN}B1ITdNMmBSlT z;R~WI4pw5-5#g&--u(!a^SD>M!rc6QSOOK0b|ZyWoxmWO%!tgvC$Lk~vIW^v?$QK& z0qWS^m~;lR2aEzjDSyJ<(94Q2Sk|ox3KJwC6jf3PnW@f%eT#yx{vFaxxQ`KFu~l@e zl_Duxp@J0v@Bs@*(+8{=#Kk!-4_Gn9XzamC`i1#!B`oiU9B`a5npo6i3TTe!r1IL5 zB`(rNL137QC|qp6WO%+)I5B-i5C^^%k}Og51-gx&Ufus4ORiqxl^$Meq_?t_9)&gN zb7ZBLSfEt?m0sdvaZGZ6BXUKF4l+3xhvF#kb5a5A&aUdKa#5JWVt@Op`m5$vbyT%i zb)zL)HNaZSxI6-$gaqqt83;+QWFf056 z3$KrHMCM`9n8rHhLWo5jMHMw4Wg%bz&PERyhp{pr`b#X#C<>SY3y%si6!pM@jQo%6 zJEiu_6YoELE^6=0#eeftBA7i_-^Z5(ftsThQUb)WSu0~jAJWqs7YO7*4Vx+|?Ib>+ z`jcO2Xb)5}Vp?l6h!eLipHIPQEMNot#g$f77wxMHB+)0;u zk#O5uL*iqrkd5C*5|c)VHm3qmqb^ics_Gtl zpvD&q-3wMs7QPs+nCxO;7$VZ-%2`DYMiNXHv1lZe>*Ck@-8!891uXuj6@z3Oc&d+< zE2b6M;c;)brF|vUFM2h~7cxKiR^*o@)gku2$ik9)AG-@?NL$=jQ2wp=iK?Ho043b~ zKzMlMKL@=Z*&3cKiD~G98^A z*`?K}B{yIL7}xnpDr>d3yUyfvOOKPAAq4RvY94j)WYx&cP+Lc~)2+rXMo7{7Qlg*; zDE}6cTu@{$kiacg-vLx44{Hy7be)uEb@sbplomH@Iabyp#%7_y=?1&6$L~>P$5O3W zq}r*JT#(y*E*ouIpX;(}eh4%n>ho)7G@_@@p7!W4xQwk5^l}B6fON{Kg?t^fn=EKj z_h~oKa#VJ%)S8Z1)y1HQTp9IJQRR}h%E()w8Kj33XbOzV_+03;pg7RVs+a;aT6v?( zw*q@<4lr2Iiv}!EX>xXrA>`#&J0E$aU&N_M6d8zzc!E3K5-E=zPPf=0WUzGWBF=e6 zs*p4c#uD(9)tUi}C4HrRJtPDT!h>)I&v4g#2HZ%e1nuvoPiTSfKP1fb!7yrMsXO7oxqN@ z#taN5x9|Zl0cbvPYH)fNMmkq54z#kGM*&(y)rt~l=(@owZemfW6^#)x5{#NS$3(h} zK%86x*FbVIe=vpZ<}_5wLmHgn4Q|EZue_c`Dwnu50LBN5NlgMw8a-S&D~!LsmG|HU zwHp&Fc!03LSvp`j(!RtI4wZ^SS-HLVRPIn;A@fU06KNx^=xj}wMm$!^3s}tlOO@mj z#WjoHo)xV4C}Ix$!CJgZHU=h zLQ`9)2o%KJT-yCceWt_2eGGH#Dl=Q@e}K8&n| za=HvdiW)n!iNYvBx+3E%l~`rDD9OWysi(t3m{$@5nX2)#xJ zv6BB2lc_){`%d0|>S%XQF|{DJ_bu(Js70*Xn2>}*poRACdAUub&%4uAVsvJB4d@>w2O_-lY2VY?ukA&5A3~W52rt3P6s<KrMn-<+6xfmV+#cO7f#4 z-c(FlR#25G44G=#31o&!0c+^#RT^);*YI%4yX(Y<=Y5-rztD}RjFt5sR<}L5K%B5Dz@oETa zz^kJJwJ2UKhuGy3tL1o=Vh%y7A+IWQx<0}&nC~l+RQzJ=YD~8+F|V>LW1)f%5yNaN zp~+KYS=NSA@VP8k0k6WNOhK$fg0_d}Rrb98wT`IbMY&6yFP>a`<&M zaqd!TUiFPW%o41zq)A}SAzls4YldDR^$PFFMY9hXtPP=UYb< zRAcXk z@`nsAWTy~@R~_?XnKQU3<#q7|+LMZ*k2&njBcA!BO90eSl5ig2#^f;HkPQRI@H|Ec zE@x2y9AehOv<%9>!JByiE4^xjE!zlyk;ICUq#qwj;gnFn#G_mrp%WCMp_}GF#7pSM^%=!IP|Gwpv#RY zT=kuKH5ua@{bqC-VsS+?NB5abHoOjRJjT zR$jPRmjHbfmz~o;1Bh22fn`=-xM-IEfgx}{0)0v?1l%Z4SY`!=4}4)s-DJp@Q2&&f zYxn4bC=voxE4Ko}1-}Fc^g;8{R~%?XqfaZh0>eeYD9Ca}Sz2T`zK{r25Yy^^C&R>O z_wErpc_Kcf#I`p-$60Wu6{a`K+1^+{%y330J|MxTV3te>jt2f3LP#&fr3u3$w>i|t z=9p)A6@Uvu2!IJe^J%yk&_+SQF*oS3-$C*52tN9ll`vGnWgp_zM_`#PPh3z!fWQzq zAA!XIHwqM%S&QSM6C?$huwgItvtS@8jsJ}$KQF;LGA51@BXD6d|A8!0<+%Vj7SAge z2iho5SY}O*Hz_rOp7D5Hz0$ON_oUt1(;()_fcz2rRQ2GfbXUIRwr}U~#~Wf&S2PNZa;q>fJH-z}0}c$Jj1leXqp-Y6jLzi+4!{Y4 z^Lfzc$U?x40)^#OV{{10I12s5C6Y?+2!0L)3E3fvICSE8Fp)0EDD!!m&SIUTLNuUG z23m;B0%abHJLxsbe2k{EknSjG0XRNrK4r4H#sxK(QBY=ituQ(ldmf-q@$K9ZhzoHa zN12I(3ZuLk$B{`j>4gvg6N2U=kdRpjv{9h1yef>&C9(Do>LsM^p#715wk`P(7lN`d z0?Vtr=v;Q{0GtpwSm>d<6bD?7`w1Q+>2!UpqH5cSk zODuZkI1X6O@{Q*Vv~eTY|=1I;q~0qJ5=Z}AbB1I|ZaalnlN zh2^!w=v+2#Ux*@`ENN%VJ+ELM=HgTsv)n2Smp?lI#|Mp}uSn2Ffxa@UFkIS>0DY7r zoQ~>!1QNun&wu4LzUVAhM^pn1fC)kK5m*dpqd;GoRT!47Bno4IK9mR?QelFu=&O&w zGOI8w`$`nJ0D&QJJ_3Do76Ptl6jD5wFcy)s!ye}9T;7-fi7cgk2y=lFoyCbz0u%tOrC<7FdEBcTaC725lY9T$8P*`RI3`+tO1ume; z5I7%+#Q--d6qZ?$;gT0gNYJI^3c>hE(nTNULP!kYEFAeu*c_81rQy@a>RckDfL58; zeW-L731~6YTIMB@%VZQ#YY3iCt)s$Y;UFKvW0_Y+K8=yTcVbzo0+{_GMun)gFcJy8 zF-Rsc{E{do<3s|0eBgW(76;rYL{7q;bjb(X^@Dp-9^45D`LXApw-Uqhphbc6 z5f}o;5Lg^=qd?&p<-0?h0hGm!bx@oFimEPU$ZqF`4E_Ec~w6c92gA1tS zJ(-2+U*z+`bgSFnGth^6Tu5t<+F$luH@hG`yJ-ehIAqD-_nO6Ok)@|k?-@izM869r z$i$$=AH9-prIL;)=H*&l5b%gV_ zSIh3k5+uqSVZQ@6F-8V7S;Y^!2Uu_XudK=wE z9lI>+bLTGGqs?A+fNeSxcd8#Zb+B%*tG5fq#!`b_o!$L)gVQEjRGh62pQ$-LF~x4l z9x!d9U$t$omf5Mso<27P!$pk^2O-36A#Or8C2>k>?m%~HmYq$(zJbDJfL*T>l{(p+ zSU)b6N=@x^yt>w=8Ns{oZQ8^|*=%oJI=y7clG-J5ZBJi&n(9`j1t~2_HMpaue`$Bt z8m#H=pX7HE_Jf*nc3(#?)vQZVzgDJaAUkd1M0!!~CjiRo&Aq6*zm@@5i-L9OL8~_n zqD$v`#)DJQSjP(0xm4+`o+{zhh+>Usvl^&1YIrQeCK6?7vdU`tR z3lzMIbQL_1=nG}%I=rR9crX|N|Eq17T2-!N#piP4iQJj&BPc0XR4>tcgMOx_X__O` z&TvXImS``84#&=6qj#XMlOf%)({88R<#uQLfe|r|5y!6cz{*y(-s;uS3_qu-a0f4Vvo8`tGj*L#K9WJ^{j!;?8N$lB^O5;bo^~>(D{c)1GlLZWKUmw zcx>+Gx(CKvhX!3ADfBqfNa9_vk?`-MQDmu*V*G7v3~^8}fT1zupSXA}#*xMr@0yJ* zHVXgQ5^w-WH^%}ofrJYne>qP6XsinhVn#?b);vV0Q>i^HmRVTv#O^LNr$a!twB(00 z6un(tabVdabxl3?011O#o9YJ!I-EK|aSfcSIyJH@$u){?xHX1o$Thm|A*HvYDYj=Y zA==UseKs;He!shR_h+qc+YS4bB}*4Q#jWvNS*uZWS*SrBKC?zpWZRY^Jgk zspknuz``3Wg-L=K%u5l2b+KZlq~9cpl};rInY=ABBkU@vNPjx=a2yN<^-}A@da1$V z{0*fB-f|Z8*h_|C2&#ITv9b+x&-|Xg1H8_jCH#^dbWsQ7V#OAxrsE9}pu-D`-M)Tk z4)s`ThVBjy zZYqlTP?@e`W+``1Wx8@xQOt+RbQLp8xqC*Mu5m*K7?^XWOissYU1~)tzfIG$d?{x2Xb!mnYg}3O7i!sZ^C3B?{RM??c{sJ?vEnxI|v+Cy~$9>mm~fxCYgH&a`Q%JUX_Ptz!WHhPuK$z5$EQ{L{WpG zE69{ObVZHAtRWkI4nT}MiFR0;C^L2V3i>Naf<$SC5^czE%(dy{8ke}wq@$2{n}{N% zT$@Zes1oH$M1t-ntK+Ia@=CFr1IgjBIYLts%cOP!Q7>YV3dK1NKZJ}NQq`J3$h?{ zG%pJpM+358P+s$}d-^NMqQLPa*np#DSyVZ`M-mkdk+Nt~qU!iNB-B3V+E8bkYty(T zMV1Vz7ZLAI7Puuv#*GmIqWg(;IXNQBJVDB`8RZTCSw)PZB50GN0-pq2h&fq7>E)qe zqR?9^haJVxI0(SCNqUr3nX04EPmV2Qa4m;1Rp*u>$S8`5k3XwHsB>)!oq8tjW7+P* zHsCZRg@mOUl(sXxM1N71M2xO*A}B962|8wS=yur6B9~Z|=ddRc33`T}GNM!j>sv|= z-){(%MmbF|LI=8OL;9hQ4O{z{uy+vlS;bmBfE z%6}5hqe3}}6@a1{W4D9wu|g-?AZxicC>Y5$2;m5#CCKM+vJ?@AW8Cd374C??Ueu$a z7QC55g(8}i_$s^|(mO{AP-`e;F}y^7B?TN7p;!sb8zL229M$UyZ>NzBU1GJ)!%HHm zE<@MM=xQsfbYz+XP!>3$t6-($fCeW;hD9%uAci?q!Xt%aOr(p9&Vc_c8adDvjbkK5 zF*q@TlT^MxRi@Z$`pGf6f^{b;5ENC9u@e=2&rMXE;aOGm+%*)`jF303VXX+*LD7_` z8pX&A=h?(Ea{c4L#aN(8dc*D7;ajDN;4Za0i02cu_X@ z`!HFGfN*Ra0qDG~_g1N!s z7iA`Y99Xoteno?$ZxvCjvGD?%A+A&~dSrf4ECu_Gp^GZkzQn+>wMa54cz{zD!M2=6 zhDDKE6;)Y_ihCb02zBlqiWt>j{reO-3Ruvl@)M=#lthkxa!d+Y%4w0RD)Gox!Oq;X z*sF4FW|Zjtv7iukWa5K1o|#lF4w4+55pD&WY&jWWTZO+bY%!~uyNaZ=i;y3VQD zs&4W?;;f7V+)(&Q!{(QJhhgyjnF2p)CRE$xM4BKIu1)8bLkLZd`ccoGLjoipw}NPb z#z{1k*Wn}rimr2#5;!HNa{9>;6UuoaPNhl zoSZ9c6}VMYlVwfcsmhSH=onOM-88m2d60XEGBQ?H*Y zLKADAK3!;38$?-DOtVpHYEZFro^EL33{9wqtKj%?zQq-!JK}&OU6n*Ny;rO2&CPaU z-Gp)}murYPw(iRYmSK>N04-{}?V4xJfT5UVB^Bba!i9k#t;l> zvl{%twikr$C#T^zxW8*>s|)%IO-?rqWEb`HRYyE`Ci^czV*!t~$?4D|r8;z)noMq* z&VcO}@i2K6ObT5NszaB9$;?S~QnNJ4&?Xr~ErC-)(v#2`m7BsoOo*Xi1rUQ};CcVY#JAh~t^G_dLC*@h4{VtqPLmx~cYmgVn zmYfv`GNNk81hmYy+TDJTHKZ=S&1F6sZGEoGXrEb0(abzL8?CI>+0&k$?e=xy2^8m} zM`EL*E`w1uHB_f576~nF9)7i_Ca0TPF~%7^-C6u$*Cbke(SQD+C5hMKIe_Mb> z7TJkp4O?b?3eB;>oK<095Y;+StdrE5*-dS!YRAnCv`_wD_F3&3mCtHd%oCMB8_s7n ze&^7U)>JqG``)ZY`>ZA&Nc0u)L7tm|L-GGtpVh9>`>fIma3z=k~b>zg~bNs<0z8rrY|g?tTv^XE;+^)Z?W0Y?X)FW?Ow$7iEEA zPvma(o73~sQmvG3>2I%YTh!5?qE1qatp1b}M3ATYI@%Xy`%^4)1Wxa=J*kdtZ7S8a z$nAG?7dsJFoU*!?_H?@`BnIj2bh91Z?Wt_o<&@Nt4&<%LE^<>Ij_*?b>1eBKId0z+ z>a*Wk?9%0qz7(Bix=u|;w?CN99^2~dTw03*x?o5P(lZ7+JLlqwh3SUw?w)M_0{__6 zO*bJ42By(J5J@-o^e#>B+SS|BmrXYhvOlxBJ3G4Z933;FAG~VU?!+y?L03n1F5=uB zoG5m?Y5y5u$_e|Q+iNZ9ZgT-Aj*{5{U$>PV=yMkYZ(f*go{=0=Fb;ocl!OO|tXA&) zzP^58dJn71t!`*-PWk7+EHleItyWCUh9BFmO>j<-aXQORuJfMD;<4U+rw?>=I&_f9 z$O|8+SD(s|{AZ@M*rJ3g2LOj5&B39d71L$`o$P2f-O5h+;NoCNG)Ow?g&RnVwKPSZ zjbfdOlRkq^`f%u*Zs_fey#%MyyLT*h8<*OhEhg)8hTok+ux zLCC-d&&0i|lo4E9l0-{@i`%e0z|~L?(2FEEHXI}ISCJg{7tsM0JxD#nor)r}TnZv^ z@{9!MuldR~$vxRLz6m6uc;Oc=Tcbrsit0 zY2crz1XncnYs%o*T)FR*-;+KMdm?&9LEkrR`C})aX5EA?< z0ywD~7iM=9ti_mPBfw}q%|$B)O%T&{+>TRbc&5UcS%%XZ-nE)Dfi8f)+;}kWq7|D* z_7~B^)jv}WJJurX2}RFvP=VRHkKhuimMuyqlg(* z$mp);;YrcNOajHK;aKo%#fgVxJ0eD)Xc;((!JEngv5V-}HZ9ro5X*toAn?AlG|wgc zSgrwo>x}7O5E4AVbw|go8XPTk3gK$(uqOfZ{i;q1kR=O#D{WQy4lEg9SgreoX(FA&UTK>MO2c;F-i z8Q^YsRfE>xhCtLMIwGz};CczvF5xUk0@os-LZd)R_{S^ozp^Ax@<8vBW=k%h2>AzG z2I_Mph!dYHR2lpO?!jH`Zj8Xoy@y6AdNdC5^QDns)MyO&S#&`03ULk_bwpN49z7|5 zCk)Yc!~P)Wg8tA7`owSaW{8=Dd|^*xj_8^N3d3(3ePD+1+m}0#g8&&*6~k3#b_~LUS~eW`-ylZI})GhQy#d@y)+_vc(zJBWm~R;(AJESaWrTWmV)RMNLkASD?${=reW!}D@zUtJL7n+jTOf+5Xk`k z1M5q!0iM8YKw|2U2bQFIphp99X?dnYYZub~c!FtWG+Xq*_oi)`kR|vhk-xDjdyZ@9 zvIqZk6*`~{YH%e>Qy>uFMG4WbIz~pc5Q^crkV96+u`{kF*m$EU$}ZSjw;Zq`rVcEG zcaR6Ki`X1EA6uSfWDJ`K8xqNs4Xh#(W>kV8qbL|XBiR|G-9t2`pc4Aj2@#6hM~x=XlEP=YwE~a23|3w>2O*` z=~lbd)IZ|d4yg-Rr*hI4DjN8Y$tA=u;9^emz%0?t&@E`~M|30oz{mxki$7MK;{5NaIOV$ZY@rE6%QQLrX) zvMYF^n=vggzG2`pNX#)HHqfmD(uM~+)=|g`H6sw2gQ;!w0d@r0LxanBmSE#euH<4l zLO>xH9l``+OLt8S!hlGVBpZ5#hjmND@+GSdgaEuQOcP6{lR=1+E<(aVF9Dw_P!u#U ziUuChG}ofANrZ)CT{SZlqM%w}B zFt#!lVk#t0@f6X9oK;2Dc0B_V098uxNS4?tL3Nw9)HB_XR7fI0%VZn}>x?Hr z1A>S$9SCVp#T=NH4(Y38P>2si4>=Ecji&&q3R$8e)D1|oEYJfSxjolXAbS;P3~;2+ zpliwTB*_6vH9aFkOcD(w^ecsQ2(&AhBFKO2s-R3@S0x~x8Kd{9Ce*bAUuyyGBH9-8 zR&X|cGo8c$vFR@U*;v&`|3~y%ZWs2SBAdVpfnMiBMB)kC6YOZfCQt=)dMZ>xgo&aB z>$Knjg(Rbfk!R5U{X0m?`4W$lX?ZnZU=6s-X{LAy);6>tR0_N+WsqC|3WaQeQ$*7RsKcxd?P(rqKpH4{5+yMxnBi zj*nlMN9Z_+Acbm&9UruFgoxuWE`ZEUx}MO0@tyQ%w!7qZ&~RvTgm>Gn?x8OO zTQ9^7%Z4p#8DK@iI2u1RYDKupa{|9Q7iC!+}j~_*`gaB8KfjD>Cs$j2x0! zBN-t=VnLy@ky^oq(vU%HDUgb-pl6wELxfocB(mZmQH_fsSQa)!wj{cyqk6zH=t9;r zf|}8g01~*My(8ox320Ao$oeDLE?%ZXYcokKWgu2Cw?G4CSwc1$NGQ*9M90w~{9%XD zO;-gtsz>rt0YQk8V?we*jmu!#R2^utNzXGN>)~u?N}7qez-l1D`Oc;U0D#*8NazM~ zAKD_`ta#YlNf}6Li{V+7ER5PPY|uN2MHjjk{>qM$Pm=;VMx>_yRGlHGNkI}pSEUFf zk#Y>+A1II0q&OSS|NmAjV(it?nk-FqMNhRdx&eXdK@K1(1gKKgu(>fM5VDRf6UYln ziEBd#0nuWA;F2j3vP6S12Rl8OVqnC9x&StX*@C2yZF{a}+X$EfKVo+UeF#(zJBa3D zc~>p$DKefzPpFoqyO0#v_JQfJC(Yo;#wu$nh64$Ty_tY53gUq?U>ztE609rOu0arB z_h;y~qa!5H5}_qv6A4Ynh5Ce070FN?2TWvw?;sEzQ^a-({3y7N?Yg)N@(o)n>_lA~ zu&dBfsQ8s)>$c!QG-MPD!+{O}T@Y6?5Tn>yI+!j=w@J1@AH;4FTU!m%45miR9Vz+{ z3@Y|>*f3*bi7{Fk#fCnHd4}|W5+Y&OOF{xt0YVPa4wI%T*!&^ahyt4jG(*T@NPI{a z1%f`~kOn405YvAUUy#}|R87YQ+%oBAFa$%PlrpXX?Ga`LYp>2WPO8< zS6ch&=H`qoETelzuG}&=1NCz+?S%hF_hV2AlbBNMDc$eRU$<6@VG zJ+5bq8O<^b2O-#lzNVfVp7 z6!tO>1wupFf%Obp7PKH{;)2w4U^>UtSlGZpt2J@vVPZcGO$QnZ>5&*18KMwfu40H8 z6L_>Sc!*|zr9&zU9)zobJ+FtPBQgxIP-b90g+A=Ta&Kb`44G_NP|p;Stfr2|h&He! ziLuvopvJ;Ti#!)t6FivY(Jd^6NZx>Pz<}*xh}dS5F&-=hV3XuEnvc7%Ed;+#N;5B8qy5LIvWA)5V1&a z0PPb!nXu)Myv1n;le>sy52Pyg;#dwx+GGCTKV<_f;b~%?vq~IT(zzeZ1krVZ?Sim9 zBFOVxLCO|9lUQ4VXDF=OW9N2sp6Bm0(FXe{rW?8;2oy3K%5a|d!JOjn3}K}OiAuCr z0yW|M&@mh=>ZD$Pom?#g#m+ ze&8Sb2$*&>)4@>|cpFwBbPIa1HSD1vi?Gw7jfexwDt3A}0fRb4Y7KHom=1W<0KRK<3FfGb9FgpzgqQj}2x9TO2y^ zQZmqQu+OagRA!(u1C<%5%s^!Z{A}Lnjcu3w`V%O{Af0oUS#g&5f|dH|xT5 z@}!tPLz^MP$1lv|qxyM#a72J~HJD8@4-7ep24((IDN*vhHYu-;|Ew4~jv}Q<)@^d_ z9>)#(0%WFyL_m%^xPbL1E=bg;s Date: Mon, 14 Nov 2011 15:32:52 -0500 Subject: [PATCH 11/15] No suppressWarnings in Yury's encoding patch --- src/canvas.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index bf3bad4c6..d80bc80b2 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -478,10 +478,10 @@ var CanvasGraphics = (function canvasGraphics() { geom.hScale = tr[0] - bl[0]; geom.vScale = tr[1] - bl[1]; } - var spaceGlyph = font.charsToGlyphs(' ', true); + var spaceGlyph = font.charsToGlyphs(' '); // Hack (sometimes space is not encoded) if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) - spaceGlyph = font.charsToGlyphs('i', true); + spaceGlyph = font.charsToGlyphs('i'); // Fallback if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) spaceGlyph = [ {width:0} ]; From a1853185b16a69ac7eb8d22b3b276d467236c0aa Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Mon, 28 Nov 2011 09:25:25 -0500 Subject: [PATCH 12/15] Comments --- src/canvas.js | 9 +++++++-- src/metrics.js | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 0107570d9..ab1422758 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -103,6 +103,7 @@ var CanvasGraphics = (function canvasGraphics() { this.ctx.transform(0, -1, -1, 0, cw, ch); break; } + // Scale so that canvas units are the same as PDF user space units this.ctx.scale(cw / mediaBox.width, ch / mediaBox.height); this.textDivs = []; this.textLayerQueue = []; @@ -491,14 +492,18 @@ var CanvasGraphics = (function canvasGraphics() { pushTextDivs: function canvasGraphicsPushTextDivs(text) { var div = document.createElement('div'); var fontSize = this.current.fontSize; - var fontHeight = text.geom.vScale * fontSize; + + // vScale and hScale already contain the scaling to pixel units + // as mozCurrentTransform reflects ctx.scale() changes + // (see beginDrawing()) + var fontHeight = fontSize * text.geom.vScale; + div.dataset.canvasWidth = text.canvasWidth * text.geom.hScale; div.style.fontSize = fontHeight + 'px'; div.style.fontFamily = this.current.font.loadedName || 'sans-serif'; div.style.left = text.geom.x + 'px'; div.style.top = (text.geom.y - fontHeight) + 'px'; div.innerHTML = text.str; - div.dataset.canvasWidth = text.canvasWidth * text.geom.hScale; div.dataset.textLength = text.length; this.textDivs.push(div); }, diff --git a/src/metrics.js b/src/metrics.js index c21b4aed1..e64961aa7 100644 --- a/src/metrics.js +++ b/src/metrics.js @@ -3,6 +3,9 @@ 'use strict'; +// The Metrics object contains glyph widths (in glyph space units). +// As per PDF spec, for most fonts (Type 3 being an exception) a glyph +// space unit corresponds to 1/1000th of text space unit. var Metrics = { 'Courier': 600, 'Courier-Bold': 600, From 6a747c4353887c0fab14aa95c46853ee44d42818 Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Tue, 29 Nov 2011 14:54:32 -0500 Subject: [PATCH 13/15] Created inactive window bugzilla bug --- web/viewer.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/viewer.css b/web/viewer.css index 1684900fa..3313ce3cb 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -247,11 +247,11 @@ canvas { line-height:1.3; } -::selection { background:rgba(0,0,255,0.3); } -::-moz-selection { background:rgba(0,0,255,0.3); } /* TODO: file FF bug to support ::-moz-selection:window-inactive so we can override the opaque grey background when the window is inactive; - see also http://css-tricks.com/9288-window-inactive-styling */ + see https://bugzilla.mozilla.org/show_bug.cgi?id=706209 */ +::selection { background:rgba(0,0,255,0.3); } +::-moz-selection { background:rgba(0,0,255,0.3); } #viewer { margin: 44px 0px 0px; From e2e2240a227f2a838a4fee9481587d668d57747d Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Tue, 29 Nov 2011 16:02:12 -0500 Subject: [PATCH 14/15] Lint lint lint --- src/canvas.js | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 99644eb07..16a870817 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -280,29 +280,28 @@ var CanvasGraphics = (function canvasGraphics() { var textLayer = this.textLayer; if (textLayer) { - var renderTextLayer = function canvasRenderTextLayer() { + var renderTextLayer = function canvasRenderTextLayer() { var textDivs = self.textDivs; for (var i = 0, length = textDivs.length; i < length; ++i) { - if (textDivs[i].dataset.textLength>1) { // avoid div by zero + if (textDivs[i].dataset.textLength > 1) { // avoid div by zero textLayer.appendChild(textDivs[i]); // Adjust div width (via letterSpacing) to match canvas text // Due to the .offsetWidth calls, this is slow textDivs[i].style.letterSpacing = - ((textDivs[i].dataset.canvasWidth - - textDivs[i].offsetWidth)/(textDivs[i].dataset.textLength-1)) - + 'px'; + ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth) / + (textDivs[i].dataset.textLength - 1)) + 'px'; } - } + } } var textLayerQueue = self.textLayerQueue; textLayerQueue.push(renderTextLayer); - + // Lazy textLayer rendering (to prevent UI hangs) // Only render queue if activity has stopped, where "no activity" == // "no beginDrawing() calls in the last N ms" - self.textLayerTimer = setTimeout(function renderTextLayerQueue(){ + self.textLayerTimer = setTimeout(function renderTextLayerQueue() { // Render most recent (==most relevant) layers first - for (var i=textLayerQueue.length-1; i>=0; i--) { + for (var i = textLayerQueue.length - 1; i >= 0; i--) { textLayerQueue.pop().call(); } }, 500); @@ -596,7 +595,7 @@ var CanvasGraphics = (function canvasGraphics() { spaceGlyph = font.charsToGlyphs('i'); // Fallback if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) - spaceGlyph = [ {width:0} ]; + spaceGlyph = [{width: 0}]; geom.spaceWidth = spaceGlyph[0].width; return geom; }, @@ -629,7 +628,7 @@ var CanvasGraphics = (function canvasGraphics() { var textHScale = current.textHScale; var glyphsLength = glyphs.length; var textLayer = this.textLayer; - var text = { str:'', length:0, canvasWidth:0, geom:{}}; + var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; var textSelection = textLayer && !skipTextSelection ? true : false; if (textSelection) { @@ -638,7 +637,7 @@ var CanvasGraphics = (function canvasGraphics() { text.geom = this.getTextGeometry(); ctx.restore(); } - + // Type3 fonts - each glyph is a "mini-PDF" if (font.coded) { ctx.save(); @@ -689,7 +688,7 @@ var CanvasGraphics = (function canvasGraphics() { var charWidth = glyph.width * fontSize * 0.001 + charSpacing; ctx.fillText(char, width, 0); width += charWidth; - + text.str += char === ' ' ? ' ' : char; text.length++; text.canvasWidth += charWidth; @@ -699,7 +698,7 @@ var CanvasGraphics = (function canvasGraphics() { ctx.restore(); } - if (textSelection) + if (textSelection) this.pushTextDivs(text); return text; @@ -712,7 +711,7 @@ var CanvasGraphics = (function canvasGraphics() { var arrLength = arr.length; var textLayer = this.textLayer; var font = current.font; - var text = {str:'', length:0, canvasWidth:0, geom:{}}; + var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; var textSelection = textLayer ? true : false; if (textSelection) { @@ -721,7 +720,7 @@ var CanvasGraphics = (function canvasGraphics() { text.geom = this.getTextGeometry(); ctx.restore(); } - + for (var i = 0; i < arrLength; ++i) { var e = arr[i]; if (isNum(e)) { @@ -731,11 +730,11 @@ var CanvasGraphics = (function canvasGraphics() { if (textSelection) { // Emulate precise spacing via HTML spaces text.canvasWidth += spacingLength; - if (e<0 && text.geom.spaceWidth>0) { // avoid div by zero + if (e < 0 && text.geom.spaceWidth > 0) { // avoid div by zero var numFakeSpaces = Math.round(-e / text.geom.spaceWidth); for (var j = 0; j < numFakeSpaces; ++j) text.str += ' '; - text.length += numFakeSpaces>0 ? 1 : 0; + text.length += numFakeSpaces > 0 ? 1 : 0; } } } else if (isString(e)) { @@ -754,8 +753,8 @@ var CanvasGraphics = (function canvasGraphics() { malformed('TJ array element ' + e + ' is not string or num'); } } - - if (textSelection) + + if (textSelection) this.pushTextDivs(text); }, nextLineShowText: function canvasGraphicsNextLineShowText(text) { From 705356fa41ef226844ab0150059655d59e9d41b4 Mon Sep 17 00:00:00 2001 From: Artur Adib Date: Thu, 1 Dec 2011 14:11:17 -0500 Subject: [PATCH 15/15] Addressing comments by @vingtetun --- src/canvas.js | 69 +++++++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 1e8febea8..b457eb4ff 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -275,37 +275,38 @@ var CanvasGraphics = (function canvasGraphics() { }, endDrawing: function canvasGraphicsEndDrawing() { - var self = this; this.ctx.restore(); var textLayer = this.textLayer; - if (textLayer) { - var renderTextLayer = function canvasRenderTextLayer() { - var textDivs = self.textDivs; - for (var i = 0, length = textDivs.length; i < length; ++i) { - if (textDivs[i].dataset.textLength > 1) { // avoid div by zero - textLayer.appendChild(textDivs[i]); - // Adjust div width (via letterSpacing) to match canvas text - // Due to the .offsetWidth calls, this is slow - textDivs[i].style.letterSpacing = - ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth) / - (textDivs[i].dataset.textLength - 1)) + 'px'; - } + if (!textLayer) + return; + + var self = this; + var renderTextLayer = function canvasRenderTextLayer() { + var textDivs = self.textDivs; + for (var i = 0, length = textDivs.length; i < length; ++i) { + if (textDivs[i].dataset.textLength > 1) { // avoid div by zero + textLayer.appendChild(textDivs[i]); + // Adjust div width (via letterSpacing) to match canvas text + // Due to the .offsetWidth calls, this is slow + textDivs[i].style.letterSpacing = + ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth) / + (textDivs[i].dataset.textLength - 1)) + 'px'; } } - var textLayerQueue = self.textLayerQueue; - textLayerQueue.push(renderTextLayer); - - // Lazy textLayer rendering (to prevent UI hangs) - // Only render queue if activity has stopped, where "no activity" == - // "no beginDrawing() calls in the last N ms" - self.textLayerTimer = setTimeout(function renderTextLayerQueue() { - // Render most recent (==most relevant) layers first - for (var i = textLayerQueue.length - 1; i >= 0; i--) { - textLayerQueue.pop().call(); - } - }, 500); } + var textLayerQueue = this.textLayerQueue; + textLayerQueue.push(renderTextLayer); + + // Lazy textLayer rendering (to prevent UI hangs) + // Only render queue if activity has stopped, where "no activity" == + // "no beginDrawing() calls in the last N ms" + this.textLayerTimer = setTimeout(function renderTextLayerQueue() { + // Render most recent (==most relevant) layers first + for (var i = textLayerQueue.length - 1; i >= 0; i--) { + textLayerQueue.pop().call(); + } + }, 500); }, // Graphics state @@ -577,28 +578,32 @@ var CanvasGraphics = (function canvasGraphics() { ctx.scale(1 / textHScale, 1); }, getTextGeometry: function canvasGetTextGeometry() { - var geom = {}; + var geometry = {}; var ctx = this.ctx; var font = this.current.font; var ctxMatrix = ctx.mozCurrentTransform; if (ctxMatrix) { var bl = Util.applyTransform([0, 0], ctxMatrix); var tr = Util.applyTransform([1, 1], ctxMatrix); - geom.x = bl[0]; - geom.y = bl[1]; - geom.hScale = tr[0] - bl[0]; - geom.vScale = tr[1] - bl[1]; + geometry.x = bl[0]; + geometry.y = bl[1]; + geometry.hScale = tr[0] - bl[0]; + geometry.vScale = tr[1] - bl[1]; } var spaceGlyph = font.charsToGlyphs(' '); + // Hack (sometimes space is not encoded) if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) spaceGlyph = font.charsToGlyphs('i'); + // Fallback if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) spaceGlyph = [{width: 0}]; - geom.spaceWidth = spaceGlyph[0].width; - return geom; + + geometry.spaceWidth = spaceGlyph[0].width; + return geometry; }, + pushTextDivs: function canvasGraphicsPushTextDivs(text) { var div = document.createElement('div'); var fontSize = this.current.fontSize;