|  | @@ -20,8 +20,8 @@ if (typeof PDFJS === 'undefined') {
 | 
	
		
			
				|  |  |    (typeof window !== 'undefined' ? window : this).PDFJS = {};
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -PDFJS.version = '1.3.48';
 | 
	
		
			
				|  |  | -PDFJS.build = '5f56a20';
 | 
	
		
			
				|  |  | +PDFJS.version = '1.3.50';
 | 
	
		
			
				|  |  | +PDFJS.build = '376788f';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  (function pdfjsWrapper() {
 | 
	
		
			
				|  |  |    // Use strict in our context only - users might not want it
 | 
	
	
		
			
				|  | @@ -248,7 +248,6 @@ function error(msg) {
 | 
	
		
			
				|  |  |      console.log('Error: ' + msg);
 | 
	
		
			
				|  |  |      console.log(backtrace());
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown);
 | 
	
		
			
				|  |  |    throw new Error(msg);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -275,22 +274,6 @@ var UNSUPPORTED_FEATURES = PDFJS.UNSUPPORTED_FEATURES = {
 | 
	
		
			
				|  |  |    font: 'font'
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -var UnsupportedManager = PDFJS.UnsupportedManager =
 | 
	
		
			
				|  |  | -  (function UnsupportedManagerClosure() {
 | 
	
		
			
				|  |  | -  var listeners = [];
 | 
	
		
			
				|  |  | -  return {
 | 
	
		
			
				|  |  | -    listen: function (cb) {
 | 
	
		
			
				|  |  | -      listeners.push(cb);
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    notify: function (featureId) {
 | 
	
		
			
				|  |  | -      warn('Unsupported feature "' + featureId + '"');
 | 
	
		
			
				|  |  | -      for (var i = 0, ii = listeners.length; i < ii; i++) {
 | 
	
		
			
				|  |  | -        listeners[i](featureId);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  };
 | 
	
		
			
				|  |  | -})();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  // Combines two URLs. The baseUrl shall be absolute URL. If the url is an
 | 
	
		
			
				|  |  |  // absolute URL, it will be returned as is.
 | 
	
		
			
				|  |  |  function combineUrl(baseUrl, url) {
 | 
	
	
		
			
				|  | @@ -2093,6 +2076,12 @@ var PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {
 | 
	
		
			
				|  |  |       * an {Object} with the properties: {number} loaded and {number} total.
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      this.onProgress = null;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Callback to when unsupported feature is used. The callback receives
 | 
	
		
			
				|  |  | +     * an {PDFJS.UNSUPPORTED_FEATURES} argument.
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    this.onUnsupportedFeature = null;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    PDFDocumentLoadingTask.prototype =
 | 
	
	
		
			
				|  | @@ -3158,6 +3147,19 @@ var WorkerTransport = (function WorkerTransportClosure() {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }, this);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +      messageHandler.on('UnsupportedFeature',
 | 
	
		
			
				|  |  | +          function transportUnsupportedFeature(data) {
 | 
	
		
			
				|  |  | +        if (this.destroyed) {
 | 
	
		
			
				|  |  | +          return; // Ignore any pending requests if the worker was terminated.
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        var featureId = data.featureId;
 | 
	
		
			
				|  |  | +        var loadingTask = this.loadingTask;
 | 
	
		
			
				|  |  | +        if (loadingTask.onUnsupportedFeature) {
 | 
	
		
			
				|  |  | +          loadingTask.onUnsupportedFeature(featureId);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        PDFJS.UnsupportedManager.notify(featureId);
 | 
	
		
			
				|  |  | +      }, this);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        messageHandler.on('JpegDecode', function(data) {
 | 
	
		
			
				|  |  |          if (this.destroyed) {
 | 
	
		
			
				|  |  |            return Promise.reject('Worker was terminated');
 | 
	
	
		
			
				|  | @@ -3575,6 +3577,26 @@ var InternalRenderTask = (function InternalRenderTaskClosure() {
 | 
	
		
			
				|  |  |    return InternalRenderTask;
 | 
	
		
			
				|  |  |  })();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * (Deprecated) Global observer of unsupported feature usages. Use
 | 
	
		
			
				|  |  | + * onUnsupportedFeature callback of the {PDFDocumentLoadingTask} instance.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +PDFJS.UnsupportedManager = (function UnsupportedManagerClosure() {
 | 
	
		
			
				|  |  | +  var listeners = [];
 | 
	
		
			
				|  |  | +  return {
 | 
	
		
			
				|  |  | +    listen: function (cb) {
 | 
	
		
			
				|  |  | +      deprecated('Global UnsupportedManager.listen is used: ' +
 | 
	
		
			
				|  |  | +                 ' use PDFDocumentLoadingTask.onUnsupportedFeature instead');
 | 
	
		
			
				|  |  | +      listeners.push(cb);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    notify: function (featureId) {
 | 
	
		
			
				|  |  | +      for (var i = 0, ii = listeners.length; i < ii; i++) {
 | 
	
		
			
				|  |  | +        listeners[i](featureId);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  | +})();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  var Metadata = PDFJS.Metadata = (function MetadataClosure() {
 | 
	
		
			
				|  |  |    function fixMetadata(meta) {
 | 
	
	
		
			
				|  | @@ -5730,7 +5752,6 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      paintXObject: function CanvasGraphics_paintXObject() {
 | 
	
		
			
				|  |  | -      UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown);
 | 
	
		
			
				|  |  |        warn('Unsupported \'paintXObject\' command.');
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -17182,7 +17203,7 @@ var Pattern = (function PatternClosure() {
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    Pattern.parseShading = function Pattern_parseShading(shading, matrix, xref,
 | 
	
		
			
				|  |  | -                                                       res) {
 | 
	
		
			
				|  |  | +                                                       res, handler) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      var dict = isStream(shading) ? shading.dict : shading;
 | 
	
		
			
				|  |  |      var type = dict.get('ShadingType');
 | 
	
	
		
			
				|  | @@ -17205,7 +17226,8 @@ var Pattern = (function PatternClosure() {
 | 
	
		
			
				|  |  |        if (ex instanceof MissingDataException) {
 | 
	
		
			
				|  |  |          throw ex;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      UnsupportedManager.notify(UNSUPPORTED_FEATURES.shadingPattern);
 | 
	
		
			
				|  |  | +      handler.send('UnsupportedFeature',
 | 
	
		
			
				|  |  | +                   {featureId: UNSUPPORTED_FEATURES.shadingPattern});
 | 
	
		
			
				|  |  |        warn(ex);
 | 
	
		
			
				|  |  |        return new Shadings.Dummy();
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -18243,6 +18265,9 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
	
		
			
				|  |  |            then(function () {
 | 
	
		
			
				|  |  |            return translated;
 | 
	
		
			
				|  |  |          }, function (reason) {
 | 
	
		
			
				|  |  | +          // Error in the font data -- sending unsupported feature notification.
 | 
	
		
			
				|  |  | +          self.handler.send('UnsupportedFeature',
 | 
	
		
			
				|  |  | +                            {featureId: UNSUPPORTED_FEATURES.font});
 | 
	
		
			
				|  |  |            return new TranslatedFont('g_font_error',
 | 
	
		
			
				|  |  |              new ErrorFont('Type3 font load error: ' + reason), translated.font);
 | 
	
		
			
				|  |  |          });
 | 
	
	
		
			
				|  | @@ -18467,6 +18492,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
	
		
			
				|  |  |          translatedPromise = Promise.reject(e);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +      var self = this;
 | 
	
		
			
				|  |  |        translatedPromise.then(function (translatedFont) {
 | 
	
		
			
				|  |  |          if (translatedFont.fontType !== undefined) {
 | 
	
		
			
				|  |  |            var xrefFontStats = xref.stats.fontTypes;
 | 
	
	
		
			
				|  | @@ -18477,7 +18503,9 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
	
		
			
				|  |  |            translatedFont, font));
 | 
	
		
			
				|  |  |        }, function (reason) {
 | 
	
		
			
				|  |  |          // TODO fontCapability.reject?
 | 
	
		
			
				|  |  | -        UnsupportedManager.notify(UNSUPPORTED_FEATURES.font);
 | 
	
		
			
				|  |  | +        // Error in the font data -- sending unsupported feature notification.
 | 
	
		
			
				|  |  | +        self.handler.send('UnsupportedFeature',
 | 
	
		
			
				|  |  | +                          {featureId: UNSUPPORTED_FEATURES.font});
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |            // error, but it's still nice to have font type reported
 | 
	
	
		
			
				|  | @@ -18530,7 +18558,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
	
		
			
				|  |  |          } else if (typeNum === SHADING_PATTERN) {
 | 
	
		
			
				|  |  |            var shading = dict.get('Shading');
 | 
	
		
			
				|  |  |            var matrix = dict.get('Matrix');
 | 
	
		
			
				|  |  | -          pattern = Pattern.parseShading(shading, matrix, xref, resources);
 | 
	
		
			
				|  |  | +          pattern = Pattern.parseShading(shading, matrix, xref, resources,
 | 
	
		
			
				|  |  | +                                         this.handler);
 | 
	
		
			
				|  |  |            operatorList.addOp(fn, pattern.getIR());
 | 
	
		
			
				|  |  |            return Promise.resolve();
 | 
	
		
			
				|  |  |          } else {
 | 
	
	
		
			
				|  | @@ -18767,7 +18796,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                var shadingFill = Pattern.parseShading(shading, null, xref,
 | 
	
		
			
				|  |  | -                resources);
 | 
	
		
			
				|  |  | +                resources, self.handler);
 | 
	
		
			
				|  |  |                var patternIR = shadingFill.getIR();
 | 
	
		
			
				|  |  |                args = [patternIR];
 | 
	
		
			
				|  |  |                fn = OPS.shadingFill;
 | 
	
	
		
			
				|  | @@ -41981,6 +42010,11 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
 | 
	
		
			
				|  |  |              return; // ignoring errors from the terminated thread
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +          // For compatibility with older behavior, generating unknown
 | 
	
		
			
				|  |  | +          // unsupported feature notification on errors.
 | 
	
		
			
				|  |  | +          handler.send('UnsupportedFeature',
 | 
	
		
			
				|  |  | +                       {featureId: UNSUPPORTED_FEATURES.unknown});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            var minimumStackMessage =
 | 
	
		
			
				|  |  |              'worker.js: while trying to getPage() and getOperatorList()';
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -42115,15 +42149,6 @@ if (typeof window === 'undefined') {
 | 
	
		
			
				|  |  |      globalScope.console = workerConsole;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  // Listen for unsupported features so we can pass them on to the main thread.
 | 
	
		
			
				|  |  | -  PDFJS.UnsupportedManager.listen(function (msg) {
 | 
	
		
			
				|  |  | -    globalScope.postMessage({
 | 
	
		
			
				|  |  | -      targetName: 'main',
 | 
	
		
			
				|  |  | -      action: '_unsupported_feature',
 | 
	
		
			
				|  |  | -      data: msg
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -  });
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |    var handler = new MessageHandler('worker', 'main', this);
 | 
	
		
			
				|  |  |    WorkerMessageHandler.setup(handler, this);
 | 
	
		
			
				|  |  |  }
 |