Return-Path: <tiff-bounces@lists.osgeo.org>
Received: from mailgate208.isp.belgacom.be ([195.238.22.40])
          by mailfep015.skynet.be
          (InterMail vM.8.04.03.28.4 201-2389-100-182-103-20180124)
          with ESMTP
          id <20200811115616.RCY7485.mailfep015.skynet.be@mailgate208.isp.belgacom.be>
          for <chris.lindelaan@skynet.be>; Tue, 11 Aug 2020 13:56:16 +0200
Received-SPF: None (mx201.skynet.be: no sender authenticity
  information available from domain of
  tiff-bounces@lists.osgeo.org) identity=pra;
  client-ip=140.211.15.3; receiver=mx201.skynet.be;
  envelope-from="tiff-bounces@lists.osgeo.org";
  x-sender="tiff-bounces@lists.osgeo.org";
  x-conformance=sidf_compatible
Received-SPF: Pass (mx201.skynet.be: domain of
  tiff-bounces@lists.osgeo.org designates 140.211.15.3 as
  permitted sender) identity=mailfrom; client-ip=140.211.15.3;
  receiver=mx201.skynet.be;
  envelope-from="tiff-bounces@lists.osgeo.org";
  x-sender="tiff-bounces@lists.osgeo.org";
  x-conformance=sidf_compatible; x-record-type="v=spf1";
  x-record-text="v=spf1 mx a:mail.osgeo.org a:lists.osgeo.org
  a:mail.osgeo.osuosl.org a:tracsvn.osgeo.osuosl.org -all"
Received-SPF: Pass (mx201.skynet.be: domain of
  postmaster@lists.osgeo.org designates 140.211.15.3 as
  permitted sender) identity=helo; client-ip=140.211.15.3;
  receiver=mx201.skynet.be;
  envelope-from="tiff-bounces@lists.osgeo.org";
  x-sender="postmaster@lists.osgeo.org";
  x-conformance=sidf_compatible; x-record-type="v=spf1";
  x-record-text="v=spf1 mx a:mail.osgeo.org a:lists.osgeo.org
  a:mail.osgeo.osuosl.org a:tracsvn.osgeo.osuosl.org -all"
Authentication-Results: mx201.skynet.be; spf=None smtp.pra=tiff-bounces@lists.osgeo.org; spf=Pass smtp.mailfrom=tiff-bounces@lists.osgeo.org; spf=Pass smtp.helo=postmaster@lists.osgeo.org; dkim=hardfail (body hash did not verify [final]) header.i=@hotmail.com; dkim=hardfail (body hash did not verify [final]) header.i=@hotmail.com; dmarc=fail (p=none dis=none) d=hotmail.com
IronPort-SDR: HzhB7FT7EayotLgtlutl9FSq2hkHqbrZcJcMtT8fu0Qh2pfZ79TI2gZhYcgx6P+OV1YCQBVHrk
 LseVV54vaGcjcdhEIsvnoEeOfLl1/IfsWL/0x7fgL5EUdpNCXKP8/VJXNbAzWqYbz7eW0kxATF
 n8ppv8uc6nVfGuJjQB3VM+5hytEVGsHW92QIpSXqR2oror1S5OF7sCcNS0OiZhoskG0TYHPIvV
 Gzo46Yso4AMyz0yINh3DLiMbZvN4mBvs+nSTEcxXmr0VKlwcr3v+GfSWi+c5Odpqtx0t2vV12e
 MfNUb2BjqkeYFtqBrKrjeuEs
IronPort-PHdr: =?us-ascii?q?9a23=3A6WE08RdaqjhKhq1jmgXuabJYlGMj4u6mDksu8p?=
 =?us-ascii?q?Mizoh2WeGdxc24YRGN2/xhgRfzUJnB7Loc0qyK6v6mCDRLusfJmUtBWaQEbw?=
 =?us-ascii?q?UCh8QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFR?=
 =?us-ascii?q?rlKAV6OPn+FJLMgMSrzeCy/IDYbxlViDanbr5+MRS7oR/Vu8UKjodvJKI8wQ?=
 =?us-ascii?q?bVr3VVfOhb2XlmLk+JkRbm4cew8p9j8yBOtP8k6sVNT6b0cbkmQLJBFDgpPH?=
 =?us-ascii?q?w768PttRnYUAuA/WAcXXkMkhpJGAfK8hf3VYrsvyTgt+p93C6aPdDqTb0xRD?=
 =?us-ascii?q?+v4btnRAPuhSwaLDMy7n3ZhdJsg6JauBKhpgJww4jIYIGOKfFyerrRcc4GSW?=
 =?us-ascii?q?ZdW8pcUTFKDIGhYIsVF+cPPfhWr5XzqVUNoxuxBwajCv73yjJKhHH6wKM33/?=
 =?us-ascii?q?g9Hg7YxwwtBNcOvGjIoNjvKKseTf25wa/VxjvDdfNW3jL95ZDSfB87vPGMWa?=
 =?us-ascii?q?97f8jPxkkqEgPKkE+QopHiMjONzOsNrmyb7+p+WuKqjm4otRtxryOvxscrlo?=
 =?us-ascii?q?nJg5gaylHA9Slj3Ik1Iti4RVd9bNW5H5ReqzuUOJFqQsM+XW5ooiA6x6UIt5?=
 =?us-ascii?q?OmYCUEx5QpygLDZ/GZcYWF7RDuWeSQLDpkin9od7yyihmz/EWg1+DxSMq53E?=
 =?us-ascii?q?hEoCdGkdTCuGwA2RLP5sSbTPZ240mv2TGK1w/J6+FEJ1g5lbHaK54k2r4wko?=
 =?us-ascii?q?QcsV/DHy/thEX5kqqWdl4+9uiv8eTnba3qppCGN4BukgH+MqUuldCkAeQ9KA?=
 =?us-ascii?q?cOUGmb9vi/1LH5+k35WrpKg/srmafaqJDXPdkXq6GlDwNPzIov9guzAy273N?=
 =?us-ascii?q?kYh3UKIkpJdAydgIT1Jl3DJe30Aeqij1mpjjhmyOzKMqHkD5XDMnfOkbbscL?=
 =?us-ascii?q?N45kNT1QY+y81U6YhOBbEbOv3zX1f8tNzGAR89NAy52+LnCNRm1oMCQmKDGK?=
 =?us-ascii?q?iZMLjdsVCW4eIjOe6MZJUauDrlKvgl4eDhjWMhlFMAcqSlwYEbZG6lEvh7OU?=
 =?us-ascii?q?mVfHrhjs0PHGsSuwoxVu3qiFmMUT5JYHayWrox5i06CIKoA4fPX5uigLuc3C?=
 =?us-ascii?q?e9ApJZeHtGB0uIEXfpbIWER+wMZDiVIs96nTwLS7+hR5Um1RG0uw/206BnIf?=
 =?us-ascii?q?bM+i0EqZLj08B46PHTlREo9Dx0FN6R02WMT2Fyg2wHWTs207plrkx70VqDyq?=
 =?us-ascii?q?t4gvxeFdNN+/NFSBw1OoCPh9F8EM34DwLdYs+SGhHhRtS9HSp3Sck+zthIZF?=
 =?us-ascii?q?xyXNCrjxTG1iztBKcJlruNH9so86zSjEX3PNt3nnPP1a09iAs6Q8VBcHern7?=
 =?us-ascii?q?Ny7BT7A4/Sj17fkL2leKNa2zTCo3yex2iDt10NTQhrTK/eVmoebEaFkNLi+0?=
 =?us-ascii?q?niQraiBK5yMhdd0dXQbexOa8b1lhNBX/juP5LZeW32nm6xAROBwPSLdJbrfG?=
 =?us-ascii?q?MGmzncBkZXrgYI4HymOAEyCz30pmvfCCBpR07ubU2p6+RntX6gUmcwzhqWdA?=
 =?us-ascii?q?tmzLW4/VgSn/PLUO4Z3L8PpHI8rS5pFk22xdPcBom8oF9Le68UT8k87UxK02?=
 =?us-ascii?q?LQtwo1apauNaFvnVMYWx92ulvq2lN7A4FEmNNssGNs0REkeoyC11YUTzqF2d?=
 =?us-ascii?q?jQN7jSJ3O6qAimdqrW11Tb3cy++qAT7f05rxPouwT/RRlqyGluz9QAiyjU3Z?=
 =?us-ascii?q?7NFgdHFMupCh9qpTRZhpSfTzc0457dyXxrN/fv723cjot6TOJw0A2pOsxfOf?=
 =?us-ascii?q?nZSly6GJgACsynOOEm3EKkahsUMewBvKJhP8S6cvKH3OigO+Mz+VDuljFc7Y?=
 =?us-ascii?q?Rw2V6L7XMvL4yA38Mr2fadjCeOSzqut0qrsM38hdJhaCoJF2WyjAnIVqVWYL?=
 =?us-ascii?q?F/e5pONXa2Lp+S5/BTwqDgQWVZ81jxNxYj44qEaRGSZlry0Ehr2EIbrGaOtQ?=
 =?us-ascii?q?C4wjd3wFRL5qCfiWvQmtnweSQMI1EVe2oloQ3AOpiR19JGeAuFV1MmiyWC2G?=
 =?us-ascii?q?PdlqJQ/55TFzmGEiIqNyKjJnNhTq6AteOjUfRgtLMOrn9IVaO9P16ceIXGqQ?=
 =?us-ascii?q?cBjRigNmtEhzMENAukl7PhuEVVtljBJX9xpXD9R9N5nyXx+/fiQ+ZM/DZaah?=
 =?us-ascii?q?ElljDvV2CgH4Lw54y5yMvhk9KGS1vxUd59NhTynJ+vihOC+GxVDBiboq6h3e?=
 =?us-ascii?q?e6PxI66n78zNdjdy/Bjx/2TYv32IWCOOk2c1h1CWWnwO1aCIAgkowUo88Snm?=
 =?us-ascii?q?pLl7mNxyAnm33dDJZl3f65SV8TXSYT4Nv/3jG7hlRPbUut/6fpemW4k+FITY?=
 =?us-ascii?q?KFT2wOxhJ+0s1VLJ2Nt6AHhXpMgGKdvAvaZv5wzgk30+Iz+HcWwOAsvRNw4G?=
 =?us-ascii?q?bEOI8qA3JfHS+8tCyG8/u/8qtmNWmFS5/s+ENFxNmmXZ6d8jlsAkzzRIZ6Lw?=
 =?us-ascii?q?Bzv/pxLkn8zUDYtqfCacH8YsxCjA+aqDDQ1vNYCKsJssYIqHQ9BXzCpG8Mnr?=
 =?us-ascii?q?toxQwr3Iu9upCAMXko5q+iHxpEYz38fc8d8zDp3u5O28eM2Ia3GY99XzgRRp?=
 =?us-ascii?q?zyGPivHCNatf38N06CETF0rHCHUaTSBw6R+Q9VoXPJGpSeZCzFCFww9/4zGE?=
 =?us-ascii?q?vFYGBaiRofZjgxmYQ1REiykcrmdko9riga+guh8kMIgvlwYl23W2vcpQL9cH?=
 =?us-ascii?q?N8QYOHIk9MqklY+k6AAozR4sppAige95Kotg3LIWueKEAAVDlVChHbWQiiC/?=
 =?us-ascii?q?2o4t/NqbLKL/eiL/bIfbSFoPBfUPHN/5+0z4965G3Rb5eKLiM6Vrsg2VtFUG?=
 =?us-ascii?q?w/EcmK0y4XRXkxkCTAJ9WeuA/64jd++9y+/vquUgXy44CCEJNWMM5z4Faxmq?=
 =?us-ascii?q?iOMKiXnikqYS1A2MY0zGTTgKMawEZUjihvcze3FrFVqS/DQufanbJRBBMAQy?=
 =?us-ascii?q?dyL9dTqaUn0QRKf8nBhYC9zaZ228Y8EEwNTln9goepaMgNdnm6L0/CDV2XOa?=
 =?us-ascii?q?6uITzQ39qxZrizRLoWi/9b5FW8ujeeRk/qJDiNnjjtH1ClNu1dxCGSJxwWtI?=
 =?us-ascii?q?CxOhBqFSD9QcjnZAzzA9F2izQy9Px8hn7DOWMGdzkpW0NKsriZ7CceifJ6SC?=
 =?us-ascii?q?RN7XtgeOmNgSqX5ujcYtYctvd6SiR9jOIS7HU2g71S8GlaSeZ0ljqandBvpV?=
 =?us-ascii?q?iip6jHyjduXBdU7DcerIKMoUBrOKGf/Z5FCj7I+RsX5jCeAhUO75t9X9vova?=
 =?us-ascii?q?0YxtnUwaT0LjoDu96B/cwAAsHVLISMN394a0jTFTXZDRUIQXuQDU+E3hUPtv?=
 =?us-ascii?q?aU+zXVq4hg8sGqg5kfTLJHElY4RLscDQx+EdoOLY0/Vy44kbOdkM8D5GavyX?=
 =?us-ascii?q?uZDMRcsJfdU/uOAPLpYD+HhLhAbhEMzPv2N4MWfoH83kVjbBF9kuGoUwLMXN?=
 =?us-ascii?q?5D5ydmcwk/rV5l9HllUnZ13FnqZwTr52UcVLa1khMwlgpicLE17j6/hjV/bl?=
 =?us-ascii?q?HOpSY2jAwwgYC83WjXKmeoav7tG9oFQzD5vEUwLJ7hFgNlN1Xr21dnJTHJW/?=
 =?us-ascii?q?RbgugFFygjhQnCtJ9IAfMZQ7dDZUpa2fCZabAi1klaoSi87UtG/vfeT5x5mw?=
 =?us-ascii?q?YtN5m2oDgTvmArJM5wPqHWKKdTmxJMh6yA+yWvy+Y6zRQ2I0cW7HjUfzUHtU?=
 =?us-ascii?q?tOMaMpbXnNnKQk+UmJnD1Nf3IJXvwhr6dx908zDO+Hyjrpz79JLk3obb6lIq?=
 =?us-ascii?q?iUunbNmYuzen1sixNar0Be5vA21Nd5KxPSTEM+yraNUR4EZ4LOLgRcbswa83?=
 =?us-ascii?q?a2H27GreTDz9d/OJi7He3zZeuPr7oPxEW/EwsuWYMW4YwNE4Kt30fRMcr8ZO?=
 =?us-ascii?q?dZkVN3vV2tfQjDV7xAY3fp2H8frtu6zYNr0IUVPTwbDWhncG226rvRug42ka?=
 =?us-ascii?q?+GVdYybG0dW9hMPXY3Vcum3i9B6i0cVH/ti7tfkVXEtGyZxGyYFjT3Ytt9ae?=
 =?us-ascii?q?3BYAM2UIjw4jYu9aWqz1TaofC8byn3M8pvvtjX5KYUvZGCXrlITLdz9k3bho?=
 =?us-ascii?q?9TSmeCV2/UDcXzIIP/Zo5qasb7QCXfMBT3m3cuQsH9Mcz4ZLSJjw+tT4FJto?=
 =?us-ascii?q?KWxxgnNNShDXcZABh9oKcE/q02NmhhK9IrJBXvsQo5Lam2JgyVh86vT2iaIj?=
 =?us-ascii?q?xTV/BDzO++au8f3282Y+S90ndlUoAiwrz97xsWXJ9TxEK7p77rd8xEXCP0AH?=
 =?us-ascii?q?AYZwjfuX9ziT16LuhriuIviBqatFAdN3aMb+NkbypDpd50DAGWIG5qESw/XF?=
 =?us-ascii?q?CRiszE+AHJvfha9nlYltdQl+pev3X5+JjEfTW3XOqss5qdung8d9EtuLN3d4?=
 =?us-ascii?q?v4LcaB8pTFgzvESN/XqALNFSe+E7ADwIpqLSlVQedFlSQeAeJa5NIT0UMqTY?=
 =?us-ascii?q?9+IqwVUPBqvbO7bzd4SyQfn2cVUIaJ3TpKhenZufOSjhCLbJErKwAJqr1Gg8?=
 =?us-ascii?q?ABSGhxeSwTo+mkTYqem2KfS2cNKRse9kwVuFpGzNYpOLm4ptGARYQpqXYeu/?=
 =?us-ascii?q?9uVyrXCpRkv0D2TG2bmxmwSfmslfCowRMHzP/o1YpTUxp+BE5BgudOwxJ0cP?=
 =?us-ascii?q?ctcvBW59OM6WztFwuypm/mxeq4KUMEzN2OLwS+F4nUs2fgFCcRqhh2DcdCzm?=
 =?us-ascii?q?/SEZMKnk93cqEu8R9QIY6oP0z5+jovyp9BG7ijSdvtwE0qoHFAQD2lWYkkaa?=
 =?us-ascii?q?kuoBfMVTtpbor+4o3iIIlXS3RM9Ye1r1ZCjF4rNDW2xJ0aLNtCqG1pPnAHsX?=
 =?us-ascii?q?CWu928T9dG0Ml9AsoXI9txjHz6HbtNJJmbp3Bl8qyq0HLS/Cow9Uur3DjmUb?=
 =?us-ascii?q?HtVPpXpidNf2dhb3TbsEQkCPEgt3vf4kyY+E4h5P9VX/CKnQ148jN0H5QIAS?=
 =?us-ascii?q?1G2HfjKE58BHAUt+RBNL+TdNdTTv50YgWgXn52Xfd02kWI+Qdzhnj0ZGp1rR?=
 =?us-ascii?q?Zd4CSbWBM7HSBHnq3kkiYArIegIjAXTNRPdigmdCODLBiU0WVeuBIVMhw4a9?=
 =?us-ascii?q?UiGt9Avooj885U887FEBn+LSAeQAckMRk33P0ZklRM4hzBKHLtSDGwfPOKiS?=
 =?us-ascii?q?VZOMKYrcqnNvP8pVgVjoL8rPt+8L4MSnrgnheiE4mH893M8+aSv07LT5/Wdv?=
 =?us-ascii?q?WmaCaeHjzNlgyrw7A/AJTNuS/JP1gDJg=3D=3D?=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0EVAABBhjJfhwMP04xgGwEBAQEBAQE?=
 =?us-ascii?q?BBQEBARIBAQEDAwEBAUCBOQMBAQELATJwAS4jLgEXAV11Awc0hDaDRgOFOIg?=
 =?us-ascii?q?aFG6BaJkeFAEBAgEBAQEBBwEYAQoMBAEBAQGESgIXgiEeBgEEMwYOAgECAQE?=
 =?us-ascii?q?BAwIFAQEBBAEBAQIBAQIDAgIBAQIQAQEBCgsJCCkqBoEJNwRiBlsEgW4HAjE?=
 =?us-ascii?q?MgjcFAgMfAQZsgQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEVAg1UICkBAR0BAQE?=
 =?us-ascii?q?BAgEBAQEPER0BAQQKHgsBAgIBAQIGAQEBAQgOAwQBASMEBAICAgEBIwEKHQg?=
 =?us-ascii?q?CBBMFAwEZgwQBgkoBAw4gAQICCqdBAgKBN4hgAQFzAoEVBQEBFoMBAQEFe4N?=
 =?us-ascii?q?MASMoA2yBNwmBOAGGT4ZagUE/gRFDghgHLj6CGjcLAQMBgUYeCIMHM4Itj1o?=
 =?us-ascii?q?Ggx+IHw6BU4g9kB9RTYIfC4ECC4dLinKBSIUdlC6LZ5xsgmSSEwIEAgQFAg4?=
 =?us-ascii?q?BAQWBaSSBWDMaI1CCaQlEAQIBAg0CAQEBAwECAgIBAQICAQECjhyDcYUUhUJ?=
 =?us-ascii?q?0AjUCBggBAQMJjkFYgW0BAQ?=
X-IPAS-Result: =?us-ascii?q?A0EVAABBhjJfhwMP04xgGwEBAQEBAQEBBQEBARIBAQEDA?=
 =?us-ascii?q?wEBAUCBOQMBAQELATJwAS4jLgEXAV11Awc0hDaDRgOFOIgaFG6BaJkeFAEBA?=
 =?us-ascii?q?gEBAQEBBwEYAQoMBAEBAQGESgIXgiEeBgEEMwYOAgECAQEBAwIFAQEBBAEBA?=
 =?us-ascii?q?QIBAQIDAgIBAQIQAQEBCgsJCCkqBoEJNwRiBlsEgW4HAjEMgjcFAgMfAQZsg?=
 =?us-ascii?q?QIBAQEBAQEBAQEBAQEBAQEBAQEBAQEVAg1UICkBAR0BAQEBAgEBAQEPER0BA?=
 =?us-ascii?q?QQKHgsBAgIBAQIGAQEBAQgOAwQBASMEBAICAgEBIwEKHQgCBBMFAwEZgwQBg?=
 =?us-ascii?q?koBAw4gAQICCqdBAgKBN4hgAQFzAoEVBQEBFoMBAQEFe4NMASMoA2yBNwmBO?=
 =?us-ascii?q?AGGT4ZagUE/gRFDghgHLj6CGjcLAQMBgUYeCIMHM4Itj1oGgx+IHw6BU4g9k?=
 =?us-ascii?q?B9RTYIfC4ECC4dLinKBSIUdlC6LZ5xsgmSSEwIEAgQFAg4BAQWBaSSBWDMaI?=
 =?us-ascii?q?1CCaQlEAQIBAg0CAQEBAwECAgIBAQICAQECjhyDcYUUhUJ0AjUCBggBAQMJj?=
 =?us-ascii?q?kFYgW0BAQ?=
X-MGA-submission: =?us-ascii?q?MDHP5cDrvKtFBhGd5yI6+Cq7a2PCODmxRS9UAQ?=
 =?us-ascii?q?wLJMwuanxsWDHRDM65ju8BWMplGxTrtdrIqzAIKEWFyFLHGdp0MAyr+4?=
 =?us-ascii?q?VSqkp+dhvoXlGfeJHm6/P/XRV6yCllmv40O74=3D?=
Received: from osgeo6.osgeo.osuosl.org (HELO lists.osgeo.org) ([140.211.15.3])
  by mx201.skynet.be with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 11 Aug 2020 13:56:15 +0200
Received: from osgeo6.osgeo.osuosl.org (localhost [127.0.0.1])
	by lists.osgeo.org (Postfix) with ESMTP id BFCE86144E6F;
	Tue, 11 Aug 2020 04:56:08 -0700 (PDT)
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12olkn2025.outbound.protection.outlook.com [40.92.22.25])
 by lists.osgeo.org (Postfix) with ESMTPS id 66EFF6144E52
 for <tiff@lists.osgeo.org>; Tue, 11 Aug 2020 04:56:07 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jrNl9zzCON2dQHJlcBulFbXPv0RObUzE/ITFqqE4N0TXMjPNXDIc+z+o08mI8nyCcxZy1vzRwpyty8q/sXZ/v5/jitKG/6pt/QFNCVkbCxl7O4af9/tx4ExyrytXzQCQrqVbpXhNX2aV73fpNY2spK13+DpPNUXsc4pI5xczuCFm85+K2n+ledz2Am+opuJOIQA1Lg2ESy0zXMhDGV7MKTLn0YR4FT1OTt97WxnBie5UJqIGW/JRC990vIG0IomGHzIaUoJumioulIQlHGojc9q1u00IRTbUmDqLHg0P+M3D83/+2GQUg5qOcRUvGluULkhGN2J58KV0t8C2VHn/Mw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/v1UzeVcqW6Wk/D2DsxM0j4L+EP3gwVOUMO9bc3RDP8=;
 b=MorNipsGqwY7lgPOPStYQVPPFVDYoH5trSSFEJhSDbBjMA9WT8Q57s/1WqjokIUxuglPpz+6IHjdLPpj48WqC1LQXc/cXB1mpopZzQVDOb5/i6RywrkLUtyDp2r6Snm7YpjCBkYIXmHAbr9LpMukMM0ScXEsorXsIShkjBb4FpPW7+kCEatKnRZTLrBtqTHahosrgopkfFaRr6QqBdY6l2juXyJc4cc36fcKZC8sYeVkSsPPmIhbBW7m52jAcHA3UdrG3iwWt5P6Sr7VKOVmAWp6Euel5P0ToGFRhiD1h6qtYUMTCdjF9nSrk1gaCg1kfB/0NWDPIGviryqHpHp/+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/v1UzeVcqW6Wk/D2DsxM0j4L+EP3gwVOUMO9bc3RDP8=;
 b=azktmXk1IZRG4HNw2wm/i6fnZSSbts6S+Ahr+kW+RfENpO1GVR4aajabLVza2ZFwCVnpuJd4FP5waP9PtH31r1E74JIZPtQ8o+F/Uq9tGVPQuiWemLU6z/R5FrhS9osfaJbaKabGjtgIPac9eyueR3COHzi6hoLO6j/z9yDpR2HbrFU+Vl4/MMvpppKmBVQ66qD+QLPMxDxM9BAB3WEgptX+UewLRq3t+p9QJPMyacone8VBrquxad+iMmq5F+1RWPvSoHk8KPftCi6fY9gBRO4DaS1ao9Gw8PX2RbVy0ZGk9WfvsXuUC4NNypDgv9RzfSOx1seHQPLTjE62TvWqzA==
Received: from BN8NAM12FT023.eop-nam12.prod.protection.outlook.com
 (2a01:111:e400:fc66::4c) by
 BN8NAM12HT144.eop-nam12.prod.protection.outlook.com (2a01:111:e400:fc66::396)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.11; Tue, 11 Aug
 2020 11:56:05 +0000
Received: from CH2PR19MB3912.namprd19.prod.outlook.com
 (2a01:111:e400:fc66::41) by BN8NAM12FT023.mail.protection.outlook.com
 (2a01:111:e400:fc66::349) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.11 via Frontend
 Transport; Tue, 11 Aug 2020 11:56:05 +0000
Received: from CH2PR19MB3912.namprd19.prod.outlook.com
 ([fe80::b1e1:9aa9:d9cb:51e3]) by CH2PR19MB3912.namprd19.prod.outlook.com
 ([fe80::b1e1:9aa9:d9cb:51e3%4]) with mapi id 15.20.3261.024; Tue, 11 Aug 2020
 11:56:05 +0000
From: Paul Hemmer <paulhemmer@hotmail.com>
To: Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
Thread-Topic: [Tiff] exceptions in TIFFSetField not being caught?
Thread-Index: AQHWbzCcHCIC5wd+50O8mvjPXlIwMKkyFgQAgAC27ko=
Date: Tue, 11 Aug 2020 11:56:05 +0000
Message-ID: <CH2PR19MB39121CF07C012F35F1F628E0DD450@CH2PR19MB3912.namprd19.prod.outlook.com>
References: <CH2PR19MB39126C477FFB5611B387C4D8DD440@CH2PR19MB3912.namprd19.prod.outlook.com>,
 <alpine.GSO.2.20.2008101944170.4011@scrappy.simplesystems.org>
In-Reply-To: <alpine.GSO.2.20.2008101944170.4011@scrappy.simplesystems.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-incomingtopheadermarker: OriginalChecksum:A1D7BD820B50C7F7F43DD7EEAE3EB0BE94E9471634014540B26523EDC94AE223;
 UpperCasedChecksum:12AA71B5BDDF3DB52BC096B6EE788A49D086F517F11AA33DFE9CAF3E063A183A;
 SizeAsReceived:7000; Count:45
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [5IXNHOX9ykgWIffpuLiYF9HQcApvLwcZ]
x-ms-publictraffictype: Email
x-incomingheadercount: 45
x-eopattributedmessage: 0
x-ms-office365-filtering-correlation-id: 9a6aa676-cf27-45e4-6612-08d83ded873e
x-ms-traffictypediagnostic: BN8NAM12HT144:
x-microsoft-antispam: BCL:0;
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:0; SRV:;
 IPV:NLI; SFV:NSPM; H:CH2PR19MB3912.namprd19.prod.outlook.com; PTR:; CAT:NONE;
 SFS:; DIR:OUT; SFP:1901; 
x-ms-exchange-transport-forked: True
MIME-Version: 1.0
X-OriginatorOrg: hotmail.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-AuthSource: BN8NAM12FT023.eop-nam12.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a6aa676-cf27-45e4-6612-08d83ded873e
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2020 11:56:05.7436 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Internet
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8NAM12HT144
Subject: Re: [Tiff] exceptions in TIFFSetField not being caught?
X-BeenThere: tiff@lists.osgeo.org
X-Mailman-Version: 2.1.20
Precedence: list
List-Id: TIFF and libtiff discussion <tiff.lists.osgeo.org>
List-Unsubscribe: <https://lists.osgeo.org/mailman/options/tiff>,
 <mailto:tiff-request@lists.osgeo.org?subject=unsubscribe>
List-Post: <mailto:tiff@lists.osgeo.org>
List-Help: <mailto:tiff-request@lists.osgeo.org?subject=help>
List-Subscribe: <https://lists.osgeo.org/mailman/listinfo/tiff>,
 <mailto:tiff-request@lists.osgeo.org?subject=subscribe>
Cc: "tiff@lists.osgeo.org" <tiff@lists.osgeo.org>
Content-Type: multipart/mixed; boundary="===============9063001258517672847=="
Errors-To: tiff-bounces@lists.osgeo.org
Sender: "Tiff" <tiff-bounces@lists.osgeo.org>

--===============9063001258517672847==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_CH2PR19MB39121CF07C012F35F1F628E0DD450CH2PR19MB3912namp_"

--_000_CH2PR19MB39121CF07C012F35F1F628E0DD450CH2PR19MB3912namp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Thank you for the input.

Ah yes of course, it's a C library, I should have known/expected that. Sorr=
y.

>>What do you mean by 'tiff.dll'?

The exception message displayed in visual studio says "unhandled exception =
in tiff.dll"

I tried also using the error and warning callback handlers, but they didn't=
 trigger either.

Granted, I'm "pulling the rug out from under" the internal TIFF writing fun=
ctions by disconnecting the storage media as it's working. May be too much =
to ask the library to gracefully handle such things, but I'm just trying to=
 find to harden my application layer so that it could respond gracefully to=
 a loss of access to storage media during runtime rather than just terminat=
ing.



________________________________
From: Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
Sent: Monday, August 10, 2020 8:56 PM
To: Paul Hemmer <paulhemmer@hotmail.com>
Cc: tiff@lists.osgeo.org <tiff@lists.osgeo.org>
Subject: Re: [Tiff] exceptions in TIFFSetField not being caught?

On Mon, 10 Aug 2020, Paul Hemmer wrote:

> My application that uses LibTIFF is a high-speed image capture system.
>
> I'm trying to harden it against disc-access issues (say, failed SSD write=
 or storage disconnects)
>
> My function for writing the file wraps all calls (TIFFOpen,
> TIFFSetField, TIFWriteScanLine, TIFFClose) within a single try/catch
> block.

These are C language function calls (not C++).

> I'm testing various scenarios where I disconnect storage and am
> finding that if TIFFOpen succeeds but then the storage is
> disconnected during the write, TIFFSetFields will throw an exception
> inside tiff.dll rather than my own catch block catching it.  I'm
> using C++ (MSVC17)

What do you mean by 'tiff.dll'?  Is it the libtiff C library or
something else?

Libtiff does have an optional C++ library but it only appears to
provide the function TIFFStreamOpen(), which is not what you are
using.

> I've tried wrapping all LibTIFF calls individually with try/catch
> blocks and found that still tiff.dll will throw exceptions that my
> end doesn't catch.

Being a C language library, libtiff does not throw C++ exceptions.
Instead it provides error and warning callback functions which can be
used to synchronously be informed of errors and warnings.

It is not usually safe to throw C++ exceptions through C code so
typically the callback function will save some information, and then
there is a check for this information when the C function returns.  If
the libtiff C code is compiled using a C++ compiler (I have not tried
that) then it is technically safe to throw a C++ exception, except for
the huge problem that there would be massive memory leaks and other
issues resulting from doing that.  Unlike libpng and libjpeg, there is
not an expectation that when an error occurs that the code can just
'jump' back to some point in the call stack (e.g. setjmp/longjmp).

If you were to throw a C++ exception through C code the program might
crash or the C++ 'unhandled' exception fallback (which often does a
programmed crash) may be used.

> Any thoughts how to properly handle such exceptions?

First we would need to understand where those exceptions are coming
from. :-)

Bob
--
Bob Friesenhahn
bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
Public Key,     http://www.simplesystems.org/users/bfriesen/public-key.txt

--_000_CH2PR19MB39121CF07C012F35F1F628E0DD450CH2PR19MB3912namp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
Thank you for the input.</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
Ah yes of course, it's a C library, I should have known/expected that. Sorr=
y.</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
&gt;&gt;<span style=3D"color:rgb(50,49,48); font-size:14.6667px; background=
-color:rgb(255,255,255); display:inline!important">What do you mean by 'tif=
f.dll'?&nbsp;<span>&nbsp;</span></span></div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
<span style=3D"color:rgb(50,49,48); font-size:14.6667px; background-color:r=
gb(255,255,255); display:inline!important"><span><br>
</span></span></div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
The exception message displayed in visual studio says &quot;unhandled excep=
tion in tiff.dll&quot;&nbsp;&nbsp;</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
I tried also using the error and warning callback handlers, but they didn't=
 trigger either.</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
Granted, I'm &quot;pulling the rug out from under&quot; the internal TIFF w=
riting functions by disconnecting the storage media as it's working. May be=
 too much to ask the library to gracefully handle such things, but I'm just=
 trying to find to harden my application layer
 so that it could respond gracefully to a loss of access to storage media d=
uring runtime rather than just terminating.&nbsp;</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
<br>
</div>
<div>
<div id=3D"appendonsend"></div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif; font-size:12pt; col=
or:rgb(0,0,0)">
<br>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" co=
lor=3D"#000000" style=3D"font-size:11pt"><b>From:</b> Bob Friesenhahn &lt;b=
friesen@simple.dallas.tx.us&gt;<br>
<b>Sent:</b> Monday, August 10, 2020 8:56 PM<br>
<b>To:</b> Paul Hemmer &lt;paulhemmer@hotmail.com&gt;<br>
<b>Cc:</b> tiff@lists.osgeo.org &lt;tiff@lists.osgeo.org&gt;<br>
<b>Subject:</b> Re: [Tiff] exceptions in TIFFSetField not being caught?</fo=
nt>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt"=
>
<div class=3D"PlainText">On Mon, 10 Aug 2020, Paul Hemmer wrote:<br>
<br>
&gt; My application that uses LibTIFF is a high-speed image capture system.=
<br>
&gt;<br>
&gt; I'm trying to harden it against disc-access issues (say, failed SSD wr=
ite or storage disconnects)<br>
&gt;<br>
&gt; My function for writing the file wraps all calls (TIFFOpen, <br>
&gt; TIFFSetField, TIFWriteScanLine, TIFFClose) within a single try/catch <=
br>
&gt; block.<br>
<br>
These are C language function calls (not C++).<br>
<br>
&gt; I'm testing various scenarios where I disconnect storage and am <br>
&gt; finding that if TIFFOpen succeeds but then the storage is <br>
&gt; disconnected during the write, TIFFSetFields will throw an exception <=
br>
&gt; inside tiff.dll rather than my own catch block catching it.&nbsp; I'm =
<br>
&gt; using C++ (MSVC17)<br>
<br>
What do you mean by 'tiff.dll'?&nbsp; Is it the libtiff C library or <br>
something else?<br>
<br>
Libtiff does have an optional C++ library but it only appears to <br>
provide the function TIFFStreamOpen(), which is not what you are <br>
using.<br>
<br>
&gt; I've tried wrapping all LibTIFF calls individually with try/catch <br>
&gt; blocks and found that still tiff.dll will throw exceptions that my <br=
>
&gt; end doesn't catch.<br>
<br>
Being a C language library, libtiff does not throw C++ exceptions. <br>
Instead it provides error and warning callback functions which can be <br>
used to synchronously be informed of errors and warnings.<br>
<br>
It is not usually safe to throw C++ exceptions through C code so <br>
typically the callback function will save some information, and then <br>
there is a check for this information when the C function returns.&nbsp; If=
 <br>
the libtiff C code is compiled using a C++ compiler (I have not tried <br>
that) then it is technically safe to throw a C++ exception, except for <br>
the huge problem that there would be massive memory leaks and other <br>
issues resulting from doing that.&nbsp; Unlike libpng and libjpeg, there is=
 <br>
not an expectation that when an error occurs that the code can just <br>
'jump' back to some point in the call stack (e.g. setjmp/longjmp).<br>
<br>
If you were to throw a C++ exception through C code the program might <br>
crash or the C++ 'unhandled' exception fallback (which often does a <br>
programmed crash) may be used.<br>
<br>
&gt; Any thoughts how to properly handle such exceptions?<br>
<br>
First we would need to understand where those exceptions are coming <br>
from. :-)<br>
<br>
Bob<br>
-- <br>
Bob Friesenhahn<br>
bfriesen@simple.dallas.tx.us, <a href=3D"http://www.simplesystems.org/users=
/bfriesen/">
http://www.simplesystems.org/users/bfriesen/</a><br>
GraphicsMagick Maintainer,&nbsp;&nbsp;&nbsp; <a href=3D"http://www.Graphics=
Magick.org/">http://www.GraphicsMagick.org/</a><br>
Public Key,&nbsp;&nbsp;&nbsp;&nbsp; <a href=3D"http://www.simplesystems.org=
/users/bfriesen/public-key.txt">
http://www.simplesystems.org/users/bfriesen/public-key.txt</a><br>
</div>
</span></font></div>
</div>
</body>
</html>

--_000_CH2PR19MB39121CF07C012F35F1F628E0DD450CH2PR19MB3912namp_--

--===============9063001258517672847==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVGlmZiBtYWls
aW5nIGxpc3QKVGlmZkBsaXN0cy5vc2dlby5vcmcKaHR0cHM6Ly9saXN0cy5vc2dlby5vcmcvbWFp
bG1hbi9saXN0aW5mby90aWZmCg==

--===============9063001258517672847==--
