<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>192206</bug_id>
          
          <creation_ts>2018-11-29 18:11:02 -0800</creation_ts>
          <short_desc>Inform clients when editable image attachment backing data changes</short_desc>
          <delta_ts>2018-11-29 22:31:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1483333</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-29 18:11:02 -0800</bug_when>
    <thetext>Inform clients when editable image attachment backing data changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483334</commentid>
    <comment_count>1</comment_count>
      <attachid>356102</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-29 18:11:21 -0800</bug_when>
    <thetext>Created attachment 356102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483335</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-29 18:11:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/46350277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483336</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-29 18:13:53 -0800</bug_when>
    <thetext>Attachment 356102 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/ios/PencilKitTestSPI.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483340</commentid>
    <comment_count>4</comment_count>
      <attachid>356102</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-29 18:24:58 -0800</bug_when>
    <thetext>Comment on attachment 356102
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=356102&amp;action=review

&gt; Source/WebKit/UIProcess/API/Cocoa/APIAttachmentCocoa.mm:67
&gt; +    m_webPage-&gt;didInvalidateDataForAttachment(*this);

Should we also notify the delegate when Attachment::setFileWrapperGenerator invalidates the file wrapper?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483408</commentid>
    <comment_count>5</comment_count>
      <attachid>356133</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-29 22:03:43 -0800</bug_when>
    <thetext>Created attachment 356133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483409</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-29 22:06:46 -0800</bug_when>
    <thetext>Attachment 356133 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/ios/PencilKitTestSPI.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483412</commentid>
    <comment_count>7</comment_count>
      <attachid>356133</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-29 22:31:13 -0800</bug_when>
    <thetext>Comment on attachment 356133
Patch

Clearing flags on attachment: 356133

Committed r238726: &lt;https://trac.webkit.org/changeset/238726&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1483413</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-29 22:31:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356102</attachid>
            <date>2018-11-29 18:11:21 -0800</date>
            <delta_ts>2018-11-29 22:03:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192206-20181129181120.patch</filename>
            <type>text/plain</type>
            <size>21705</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ1YzVkZGExMWY5YWJlN2Iy
ZDY4YTcwYTMwZmFkOWI0ZDYzOGYyYzUuLjYxNTQ3MzlhYjdiY2ZkMjYzNjg0MzZlNWM1MDI0MTli
ZDRhMWY0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMTEtMjkgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5mb3JtIGNsaWVudHMg
d2hlbiBlZGl0YWJsZSBpbWFnZSBhdHRhY2htZW50IGJhY2tpbmcgZGF0YSBjaGFuZ2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIyMDYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ2MzUwMjc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElBdHRhY2htZW50
Q29jb2EubW06CisgICAgICAgIChBUEk6OkF0dGFjaG1lbnQ6OmludmFsaWRhdGVHZW5lcmF0ZWRG
aWxlV3JhcHBlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfZGlkSW52YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50Ol0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbENvY29hOjpkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnQ6OmRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkSW52
YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIFBsdW1iIGZpbGUtd3JhcHBlci1pbnZhbGlkYXRpb24gdGhyb3VnaCBm
cm9tIEFQSUF0dGFjaG1lbnQgdG8gV0tVSURlbGVnYXRlLgorCiAyMDE4LTExLTI5ICBSeWFuIEhh
ZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyMzg3MTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvQVBJQXR0YWNobWVudENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL0FQSUF0dGFjaG1lbnRDb2NvYS5tbQppbmRleCA2MjU1YWYwYWU5NGUwM2U2MmNjYTY2
MGU1MDQ3N2U4MWNiNTY5ZTRiLi5hZmFhMDljOTdkZDE1ZDRkNWJhYmFlY2U5M2NiOGU1YjljNWY0
YjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQXR0
YWNobWVudENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9B
UElBdHRhY2htZW50Q29jb2EubW0KQEAgLTY0LDYgKzY0LDcgQEAgdm9pZCBBdHRhY2htZW50Ojpp
bnZhbGlkYXRlR2VuZXJhdGVkRmlsZVdyYXBwZXIoKQogewogICAgIEFTU0VSVChtX2ZpbGVXcmFw
cGVyR2VuZXJhdG9yKTsKICAgICBtX2ZpbGVXcmFwcGVyID0gbmlsOworICAgIG1fd2ViUGFnZS0+
ZGlkSW52YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50KCp0aGlzKTsKIH0KIAogV1RGOjpTdHJpbmcg
QXR0YWNobWVudDo6bWltZVR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggODE4NjFiYzQ3
ZmRhNzVlMTVhZTg5MjhjYjNhYzJhMzIyMmUyZTAxNi4uOTk3NDY4Y2FkYWRkYTQwMTllZDI2Y2Mw
OGJiZTc4NjQ0YTQxODc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMTYsNiArMTE2LDcgQEAgc3Ry
dWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRSZW1vdmVBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkSW5zZXJ0QXR0YWNobWVudDooX1dLQXR0YWNobWVudCAq
KWF0dGFjaG1lbnQgd2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQ6KF9XS0F0dGFjaG1lbnQg
KilhdHRhY2htZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJl
c2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdpdGhVc2VySW5mbzooaWQg
PE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCks
IGlvcygxMi4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCmluZGV4IGQ5ZmNhNGQwM2MyY2ZiZTNhMjRiOTY5ZmExMjI2NjFhZWFhNzBlNDMu
Ljg4MTQzNDIwNjYzMmVlNTdjNzIyM2Y4NWUzYTIyZDJjMDQwYzFjMWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTMxNCw2ICsxMzE0
LDEzIEBAIC0gKHZvaWQpX2RpZFJlbW92ZUF0dGFjaG1lbnQ6KEFQSTo6QXR0YWNobWVudCYpYXR0
YWNobWVudAogICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzZWxmIGRpZFJlbW92ZUF0dGFj
aG1lbnQ6d3JhcHBlcihhdHRhY2htZW50KV07CiB9CiAKKy0gKHZvaWQpX2RpZEludmFsaWRhdGVE
YXRhRm9yQXR0YWNobWVudDooQVBJOjpBdHRhY2htZW50JilhdHRhY2htZW50Cit7CisgICAgaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KXNlbGYuVUlEZWxlZ2F0ZTsKKyAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQ6KV0p
CisgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZGlkSW52YWxpZGF0ZURhdGFGb3JB
dHRhY2htZW50OndyYXBwZXIoYXR0YWNobWVudCldOworfQorCiAjZW5kaWYgLy8gRU5BQkxFKEFU
VEFDSE1FTlRfRUxFTUVOVCkKIAogI3ByYWdtYSBtYXJrIGlPUy1zcGVjaWZpYyBtZXRob2RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRl
cm5hbC5oCmluZGV4IDcxZTI5MWYzMDA4MDFhNTYzYmM0NzI5ODllOWI4MGM1ZjI0M2ZlMDkuLmIw
NjViMzUxOGY4MjljZWYzNTNkNzgxYzFhYTAwYTY5OTQ4MDJkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0x
ODEsNiArMTgxLDcgQEAgY2xhc3MgVVJMOwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQp
CiAtICh2b2lkKV9kaWRSZW1vdmVBdHRhY2htZW50OihBUEk6OkF0dGFjaG1lbnQmKWF0dGFjaG1l
bnQ7CiAtICh2b2lkKV9kaWRJbnNlcnRBdHRhY2htZW50OihBUEk6OkF0dGFjaG1lbnQmKWF0dGFj
aG1lbnQgd2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2U7CistICh2b2lkKV9kaWRJbnZhbGlk
YXRlRGF0YUZvckF0dGFjaG1lbnQ6KEFQSTo6QXR0YWNobWVudCYpYXR0YWNobWVudDsKICNlbmRp
ZgogCiAtICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZzooY29uc3QgV2ViS2l0OjpTYWZl
QnJvd3NpbmdXYXJuaW5nJil3YXJuaW5nIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFdlYkNvcmU6OlVS
TD4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLmgKaW5kZXggODM5NDhkODAwZjYxYWY1MDhi
ZmRhNDBkYTc1NzUyNGFlMDRjMDFjNC4uN2I0YTJkYWMyNTBjOTBhYWExY2MyODlhYjRjNDdhMTIz
ZmVmYzRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNs
aWVudEltcGxDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VD
bGllbnRJbXBsQ29jb2EuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEFU
VEFDSE1FTlRfRUxFTUVOVCkKICAgICB2b2lkIGRpZEluc2VydEF0dGFjaG1lbnQoQVBJOjpBdHRh
Y2htZW50JiwgY29uc3QgU3RyaW5nJiBzb3VyY2UpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVtb3Zl
QXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGRpZEludmFsaWRh
dGVEYXRhRm9yQXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQmKSBmaW5hbDsKICAgICBOU0ZpbGVX
cmFwcGVyICphbGxvY0ZpbGVXcmFwcGVySW5zdGFuY2UoKSBjb25zdCBmaW5hbDsKICAgICBOU1Nl
dCAqc2VyaWFsaXphYmxlRmlsZVdyYXBwZXJDbGFzc2VzKCkgY29uc3QgZmluYWw7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBs
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENv
Y29hLm1tCmluZGV4IGVmZTRlODFiY2MyOTgxMTEzMmEzMTIxMGJiYWNkYzgxNjg0MDRhNGEuLjA3
ZjAyYzM0Zjc0NTk4ZmI4NWI5YmZjZWM3YTU1ZTNjYWE3MTA1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQpAQCAtNjYs
NiArNjYsMTUgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbENvY29hOjpkaWRSZW1vdmVBdHRhY2htZW50
KEFQSTo6QXR0YWNobWVudCYgYXR0YWNobWVudCkKICNlbmRpZgogfQogCit2b2lkIFBhZ2VDbGll
bnRJbXBsQ29jb2E6OmRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudChBUEk6OkF0dGFjaG1l
bnQmIGF0dGFjaG1lbnQpCit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICBbbV93ZWJWaWV3IF9k
aWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQ6YXR0YWNobWVudF07CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShhdHRhY2htZW50KTsKKyNlbmRpZgorfQorCiBOU0ZpbGVXcmFwcGVyICpQYWdl
Q2xpZW50SW1wbENvY29hOjphbGxvY0ZpbGVXcmFwcGVySW5zdGFuY2UoKSBjb25zdAogewogI2lm
IFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggN2Rl
ZmE0MDI5YjU1MGRkOGZjOWY1NjYwNzNjZDNmMzIyYTM2MDA0NC4uZWU4NTJiMjQ5OTc3YjhmZDcw
NzAyZDg4Nzg1NDEyNzMwOGYxOTRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aApAQCAtNDU0LDYgKzQ1NCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRBdHRhY2htZW50KEFQSTo6QXR0YWNobWVu
dCYsIGNvbnN0IFN0cmluZyYgc291cmNlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3Zl
QXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkSW52
YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50KEFQSTo6QXR0YWNobWVudCYpIHsgfQogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIHZpcnR1YWwgTlNGaWxlV3JhcHBlciAqYWxsb2NGaWxlV3JhcHBlcklu
c3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgTlNTZXQgKnNl
cmlhbGl6YWJsZUZpbGVXcmFwcGVyQ2xhc3NlcygpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGM3OTFlYWJiNGRl
ZjM1ODBhNjljYjFkNmI3YmZkYTIxOTI0Nzk3ODEuLjVmZmIyYmZmNmU2NWEyYmMwMDBjMDE4OWJh
ZWUwYjNiMThjZTM5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtODExNSw2ICs4MTE1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXJpYWxpemVkQXR0
YWNobWVudERhdGFGb3JJZGVudGlmaWVycyhjb25zdCBWZWN0b3I8U3RyaW5nPiYKICAgICB9CiB9
CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQoQVBJ
OjpBdHRhY2htZW50JiBhdHRhY2htZW50KQoreworICAgIHBhZ2VDbGllbnQoKS5kaWRJbnZhbGlk
YXRlRGF0YUZvckF0dGFjaG1lbnQoYXR0YWNobWVudCk7Cit9CisKIFdlYlBhZ2VQcm94eTo6U2hv
dWxkVXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMgV2ViUGFnZVByb3h5Ojp3aWxsVXBkYXRlQXR0
YWNobWVudEF0dHJpYnV0ZXMoY29uc3QgQVBJOjpBdHRhY2htZW50JiBhdHRhY2htZW50KQogewog
I2lmIEhBVkUoUEVOQ0lMS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCAwYWUxZmJiYTFkOWE1Y2I1OGZhMzkyNjUwNjcyNjM3MWY2NmM3ODA0Li5iNzJiMDA2MDI4
OThjOTc3YWNhNWY3ZTI2MDE5YjNhODEyM2Y0MDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMTM3MCw2ICsxMzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBk
YXRlQXR0YWNobWVudEF0dHJpYnV0ZXMoY29uc3QgQVBJOjpBdHRhY2htZW50JiwgRnVuY3Rpb248
dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAgICAgdm9pZCBzZXJpYWxpemVkQXR0YWNo
bWVudERhdGFGb3JJZGVudGlmaWVycyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFZlY3RvcjxXZWJD
b3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhdGE+Jik7CiAgICAgdm9pZCByZWdpc3RlckF0dGFj
aG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkSW52YWxpZGF0ZURh
dGFGb3JBdHRhY2htZW50KEFQSTo6QXR0YWNobWVudCYpOwogCiAgICAgZW51bSBjbGFzcyBTaG91
bGRVcGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgU2hv
dWxkVXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMgd2lsbFVwZGF0ZUF0dGFjaG1lbnRBdHRyaWJ1
dGVzKGNvbnN0IEFQSTo6QXR0YWNobWVudCYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhNDY4YWM0YzdiMjlhNDk4NjE0ZmQ3OTQyZGM3YjNh
MGFiNzAzN2QuLmM4NjEyZmZlNjBjMjYzNWIwNTUwZmNkYmNkZDA1YjMyODNhMTkyZjUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NSBAQAorMjAxOC0xMS0yOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
KworICAgICAgICBJbmZvcm0gY2xpZW50cyB3aGVuIGVkaXRhYmxlIGltYWdlIGF0dGFjaG1lbnQg
YmFja2luZyBkYXRhIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MjIwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYzNTAyNzc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tOgor
ICAgICAgICAoLVtBdHRhY2htZW50VXBkYXRlT2JzZXJ2ZXIgaW5pdF0pOgorICAgICAgICAoLVtB
dHRhY2htZW50VXBkYXRlT2JzZXJ2ZXIgZGF0YUludmFsaWRhdGVkXSk6CisgICAgICAgICgtW0F0
dGFjaG1lbnRVcGRhdGVPYnNlcnZlciBfd2ViVmlldzpkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFj
aG1lbnQ6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpPYnNlcnZlQXR0YWNobWVudFVwZGF0
ZXNGb3JTY29wZTo6ZXhwZWN0QXR0YWNobWVudEludmFsaWRhdGlvbik6CisgICAgICAgICh3ZWJW
aWV3Rm9yVGVzdGluZ0F0dGFjaG1lbnRzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmZvckVh
Y2hWaWV3SW5IaWVyYXJjaHkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZmluZEVkaXRhYmxl
SW1hZ2VDYW52YXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZHJhd1NxdWFyZUluRWRpdGFi
bGVJbWFnZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL2lvcy9QZW5jaWxLaXRUZXN0U1BJLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSB0
ZXN0IGVuc3VyaW5nIHRoYXQgd2UgZ2V0IGFuIGludmFsaWRhdGlvbiBjYWxsYmFjayB3aGVuIGFu
IGVkaXRhYmxlIGltYWdlIGlzIGNoYW5nZWQuCisKIDIwMTgtMTEtMjkgIEZ1amlpIEhpcm9ub3Jp
ICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjM4NDQ1
KVtCdWlsZGJvdF0gVW5rbm93biBidWlsZGVyICdHVEsgTGludXggMzItYml0IFJlbGVhc2UnIGlu
IHNjaGVkdWxlciAndHJ1bmsnCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDExZDY0NzgxZjJk
YTI1OGJiNDQ5MzFjM2FlMzU3N2IxNzliODI0MDYuLjhlMmE0ZTNjYTBmNmYxZDM1OTU4MzAwMTNk
YjZlMDlkNTQ1MzM0ODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzY4LDYgKzEzNjgs
NyBAQAogCQkyRDIxRkU1ODFGMDQ2NDI4MDBCNThFN0QgLyogV0tQREZWaWV3U3RhYmxlUHJlc2Vu
dGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1BERlZpZXdTdGFibGVQcmVzZW50YXRpb25VcGRhdGVDYWxsYmFjay5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ0Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8qIFdL
VGh1bWJuYWlsVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdLVGh1bWJuYWlsVmlldy5tbTsgcGF0aCA9IFdlYktpdC9XS1RodW1ibmFpbFZpZXcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENTFBMEM1MUM4QkYwMDQwMDc2NUM0NSAvKiBE
T01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRDYxRUMzMDIxQjBCNzVDMDBBN0QxQ0IgLyogUGVuY2lsS2l0VGVz
dFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQZW5jaWxLaXRUZXN0U1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJENjQwQjU0MTc4NzVERkYwMEJGQUY5OSAvKiBTY3JvbGxQaW5uaW5n
QmVoYXZpb3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9s
bFBpbm5pbmdCZWhhdmlvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDgx
MDRDQjFCRUMxM0U3MDAyMERBNDYgLyogRmluZEluUGFnZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpbmRJblBhZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEODM4QjFFMUVFRjNBNUIwMDlCOTgwRSAvKiBXS0NvbnRlbnRWaWV3RWRpdGlu
Z0FjdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Nv
bnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNTY0LDYgKzI1NjUsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjRENEYzQjQxRTRFMkJD
QjAwQkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tICovLAogCQkJCTJFNzc2NUND
MTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tICovLAorCQkJCTJENjFFQzMwMjFCMEI3NUMw
MEE3RDFDQiAvKiBQZW5jaWxLaXRUZXN0U1BJLmggKi8sCiAJCQkJRjQ1MTdCNjUyMDU0QzQ5NTAw
QzI2NzIxIC8qIFRlc3RXS1dlYlZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJRjQ1MTdCNjYyMDU0
QzQ5NTAwQzI2NzIxIC8qIFRlc3RXS1dlYlZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCUY0OTMy
NDdDMUY0NERGOEQwMDZGNDMzNiAvKiBVSUtpdFNQSS5oICovLApAQCAtMzc5NSw3ICszNzk3LDYg
QEAKIAkJCQlGNDVCNjNGRTFGMTlENDEwMDA5RDM4QjkgLyogQWN0aW9uU2hlZXRUZXN0cy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTM3RTdERDY0MUVBMDZGRjIwMDlCMzk2RCAvKiBBZGRpdGlvbmFs
UmVhZEFjY2Vzc0FsbG93ZWRVUkxzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkMyMTgx
MDBFMDAwMDRBMzlBIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNjM3MjgxQTcyMUFFMTM4NjAwOUUwREU2IC8qIERvd25sb2FkUHJvZ3Jlc3Mu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTkwOUE3RDFEODc3NDgwMDA3RTEwRjggLyogQWZmaW5l
VHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExREY3NDMyMUM0MUI2NTgwMEEyRjRE
MCAvKiBBbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQky
REU3MUFGRTFENDlDMEJEMDA5MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gaW4gU291cmNlcyAq
LywKQEAgLTM4ODEsNiArMzg4Miw3IEBACiAJCQkJNTE4RUU1MTgyMEE3OENFMjAwRTAyNEYzIC8q
IERvdWJsZURlZmVyc0xvYWRpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YyMzFBNDEx
QUY2MDA0NDdDNEMgLyogRG93bmxvYWQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFRTFB
NDExQUU2MDA0NDdDNEMgLyogRG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTYzNzI4MUE3MjFBRTEzODYwMDlFMERFNiAvKiBEb3dubG9hZFByb2dy
ZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjRENEYzQjYxRTRFMkJDQjAwQkIyNzY3IC8qIERy
YWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ2MTI4QjcyMTFD
OEVENTAwRDlGQURCIC8qIERyYWdBbmREcm9wU2ltdWxhdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjQ2MTI4RDcyMTFFNDg5QzAwRDlGQURCIC8qIERyYWdBbmREcm9wVGVzdHMubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCmluZGV4IGQ0OGY0M2VmNzIxMjFlMmI1OTdh
ODc1NzgwMzlmNzc4ZTk0N2Y1NzAuLjA0OGI5MDc4YzU2ZDFkYjA0Mzk2ZTNiYzUwNTRjZDA4ODgz
ZWVjM2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tBdHRhY2htZW50VGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAi
Y29uZmlnLmgiCiAKICNpbXBvcnQgIkRyYWdBbmREcm9wU2ltdWxhdG9yLmgiCisjaW1wb3J0ICJQ
ZW5jaWxLaXRUZXN0U1BJLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9y
dCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgpA
QCAtNDcsMTEgKzQ4LDEzIEBACiBAaW50ZXJmYWNlIEF0dGFjaG1lbnRVcGRhdGVPYnNlcnZlciA6
IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU0FycmF5ICppbnNlcnRlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNBcnJheSAqcmVtb3ZlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNB
cnJheSAqZGF0YUludmFsaWRhdGVkOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gQXR0YWNobWVu
dFVwZGF0ZU9ic2VydmVyIHsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8X1dLQXR0YWNo
bWVudCAqPj4gX2luc2VydGVkOwogICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheTxfV0tBdHRh
Y2htZW50ICo+PiBfcmVtb3ZlZDsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8X1dLQXR0
YWNobWVudCAqPj4gX2RhdGFJbnZhbGlkYXRlZDsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPj4gX2lkZW50aWZpZXJUb1NvdXJjZU1hcDsK
IH0KIApAQCAtNjAsNiArNjMsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdAogICAgIGlmIChzZWxm
ID0gW3N1cGVyIGluaXRdKSB7CiAgICAgICAgIF9pbnNlcnRlZCA9IGFkb3B0TlMoW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdF0pOwogICAgICAgICBfcmVtb3ZlZCA9IGFkb3B0TlMoW1tOU011
dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgICAgICBfZGF0YUludmFsaWRhdGVkID0gYWRv
cHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIF9pZGVudGlmaWVy
VG9Tb3VyY2VNYXAgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0p
OwogICAgIH0KICAgICByZXR1cm4gc2VsZjsKQEAgLTc1LDYgKzc5LDExIEBAIC0gKE5TQXJyYXk8
X1dLQXR0YWNobWVudCAqPiAqKXJlbW92ZWQKICAgICByZXR1cm4gX3JlbW92ZWQuZ2V0KCk7CiB9
CiAKKy0gKE5TQXJyYXk8X1dLQXR0YWNobWVudCAqPiAqKWRhdGFJbnZhbGlkYXRlZAoreworICAg
IHJldHVybiBfZGF0YUludmFsaWRhdGVkLmdldCgpOworfQorCiAtIChOU1N0cmluZyAqKXNvdXJj
ZUZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcgogewogICAgIHJldHVybiBbX2lk
ZW50aWZpZXJUb1NvdXJjZU1hcCBvYmplY3RGb3JLZXk6aWRlbnRpZmllcl07CkBAIC05Miw2ICsx
MDEsMTEgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZW1vdmVB
dHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWMKICAgICBbX3JlbW92ZWQgYWRkT2JqZWN0
OmF0dGFjaG1lbnRdOwogfQogCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1l
bnQKK3sKKyAgICBbX2RhdGFJbnZhbGlkYXRlZCBhZGRPYmplY3Q6YXR0YWNobWVudF07Cit9CisK
IEBlbmQKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpAQCAtMTI2LDYgKzE0MCwxNCBAQCBw
dWJsaWM6CiAgICAgICAgIEVYUEVDVF9UUlVFKGluc2VydGVkQXR0YWNobWVudHNNYXRjaCk7CiAg
ICAgfQogCisgICAgdm9pZCBleHBlY3RBdHRhY2htZW50SW52YWxpZGF0aW9uKE5TQXJyYXk8X1dL
QXR0YWNobWVudCAqPiAqZGF0YUludmFsaWRhdGVkKQorICAgIHsKKyAgICAgICAgQk9PTCBpbnZh
bGlkYXRlZEF0dGFjaG1lbnRzTWF0Y2ggPSBbW05TU2V0IHNldFdpdGhBcnJheTpvYnNlcnZlcigp
LmRhdGFJbnZhbGlkYXRlZF0gaXNFcXVhbDpbTlNTZXQgc2V0V2l0aEFycmF5OmRhdGFJbnZhbGlk
YXRlZF1dOworICAgICAgICBpZiAoIWludmFsaWRhdGVkQXR0YWNobWVudHNNYXRjaCkKKyAgICAg
ICAgICAgIE5TTG9nKEAiRXhwZWN0ZWQgYXR0YWNobWVudHMgd2l0aCBpbnZhbGlkYXRlZCBkYXRh
OiAlQCB0byBtYXRjaCAlQC4iLCBvYnNlcnZlcigpLmRhdGFJbnZhbGlkYXRlZCwgZGF0YUludmFs
aWRhdGVkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoaW52YWxpZGF0ZWRBdHRhY2htZW50c01hdGNo
KTsKKyAgICB9CisKICAgICB2b2lkIGV4cGVjdFNvdXJjZUZvcklkZW50aWZpZXIoTlNTdHJpbmcg
KmV4cGVjdGVkU291cmNlLCBOU1N0cmluZyAqaWRlbnRpZmllcikKICAgICB7CiAgICAgICAgIE5T
U3RyaW5nICpvYnNlcnZlZFNvdXJjZSA9IFtvYnNlcnZlcigpIHNvdXJjZUZvcklkZW50aWZpZXI6
aWRlbnRpZmllcl07CkBAIC0xNTMsNiArMTc1LDcgQEAgc3RhdGljIE5TU3RyaW5nICphdHRhY2ht
ZW50RWRpdGluZ1Rlc3RNYXJrdXAgPSBAIjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PScK
IHN0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2ht
ZW50cyhDR1NpemUgd2ViVmlld1NpemUsIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3Vy
YXRpb24pCiB7CiAgICAgY29uZmlndXJhdGlvbi5fYXR0YWNobWVudEVsZW1lbnRFbmFibGVkID0g
WUVTOworICAgIGNvbmZpZ3VyYXRpb24uX2VkaXRhYmxlSW1hZ2VzRW5hYmxlZCA9IFlFUzsKICAg
ICBXS1ByZWZlcmVuY2VzU2V0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKChfX2JyaWRnZSBX
S1ByZWZlcmVuY2VzUmVmKVtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgWUVTKTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgd2ViVmlld1NpemUud2lkdGgsIHdlYlZpZXdTaXplLmhlaWdo
dCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CkBAIC0xNzc4LDYgKzE4MDEsNzYgQEAg
VEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgRHJhZ0F0dGFjaG1lbnRJbnNlcnRlZEFzRGF0YSkK
ICAgICBbZHJhZ0FuZERyb3BTaW11bGF0b3IgZW5kRGF0YVRyYW5zZmVyXTsKIH0KIAorI2lmIEhB
VkUoUEVOQ0lMS0lUKQorc3RhdGljIEJPT0wgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeShVSVZpZXcg
KnZpZXcsIHZvaWQoXm1hcEZ1bmN0aW9uKShVSVZpZXcgKnN1YnZpZXcsIEJPT0wgKnN0b3ApKQor
eworICAgIEJPT0wgc3RvcCA9IE5POworICAgIG1hcEZ1bmN0aW9uKHZpZXcsICZzdG9wKTsKKyAg
ICBpZiAoc3RvcCkKKyAgICAgICAgcmV0dXJuIFlFUzsKKworICAgIGZvciAoVUlWaWV3ICpzdWJ2
aWV3IGluIHZpZXcuc3Vidmlld3MpIHsKKyAgICAgICAgc3RvcCA9IGZvckVhY2hWaWV3SW5IaWVy
YXJjaHkoc3VidmlldywgbWFwRnVuY3Rpb24pOworICAgICAgICBpZiAoc3RvcCkKKyAgICAgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gc3RvcDsKK30KKworc3RhdGljIFBLQ2FudmFz
VmlldyAqZmluZEVkaXRhYmxlSW1hZ2VDYW52YXMoV0tXZWJWaWV3ICp3ZWJWaWV3KQoreworICAg
IENsYXNzIHBrQ2FudmFzVmlld0NsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJQS0NhbnZhc1Zp
ZXciKTsKKyAgICBfX2Jsb2NrIFBLQ2FudmFzVmlldyAqY2FudmFzVmlldyA9IG5pbDsKKyAgICBm
b3JFYWNoVmlld0luSGllcmFyY2h5KHdlYlZpZXcud2luZG93LCBeKFVJVmlldyAqc3Vidmlldywg
Qk9PTCAqc3RvcCkgeworICAgICAgICBpZiAoIVtzdWJ2aWV3IGlzS2luZE9mQ2xhc3M6cGtDYW52
YXNWaWV3Q2xhc3NdKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhbnZhc1ZpZXcg
PSAoUEtDYW52YXNWaWV3ICopc3VidmlldzsKKyAgICAgICAgKnN0b3AgPSBZRVM7CisgICAgfSk7
CisgICAgcmV0dXJuIGNhbnZhc1ZpZXc7Cit9CisKK3N0YXRpYyB2b2lkIGRyYXdTcXVhcmVJbkVk
aXRhYmxlSW1hZ2UoV0tXZWJWaWV3ICp3ZWJWaWV3KQoreworICAgIENsYXNzIHBrRHJhd2luZ0Ns
YXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJQS0RyYXdpbmciKTsKKyAgICBDbGFzcyBwa0lua0Ns
YXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJQS0luayIpOworICAgIENsYXNzIHBrU3Ryb2tlQ2xh
c3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIlBLU3Ryb2tlIik7CisKKyAgICBQS0NhbnZhc1ZpZXcg
KmNhbnZhc1ZpZXcgPSBmaW5kRWRpdGFibGVJbWFnZUNhbnZhcyh3ZWJWaWV3KTsKKyAgICBSZXRh
aW5QdHI8UEtEcmF3aW5nPiBkcmF3aW5nID0gY2FudmFzVmlldy5kcmF3aW5nID86IGFkb3B0TlMo
W1twa0RyYXdpbmdDbGFzcyBhbGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+
IHBhdGggPSBhZG9wdENGKENHUGF0aENyZWF0ZVdpdGhSZWN0KENHUmVjdE1ha2UoMCwgMCwgNTAs
IDUwKSwgTlVMTCkpOworICAgIFJldGFpblB0cjxQS0luaz4gaW5rID0gW3BrSW5rQ2xhc3MgaW5r
V2l0aFR5cGU6MCBjb2xvcjpVSUNvbG9yLmdyZWVuQ29sb3Igd2VpZ2h0OjEwMC4wXTsKKyAgICBS
ZXRhaW5QdHI8UEtTdHJva2U+IHN0cm9rZSA9IGFkb3B0TlMoW1twa1N0cm9rZUNsYXNzIGFsbG9j
XSBfaW5pdFdpdGhQYXRoOnBhdGguZ2V0KCkgaW5rOmluay5nZXQoKSBpbnB1dFNjYWxlOjFdKTsK
KyAgICBbZHJhd2luZyBfYWRkU3Ryb2tlOnN0cm9rZS5nZXQoKV07CisKKyAgICBbY2FudmFzVmll
dyBzZXREcmF3aW5nOmRyYXdpbmcuZ2V0KCldOworfQorCitURVNUKFdLQXR0YWNobWVudFRlc3Rz
SU9TLCBFZGl0YWJsZUltYWdlQXR0YWNobWVudERhdGFJbnZhbGlkYXRpb24pCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOworCisgICAgUmV0YWlu
UHRyPF9XS0F0dGFjaG1lbnQ+IGF0dGFjaG1lbnQ7CisKKyAgICB7CisgICAgICAgIE9ic2VydmVB
dHRhY2htZW50VXBkYXRlc0ZvclNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOworICAgICAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpA
Ikluc2VydEVkaXRhYmxlSW1hZ2UiIGFyZ3VtZW50Om5pbF0pOworICAgICAgICBFWFBFQ1RfRVEo
b2JzZXJ2ZXIub2JzZXJ2ZXIoKS5pbnNlcnRlZC5jb3VudCwgMUxVKTsKKyAgICAgICAgYXR0YWNo
bWVudCA9IG9ic2VydmVyLm9ic2VydmVyKCkuaW5zZXJ0ZWQuZmlyc3RPYmplY3Q7CisgICAgfQor
CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworCisgICAgewor
ICAgICAgICBPYnNlcnZlQXR0YWNobWVudFVwZGF0ZXNGb3JTY29wZSBvYnNlcnZlcih3ZWJWaWV3
LmdldCgpKTsKKyAgICAgICAgZHJhd1NxdWFyZUluRWRpdGFibGVJbWFnZSh3ZWJWaWV3LmdldCgp
KTsKKyAgICAgICAgb2JzZXJ2ZXIuZXhwZWN0QXR0YWNobWVudEludmFsaWRhdGlvbihAWyBhdHRh
Y2htZW50LmdldCgpIF0pOworICAgIH0KK30KKworI2VuZGlmIC8vIEhBVkUoUEVOQ0lMS0lUKQor
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvUGVuY2lsS2l0VGVz
dFNQSS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvUGVuY2lsS2l0VGVzdFNQSS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI1ODM2OWZlZWI0NjQ0ZjM4YTk5YjZmOGQ1YTMwNTFmNzNkMzlkN2QKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9QZW5jaWxLaXRUZXN0U1BJLmgKQEAg
LTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYv
UGxhdGZvcm0uaD4KKworI2lmIEhBVkUoUEVOQ0lMS0lUKQorCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKworI2ltcG9ydCA8UGVuY2lsS2l0L1BlbmNpbEtpdC5oPgorCisjaW1wb3J0IDxQ
ZW5jaWxLaXQvUEtEcmF3aW5nX1ByaXZhdGUuaD4KKyNpbXBvcnQgPFBlbmNpbEtpdC9QS1N0cm9r
ZV9Qcml2YXRlLmg+CisKKyNlbHNlCisKK3R5cGVkZWYgTlNJbnRlZ2VyIFBLSW5rVHlwZTsKKwor
QGludGVyZmFjZSBQS0luayA6IE5TT2JqZWN0CisrIChQS0luayAqKWlua1dpdGhUeXBlOihQS0lu
a1R5cGUpdHlwZSBjb2xvcjooVUlDb2xvciAqKWNvbG9yIHdlaWdodDooQ0dGbG9hdCl3ZWlnaHQ7
CitAZW5kCisKK0BpbnRlcmZhY2UgUEtTdHJva2UgOiBOU09iamVjdAorLSAoaWQpX2luaXRXaXRo
UGF0aDooQ0dQYXRoUmVmKXBhdGggaW5rOihQS0luayAqKWluayBpbnB1dFNjYWxlOihDR0Zsb2F0
KWlucHV0U2NhbGU7CitAZW5kCisKK0BpbnRlcmZhY2UgUEtEcmF3aW5nIDogTlNPYmplY3QKKy0g
KFBLU3Ryb2tlICopX2FkZFN0cm9rZTooUEtTdHJva2UgKilzdHJva2U7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8UEtTdHJva2UgKj4gKl9hbGxTdHJva2VzOworQGVu
ZAorCitAaW50ZXJmYWNlIFBLQ2FudmFzVmlldyA6IFVJVmlldworQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIFBLRHJhd2luZyAqZHJhd2luZzsKK0BlbmQKKworI2VuZGlmIC8vIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisKKyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356133</attachid>
            <date>2018-11-29 22:03:43 -0800</date>
            <delta_ts>2018-11-29 22:31:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192206-20181129220342.patch</filename>
            <type>text/plain</type>
            <size>21972</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ1YzVkZGExMWY5YWJlN2Iy
ZDY4YTcwYTMwZmFkOWI0ZDYzOGYyYzUuLjE1ZWVmMzM2MWIwMDA5M2RiNmFjNzU0YWZiNjllMTk3
MTZiZGQwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMTEtMjkgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5mb3JtIGNsaWVudHMg
d2hlbiBlZGl0YWJsZSBpbWFnZSBhdHRhY2htZW50IGJhY2tpbmcgZGF0YSBjaGFuZ2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIyMDYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ2MzUwMjc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNv
biBIc2llaC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQXR0YWNobWVudENv
Y29hLm1tOgorICAgICAgICAoQVBJOjpBdHRhY2htZW50OjppbnZhbGlkYXRlR2VuZXJhdGVkRmls
ZVdyYXBwZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2RpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudDpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGxDb2NvYTo6ZGlkSW52YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
OjpkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEludmFs
aWRhdGVEYXRhRm9yQXR0YWNobWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICBQbHVtYiBmaWxlLXdyYXBwZXItaW52YWxpZGF0aW9uIHRocm91Z2ggZnJv
bSBBUElBdHRhY2htZW50IHRvIFdLVUlEZWxlZ2F0ZS4KKwogMjAxOC0xMS0yOSAgUnlhbiBIYWRk
YWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjM4NzEzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL0FQSUF0dGFjaG1lbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9BUElBdHRhY2htZW50Q29jb2EubW0KaW5kZXggNjI1NWFmMGFlOTRlMDNlNjJjY2E2NjBl
NTA0NzdlODFjYjU2OWU0Yi4uMjllYzY5YTE2YmJiNzNkNDhhNzVlZWYxZjcxOGM4NzFiOGYwNTY0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSUF0dGFj
aG1lbnRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJ
QXR0YWNobWVudENvY29hLm1tCkBAIC02NCw2ICs2NCw3IEBAIHZvaWQgQXR0YWNobWVudDo6aW52
YWxpZGF0ZUdlbmVyYXRlZEZpbGVXcmFwcGVyKCkKIHsKICAgICBBU1NFUlQobV9maWxlV3JhcHBl
ckdlbmVyYXRvcik7CiAgICAgbV9maWxlV3JhcHBlciA9IG5pbDsKKyAgICBtX3dlYlBhZ2UtPmRp
ZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudCgqdGhpcyk7CiB9CiAKIFdURjo6U3RyaW5nIEF0
dGFjaG1lbnQ6Om1pbWVUeXBlKCkgY29uc3QKQEAgLTE5Myw2ICsxOTQsNyBAQCB2b2lkIEF0dGFj
aG1lbnQ6OnNldEZpbGVXcmFwcGVyR2VuZXJhdG9yKEZ1bmN0aW9uPFJldGFpblB0cjxOU0ZpbGVX
cmFwcGVyPih2b2lkKQogewogICAgIG1fZmlsZVdyYXBwZXJHZW5lcmF0b3IgPSBXVEZNb3ZlKGZp
bGVXcmFwcGVyR2VuZXJhdG9yKTsKICAgICBtX2ZpbGVXcmFwcGVyID0gbmlsOworICAgIG1fd2Vi
UGFnZS0+ZGlkSW52YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50KCp0aGlzKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA4MTg2MWJjNDdmZGE3NWUxNWFlODkyOGNi
M2FjMmEzMjIyZTJlMDE2Li45OTc0NjhjYWRhZGRhNDAxOWVkMjZjYzA4YmJlNzg2NDRhNDE4Nzkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmgKQEAgLTExNiw2ICsxMTYsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRz
OwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlbW92ZUF0dGFj
aG1lbnQ6KF9XS0F0dGFjaG1lbnQgKilhdHRhY2htZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWRJbnNlcnRBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCB3aXRo
U291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCks
IGlvcygxMi4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZElu
dmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1lbnQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVzaWduSW5wdXRFbGVtZW50
U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlV2l0aFVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+
KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
ZDlmY2E0ZDAzYzJjZmJlM2EyNGI5NjlmYTEyMjY2MWFlYWE3MGU0My4uODgxNDM0MjA2NjMyZWU1
N2M3MjIzZjg1ZTNhMjJkMmMwNDBjMWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMzE0LDYgKzEzMTQsMTMgQEAgLSAodm9pZClf
ZGlkUmVtb3ZlQXR0YWNobWVudDooQVBJOjpBdHRhY2htZW50JilhdHRhY2htZW50CiAgICAgICAg
IFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZGlkUmVtb3ZlQXR0YWNobWVudDp3cmFwcGVyKGF0
dGFjaG1lbnQpXTsKIH0KIAorLSAodm9pZClfZGlkSW52YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50
OihBUEk6OkF0dGFjaG1lbnQmKWF0dGFjaG1lbnQKK3sKKyAgICBpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4gdWlEZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pc2VsZi5VSURlbGVn
YXRlOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3OmRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudDopXSkKKyAgICAgICAgW3VpRGVs
ZWdhdGUgX3dlYlZpZXc6c2VsZiBkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQ6d3JhcHBl
cihhdHRhY2htZW50KV07Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQogCiAjcHJhZ21hIG1hcmsgaU9TLXNwZWNpZmljIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggNzFl
MjkxZjMwMDgwMWE1NjNiYzQ3Mjk4OWU5YjgwYzVmMjQzZmUwOS4uYjA2NWIzNTE4ZjgyOWNlZjM1
M2Q3ODFjMWFhMDBhNjk5NDgwMmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE4MSw2ICsxODEsNyBAQCBj
bGFzcyBVUkw7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIC0gKHZvaWQpX2RpZFJl
bW92ZUF0dGFjaG1lbnQ6KEFQSTo6QXR0YWNobWVudCYpYXR0YWNobWVudDsKIC0gKHZvaWQpX2Rp
ZEluc2VydEF0dGFjaG1lbnQ6KEFQSTo6QXR0YWNobWVudCYpYXR0YWNobWVudCB3aXRoU291cmNl
OihOU1N0cmluZyAqKXNvdXJjZTsKKy0gKHZvaWQpX2RpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNo
bWVudDooQVBJOjpBdHRhY2htZW50JilhdHRhY2htZW50OwogI2VuZGlmCiAKIC0gKHZvaWQpX3No
b3dTYWZlQnJvd3NpbmdXYXJuaW5nOihjb25zdCBXZWJLaXQ6OlNhZmVCcm93c2luZ1dhcm5pbmcm
KXdhcm5pbmcgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFu
dDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgV2ViQ29yZTo6VVJMPiYmKT4mJiljb21wbGV0
aW9uSGFuZGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Bh
Z2VDbGllbnRJbXBsQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VD
bGllbnRJbXBsQ29jb2EuaAppbmRleCA4Mzk0OGQ4MDBmNjFhZjUwOGJmZGE0MGRhNzU3NTI0YWUw
NGMwMWM0Li43YjRhMmRhYzI1MGM5MGFhYTFjYzI4OWFiNGM0N2ExMjNmZWZjNGI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5o
CkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQogICAgIHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQmLCBjb25zdCBT
dHJpbmcmIHNvdXJjZSkgZmluYWw7CiAgICAgdm9pZCBkaWRSZW1vdmVBdHRhY2htZW50KEFQSTo6
QXR0YWNobWVudCYpIGZpbmFsOworICAgIHZvaWQgZGlkSW52YWxpZGF0ZURhdGFGb3JBdHRhY2ht
ZW50KEFQSTo6QXR0YWNobWVudCYpIGZpbmFsOwogICAgIE5TRmlsZVdyYXBwZXIgKmFsbG9jRmls
ZVdyYXBwZXJJbnN0YW5jZSgpIGNvbnN0IGZpbmFsOwogICAgIE5TU2V0ICpzZXJpYWxpemFibGVG
aWxlV3JhcHBlckNsYXNzZXMoKSBjb25zdCBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KaW5kZXggZWZl
NGU4MWJjYzI5ODExMTMyYTMxMjEwYmJhY2RjODE2ODQwNGE0YS4uMDdmMDJjMzRmNzQ1OThmYjg1
YjliZmNlYzdhNTVlM2NhYTcxMDUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCkBAIC02Niw2ICs2NiwxNSBAQCB2b2lk
IFBhZ2VDbGllbnRJbXBsQ29jb2E6OmRpZFJlbW92ZUF0dGFjaG1lbnQoQVBJOjpBdHRhY2htZW50
JiBhdHRhY2htZW50KQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGxDb2NvYTo6ZGlk
SW52YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50KEFQSTo6QXR0YWNobWVudCYgYXR0YWNobWVudCkK
K3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIFttX3dlYlZpZXcgX2RpZEludmFsaWRhdGVEYXRh
Rm9yQXR0YWNobWVudDphdHRhY2htZW50XTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGF0dGFj
aG1lbnQpOworI2VuZGlmCit9CisKIE5TRmlsZVdyYXBwZXIgKlBhZ2VDbGllbnRJbXBsQ29jb2E6
OmFsbG9jRmlsZVdyYXBwZXJJbnN0YW5jZSgpIGNvbnN0CiB7CiAjaWYgV0tfQVBJX0VOQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA3ZGVmYTQwMjliNTUwZGQ4ZmM5
ZjU2NjA3M2NkM2YzMjJhMzYwMDQ0Li5lZTg1MmIyNDk5NzdiOGZkNzA3MDJkODg3ODU0MTI3MzA4
ZjE5NGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00NTQsNiArNDU0
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgdmlydHVh
bCB2b2lkIGRpZEluc2VydEF0dGFjaG1lbnQoQVBJOjpBdHRhY2htZW50JiwgY29uc3QgU3RyaW5n
JiBzb3VyY2UpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBdHRhY2htZW50KEFQSTo6
QXR0YWNobWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRJbnZhbGlkYXRlRGF0YUZvckF0
dGFjaG1lbnQoQVBJOjpBdHRhY2htZW50JikgeyB9CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
dmlydHVhbCBOU0ZpbGVXcmFwcGVyICphbGxvY0ZpbGVXcmFwcGVySW5zdGFuY2UoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBOU1NldCAqc2VyaWFsaXphYmxlRmlsZVdy
YXBwZXJDbGFzc2VzKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYzc5MWVhYmI0ZGVmMzU4MGE2OWNiMWQ2Yjdi
ZmRhMjE5MjQ3OTc4MS4uNWZmYjJiZmY2ZTY1YTJiYzAwMGMwMTg5YmFlZTBiM2IxOGNlMzlmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04MTE1LDYgKzgx
MTUsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YUZvcklk
ZW50aWZpZXJzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JgogICAgIH0KIH0KIAordm9pZCBXZWJQYWdl
UHJveHk6OmRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQmIGF0
dGFjaG1lbnQpCit7CisgICAgcGFnZUNsaWVudCgpLmRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNo
bWVudChhdHRhY2htZW50KTsKK30KKwogV2ViUGFnZVByb3h5OjpTaG91bGRVcGRhdGVBdHRhY2ht
ZW50QXR0cmlidXRlcyBXZWJQYWdlUHJveHk6OndpbGxVcGRhdGVBdHRhY2htZW50QXR0cmlidXRl
cyhjb25zdCBBUEk6OkF0dGFjaG1lbnQmIGF0dGFjaG1lbnQpCiB7CiAjaWYgSEFWRShQRU5DSUxL
SVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDBhZTFmYmJhMWQ5
YTVjYjU4ZmEzOTI2NTA2NzI2MzcxZjY2Yzc4MDQuLmI3MmIwMDYwMjg5OGM5NzdhY2E1ZjdlMjYw
MTliM2E4MTIzZjQwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0xMzcwLDYgKzEzNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVBdHRhY2htZW50QXR0
cmlidXRlcyhjb25zdCBBUEk6OkF0dGFjaG1lbnQmLCBGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIHNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YUZvcklkZW50
aWZpZXJzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgVmVjdG9yPFdlYkNvcmU6OlNlcmlhbGl6ZWRB
dHRhY2htZW50RGF0YT4mKTsKICAgICB2b2lkIHJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXIo
Y29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQo
QVBJOjpBdHRhY2htZW50Jik7CiAKICAgICBlbnVtIGNsYXNzIFNob3VsZFVwZGF0ZUF0dGFjaG1l
bnRBdHRyaWJ1dGVzIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBTaG91bGRVcGRhdGVBdHRhY2ht
ZW50QXR0cmlidXRlcyB3aWxsVXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMoY29uc3QgQVBJOjpB
dHRhY2htZW50Jik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMmE0NjhhYzRjN2IyOWE0OTg2MTRmZDc5NDJkYzdiM2EwYWI3MDM3ZC4uNzNkNmYy
ZmQ3MDZiM2EyNjcxNGNjZjIxMTdkNDE0OTdkZjg0NDQxYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTExLTI5
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEluZm9y
bSBjbGllbnRzIHdoZW4gZWRpdGFibGUgaW1hZ2UgYXR0YWNobWVudCBiYWNraW5nIGRhdGEgY2hh
bmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTky
MjA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NjM1MDI3Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tOgorICAgICAgICAoLVtBdHRhY2ht
ZW50VXBkYXRlT2JzZXJ2ZXIgaW5pdF0pOgorICAgICAgICAoLVtBdHRhY2htZW50VXBkYXRlT2Jz
ZXJ2ZXIgZGF0YUludmFsaWRhdGVkXSk6CisgICAgICAgICgtW0F0dGFjaG1lbnRVcGRhdGVPYnNl
cnZlciBfd2ViVmlldzpkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQ6XSk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpPYnNlcnZlQXR0YWNobWVudFVwZGF0ZXNGb3JTY29wZTo6ZXhwZWN0
QXR0YWNobWVudEludmFsaWRhdGlvbik6CisgICAgICAgICh3ZWJWaWV3Rm9yVGVzdGluZ0F0dGFj
aG1lbnRzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmZvckVhY2hWaWV3SW5IaWVyYXJjaHkp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZmluZEVkaXRhYmxlSW1hZ2VDYW52YXMpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6ZHJhd1NxdWFyZUluRWRpdGFibGVJbWFnZSk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9QZW5j
aWxLaXRUZXN0U1BJLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSB0ZXN0IGVuc3VyaW5nIHRoYXQg
d2UgZ2V0IGFuIGludmFsaWRhdGlvbiBjYWxsYmFjayB3aGVuIGFuIGVkaXRhYmxlIGltYWdlIGlz
IGNoYW5nZWQuCisKIDIwMTgtMTEtMjkgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjM4NDQ1KVtCdWlsZGJvdF0gVW5rbm93
biBidWlsZGVyICdHVEsgTGludXggMzItYml0IFJlbGVhc2UnIGluIHNjaGVkdWxlciAndHJ1bmsn
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDExZDY0NzgxZjJkYTI1OGJiNDQ5MzFjM2FlMzU3
N2IxNzliODI0MDYuLjhlMmE0ZTNjYTBmNmYxZDM1OTU4MzAwMTNkYjZlMDlkNTQ1MzM0ODIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzY4LDYgKzEzNjgsNyBAQAogCQkyRDIxRkU1ODFG
MDQ2NDI4MDBCNThFN0QgLyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJh
Y2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1BERlZpZXdT
dGFibGVQcmVzZW50YXRpb25VcGRhdGVDYWxsYmFjay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQ0Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLVGh1bWJuYWlsVmlldy5t
bTsgcGF0aCA9IFdlYktpdC9XS1RodW1ibmFpbFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJENTFBMEM1MUM4QkYwMDQwMDc2NUM0NSAvKiBET01IVE1MVmlkZW9FbGVtZW50
V3JhcHBlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhU
TUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RDYxRUMzMDIxQjBCNzVDMDBBN0QxQ0IgLyogUGVuY2lsS2l0VGVzdFNQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQZW5jaWxLaXRUZXN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
NjQwQjU0MTc4NzVERkYwMEJGQUY5OSAvKiBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERB
NDYgLyogRmluZEluUGFnZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEZpbmRJblBhZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODM4QjFF
MUVFRjNBNUIwMDlCOTgwRSAvKiBXS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0NvbnRlbnRWaWV3RWRpdGluZ0Fj
dGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTY0LDYgKzI1NjUsNyBA
QAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERyYWdB
bmREcm9wU2ltdWxhdG9ySU9TLm1tICovLAogCQkJCTJFNzc2NUNDMTZDNEQ4MEEwMEJBMkJCMSAv
KiBtYWluSU9TLm1tICovLAorCQkJCTJENjFFQzMwMjFCMEI3NUMwMEE3RDFDQiAvKiBQZW5jaWxL
aXRUZXN0U1BJLmggKi8sCiAJCQkJRjQ1MTdCNjUyMDU0QzQ5NTAwQzI2NzIxIC8qIFRlc3RXS1dl
YlZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJRjQ1MTdCNjYyMDU0QzQ5NTAwQzI2NzIxIC8qIFRl
c3RXS1dlYlZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCUY0OTMyNDdDMUY0NERGOEQwMDZGNDMz
NiAvKiBVSUtpdFNQSS5oICovLApAQCAtMzc5NSw3ICszNzk3LDYgQEAKIAkJCQlGNDVCNjNGRTFG
MTlENDEwMDA5RDM4QjkgLyogQWN0aW9uU2hlZXRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTM3RTdERDY0MUVBMDZGRjIwMDlCMzk2RCAvKiBBZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRV
UkxzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkMyMTgxMDBFMDAwMDRBMzlBIC8qIEFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNjM3Mjgx
QTcyMUFFMTM4NjAwOUUwREU2IC8qIERvd25sb2FkUHJvZ3Jlc3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QTkwOUE3RDFEODc3NDgwMDA3RTEwRjggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUExREY3NDMyMUM0MUI2NTgwMEEyRjREMCAvKiBBbHdheXNSZXZhbGlk
YXRlZFVSTFNjaGVtZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREU3MUFGRTFENDlDMEJEMDA5
MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gaW4gU291cmNlcyAqLywKQEAgLTM4ODEsNiArMzg4
Miw3IEBACiAJCQkJNTE4RUU1MTgyMEE3OENFMjAwRTAyNEYzIC8qIERvdWJsZURlZmVyc0xvYWRp
bmcubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YyMzFBNDExQUY2MDA0NDdDNEMgLyogRG93
bmxvYWQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFRTFBNDExQUU2MDA0NDdDNEMgLyog
RG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTYz
NzI4MUE3MjFBRTEzODYwMDlFMERFNiAvKiBEb3dubG9hZFByb2dyZXNzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjRENEYzQjYxRTRFMkJDQjAwQkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9y
SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ2MTI4QjcyMTFDOEVENTAwRDlGQURCIC8qIERy
YWdBbmREcm9wU2ltdWxhdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ2MTI4RDcyMTFF
NDg5QzAwRDlGQURCIC8qIERyYWdBbmREcm9wVGVzdHMubW0gaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50
VGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNo
bWVudFRlc3RzLm1tCmluZGV4IGQ0OGY0M2VmNzIxMjFlMmI1OTdhODc1NzgwMzlmNzc4ZTk0N2Y1
NzAuLjA0OGI5MDc4YzU2ZDFkYjA0Mzk2ZTNiYzUwNTRjZDA4ODgzZWVjM2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1l
bnRUZXN0cy5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAKICNpbXBv
cnQgIkRyYWdBbmREcm9wU2ltdWxhdG9yLmgiCisjaW1wb3J0ICJQZW5jaWxLaXRUZXN0U1BJLmgi
CiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgpAQCAtNDcsMTEgKzQ4LDEzIEBA
CiBAaW50ZXJmYWNlIEF0dGFjaG1lbnRVcGRhdGVPYnNlcnZlciA6IE5TT2JqZWN0IDxXS1VJRGVs
ZWdhdGVQcml2YXRlPgogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpp
bnNlcnRlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheSAqcmVtb3Zl
ZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheSAqZGF0YUludmFsaWRh
dGVkOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gQXR0YWNobWVudFVwZGF0ZU9ic2VydmVyIHsK
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8X1dLQXR0YWNobWVudCAqPj4gX2luc2VydGVk
OwogICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheTxfV0tBdHRhY2htZW50ICo+PiBfcmVtb3Zl
ZDsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8X1dLQXR0YWNobWVudCAqPj4gX2RhdGFJ
bnZhbGlkYXRlZDsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeTxOU1N0cmluZyAq
LCBOU1N0cmluZyAqPj4gX2lkZW50aWZpZXJUb1NvdXJjZU1hcDsKIH0KIApAQCAtNjAsNiArNjMs
NyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdAogICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKSB7
CiAgICAgICAgIF9pbnNlcnRlZCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dF0pOwogICAgICAgICBfcmVtb3ZlZCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdF0pOworICAgICAgICBfZGF0YUludmFsaWRhdGVkID0gYWRvcHROUyhbW05TTXV0YWJsZUFy
cmF5IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIF9pZGVudGlmaWVyVG9Tb3VyY2VNYXAgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwogICAgIH0KICAgICByZXR1
cm4gc2VsZjsKQEAgLTc1LDYgKzc5LDExIEBAIC0gKE5TQXJyYXk8X1dLQXR0YWNobWVudCAqPiAq
KXJlbW92ZWQKICAgICByZXR1cm4gX3JlbW92ZWQuZ2V0KCk7CiB9CiAKKy0gKE5TQXJyYXk8X1dL
QXR0YWNobWVudCAqPiAqKWRhdGFJbnZhbGlkYXRlZAoreworICAgIHJldHVybiBfZGF0YUludmFs
aWRhdGVkLmdldCgpOworfQorCiAtIChOU1N0cmluZyAqKXNvdXJjZUZvcklkZW50aWZpZXI6KE5T
U3RyaW5nICopaWRlbnRpZmllcgogewogICAgIHJldHVybiBbX2lkZW50aWZpZXJUb1NvdXJjZU1h
cCBvYmplY3RGb3JLZXk6aWRlbnRpZmllcl07CkBAIC05Miw2ICsxMDEsMTEgQEAgLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZW1vdmVBdHRhY2htZW50OihfV0tBdHRh
Y2htZW50ICopYXR0YWMKICAgICBbX3JlbW92ZWQgYWRkT2JqZWN0OmF0dGFjaG1lbnRdOwogfQog
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEludmFsaWRhdGVEYXRh
Rm9yQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1lbnQKK3sKKyAgICBbX2RhdGFJ
bnZhbGlkYXRlZCBhZGRPYmplY3Q6YXR0YWNobWVudF07Cit9CisKIEBlbmQKIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewpAQCAtMTI2LDYgKzE0MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIEVY
UEVDVF9UUlVFKGluc2VydGVkQXR0YWNobWVudHNNYXRjaCk7CiAgICAgfQogCisgICAgdm9pZCBl
eHBlY3RBdHRhY2htZW50SW52YWxpZGF0aW9uKE5TQXJyYXk8X1dLQXR0YWNobWVudCAqPiAqZGF0
YUludmFsaWRhdGVkKQorICAgIHsKKyAgICAgICAgQk9PTCBpbnZhbGlkYXRlZEF0dGFjaG1lbnRz
TWF0Y2ggPSBbW05TU2V0IHNldFdpdGhBcnJheTpvYnNlcnZlcigpLmRhdGFJbnZhbGlkYXRlZF0g
aXNFcXVhbDpbTlNTZXQgc2V0V2l0aEFycmF5OmRhdGFJbnZhbGlkYXRlZF1dOworICAgICAgICBp
ZiAoIWludmFsaWRhdGVkQXR0YWNobWVudHNNYXRjaCkKKyAgICAgICAgICAgIE5TTG9nKEAiRXhw
ZWN0ZWQgYXR0YWNobWVudHMgd2l0aCBpbnZhbGlkYXRlZCBkYXRhOiAlQCB0byBtYXRjaCAlQC4i
LCBvYnNlcnZlcigpLmRhdGFJbnZhbGlkYXRlZCwgZGF0YUludmFsaWRhdGVkKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoaW52YWxpZGF0ZWRBdHRhY2htZW50c01hdGNoKTsKKyAgICB9CisKICAgICB2
b2lkIGV4cGVjdFNvdXJjZUZvcklkZW50aWZpZXIoTlNTdHJpbmcgKmV4cGVjdGVkU291cmNlLCBO
U1N0cmluZyAqaWRlbnRpZmllcikKICAgICB7CiAgICAgICAgIE5TU3RyaW5nICpvYnNlcnZlZFNv
dXJjZSA9IFtvYnNlcnZlcigpIHNvdXJjZUZvcklkZW50aWZpZXI6aWRlbnRpZmllcl07CkBAIC0x
NTMsNiArMTc1LDcgQEAgc3RhdGljIE5TU3RyaW5nICphdHRhY2htZW50RWRpdGluZ1Rlc3RNYXJr
dXAgPSBAIjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PScKIHN0YXRpYyBSZXRhaW5QdHI8
VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cyhDR1NpemUgd2ViVmll
d1NpemUsIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24pCiB7CiAgICAgY29u
ZmlndXJhdGlvbi5fYXR0YWNobWVudEVsZW1lbnRFbmFibGVkID0gWUVTOworICAgIGNvbmZpZ3Vy
YXRpb24uX2VkaXRhYmxlSW1hZ2VzRW5hYmxlZCA9IFlFUzsKICAgICBXS1ByZWZlcmVuY2VzU2V0
Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKVtj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgWUVTKTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgd2ViVmlld1NpemUud2lkdGgsIHdlYlZpZXdTaXplLmhlaWdodCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uXSk7CkBAIC0xNzc4LDYgKzE4MDEsNzYgQEAgVEVTVChXS0F0dGFjaG1lbnRU
ZXN0c0lPUywgRHJhZ0F0dGFjaG1lbnRJbnNlcnRlZEFzRGF0YSkKICAgICBbZHJhZ0FuZERyb3BT
aW11bGF0b3IgZW5kRGF0YVRyYW5zZmVyXTsKIH0KIAorI2lmIEhBVkUoUEVOQ0lMS0lUKQorc3Rh
dGljIEJPT0wgZm9yRWFjaFZpZXdJbkhpZXJhcmNoeShVSVZpZXcgKnZpZXcsIHZvaWQoXm1hcEZ1
bmN0aW9uKShVSVZpZXcgKnN1YnZpZXcsIEJPT0wgKnN0b3ApKQoreworICAgIEJPT0wgc3RvcCA9
IE5POworICAgIG1hcEZ1bmN0aW9uKHZpZXcsICZzdG9wKTsKKyAgICBpZiAoc3RvcCkKKyAgICAg
ICAgcmV0dXJuIFlFUzsKKworICAgIGZvciAoVUlWaWV3ICpzdWJ2aWV3IGluIHZpZXcuc3Vidmll
d3MpIHsKKyAgICAgICAgc3RvcCA9IGZvckVhY2hWaWV3SW5IaWVyYXJjaHkoc3VidmlldywgbWFw
RnVuY3Rpb24pOworICAgICAgICBpZiAoc3RvcCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICByZXR1cm4gc3RvcDsKK30KKworc3RhdGljIFBLQ2FudmFzVmlldyAqZmluZEVkaXRhYmxl
SW1hZ2VDYW52YXMoV0tXZWJWaWV3ICp3ZWJWaWV3KQoreworICAgIENsYXNzIHBrQ2FudmFzVmll
d0NsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJQS0NhbnZhc1ZpZXciKTsKKyAgICBfX2Jsb2Nr
IFBLQ2FudmFzVmlldyAqY2FudmFzVmlldyA9IG5pbDsKKyAgICBmb3JFYWNoVmlld0luSGllcmFy
Y2h5KHdlYlZpZXcud2luZG93LCBeKFVJVmlldyAqc3VidmlldywgQk9PTCAqc3RvcCkgeworICAg
ICAgICBpZiAoIVtzdWJ2aWV3IGlzS2luZE9mQ2xhc3M6cGtDYW52YXNWaWV3Q2xhc3NdKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhbnZhc1ZpZXcgPSAoUEtDYW52YXNWaWV3ICop
c3VidmlldzsKKyAgICAgICAgKnN0b3AgPSBZRVM7CisgICAgfSk7CisgICAgcmV0dXJuIGNhbnZh
c1ZpZXc7Cit9CisKK3N0YXRpYyB2b2lkIGRyYXdTcXVhcmVJbkVkaXRhYmxlSW1hZ2UoV0tXZWJW
aWV3ICp3ZWJWaWV3KQoreworICAgIENsYXNzIHBrRHJhd2luZ0NsYXNzID0gTlNDbGFzc0Zyb21T
dHJpbmcoQCJQS0RyYXdpbmciKTsKKyAgICBDbGFzcyBwa0lua0NsYXNzID0gTlNDbGFzc0Zyb21T
dHJpbmcoQCJQS0luayIpOworICAgIENsYXNzIHBrU3Ryb2tlQ2xhc3MgPSBOU0NsYXNzRnJvbVN0
cmluZyhAIlBLU3Ryb2tlIik7CisKKyAgICBQS0NhbnZhc1ZpZXcgKmNhbnZhc1ZpZXcgPSBmaW5k
RWRpdGFibGVJbWFnZUNhbnZhcyh3ZWJWaWV3KTsKKyAgICBSZXRhaW5QdHI8UEtEcmF3aW5nPiBk
cmF3aW5nID0gY2FudmFzVmlldy5kcmF3aW5nID86IGFkb3B0TlMoW1twa0RyYXdpbmdDbGFzcyBh
bGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IHBhdGggPSBhZG9wdENGKENH
UGF0aENyZWF0ZVdpdGhSZWN0KENHUmVjdE1ha2UoMCwgMCwgNTAsIDUwKSwgTlVMTCkpOworICAg
IFJldGFpblB0cjxQS0luaz4gaW5rID0gW3BrSW5rQ2xhc3MgaW5rV2l0aFR5cGU6MCBjb2xvcjpV
SUNvbG9yLmdyZWVuQ29sb3Igd2VpZ2h0OjEwMC4wXTsKKyAgICBSZXRhaW5QdHI8UEtTdHJva2U+
IHN0cm9rZSA9IGFkb3B0TlMoW1twa1N0cm9rZUNsYXNzIGFsbG9jXSBfaW5pdFdpdGhQYXRoOnBh
dGguZ2V0KCkgaW5rOmluay5nZXQoKSBpbnB1dFNjYWxlOjFdKTsKKyAgICBbZHJhd2luZyBfYWRk
U3Ryb2tlOnN0cm9rZS5nZXQoKV07CisKKyAgICBbY2FudmFzVmlldyBzZXREcmF3aW5nOmRyYXdp
bmcuZ2V0KCldOworfQorCitURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBFZGl0YWJsZUltYWdl
QXR0YWNobWVudERhdGFJbnZhbGlkYXRpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmll
d0ZvclRlc3RpbmdBdHRhY2htZW50cygpOworCisgICAgUmV0YWluUHRyPF9XS0F0dGFjaG1lbnQ+
IGF0dGFjaG1lbnQ7CisKKyAgICB7CisgICAgICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0Zv
clNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfVFJVRShbd2Vi
VmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkluc2VydEVkaXRhYmxlSW1h
Z2UiIGFyZ3VtZW50Om5pbF0pOworICAgICAgICBFWFBFQ1RfRVEob2JzZXJ2ZXIub2JzZXJ2ZXIo
KS5pbnNlcnRlZC5jb3VudCwgMUxVKTsKKyAgICAgICAgYXR0YWNobWVudCA9IG9ic2VydmVyLm9i
c2VydmVyKCkuaW5zZXJ0ZWQuZmlyc3RPYmplY3Q7CisgICAgfQorCisgICAgW3dlYlZpZXcgd2Fp
dEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworCisgICAgeworICAgICAgICBPYnNlcnZlQXR0
YWNobWVudFVwZGF0ZXNGb3JTY29wZSBvYnNlcnZlcih3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAg
ZHJhd1NxdWFyZUluRWRpdGFibGVJbWFnZSh3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAgb2JzZXJ2
ZXIuZXhwZWN0QXR0YWNobWVudEludmFsaWRhdGlvbihAWyBhdHRhY2htZW50LmdldCgpIF0pOwor
ICAgIH0KK30KKworI2VuZGlmIC8vIEhBVkUoUEVOQ0lMS0lUKQorCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvUGVuY2lsS2l0VGVzdFNQSS5oIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9pb3MvUGVuY2lsS2l0VGVzdFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ODM2OWZlZWI0
NjQ0ZjM4YTk5YjZmOGQ1YTMwNTFmNzNkMzlkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2lvcy9QZW5jaWxLaXRUZXN0U1BJLmgKQEAgLTAsMCArMSw2MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKworI2lm
IEhBVkUoUEVOQ0lMS0lUKQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9y
dCA8UGVuY2lsS2l0L1BlbmNpbEtpdC5oPgorCisjaW1wb3J0IDxQZW5jaWxLaXQvUEtEcmF3aW5n
X1ByaXZhdGUuaD4KKyNpbXBvcnQgPFBlbmNpbEtpdC9QS1N0cm9rZV9Qcml2YXRlLmg+CisKKyNl
bHNlCisKK3R5cGVkZWYgTlNJbnRlZ2VyIFBLSW5rVHlwZTsKKworQGludGVyZmFjZSBQS0luayA6
IE5TT2JqZWN0CisrIChQS0luayAqKWlua1dpdGhUeXBlOihQS0lua1R5cGUpdHlwZSBjb2xvcjoo
VUlDb2xvciAqKWNvbG9yIHdlaWdodDooQ0dGbG9hdCl3ZWlnaHQ7CitAZW5kCisKK0BpbnRlcmZh
Y2UgUEtTdHJva2UgOiBOU09iamVjdAorLSAoaWQpX2luaXRXaXRoUGF0aDooQ0dQYXRoUmVmKXBh
dGggaW5rOihQS0luayAqKWluayBpbnB1dFNjYWxlOihDR0Zsb2F0KWlucHV0U2NhbGU7CitAZW5k
CisKK0BpbnRlcmZhY2UgUEtEcmF3aW5nIDogTlNPYmplY3QKKy0gKFBLU3Ryb2tlICopX2FkZFN0
cm9rZTooUEtTdHJva2UgKilzdHJva2U7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IE5TQXJyYXk8UEtTdHJva2UgKj4gKl9hbGxTdHJva2VzOworQGVuZAorCitAaW50ZXJmYWNlIFBL
Q2FudmFzVmlldyA6IFVJVmlldworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIFBLRHJhd2lu
ZyAqZHJhd2luZzsKK0BlbmQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
KyNlbmRpZiAvLyBIQVZFKFBFTkNJTEtJVCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>