<?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>172259</bug_id>
          
          <creation_ts>2017-05-17 20:54:31 -0700</creation_ts>
          <short_desc>Remote Inspector: Be stricter about checking message types</short_desc>
          <delta_ts>2017-05-18 11:09:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>buildbot</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1309969</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-17 20:54:31 -0700</bug_when>
    <thetext>Be stricter about checking message types for incoming remote inspector messages.

The type of things inside the RemoteInspector::received*Message() dictionaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309970</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-17 20:55:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/32264839&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309971</commentid>
    <comment_count>2</comment_count>
      <attachid>310480</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-17 20:58:21 -0700</bug_when>
    <thetext>Created attachment 310480
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309973</commentid>
    <comment_count>3</comment_count>
      <attachid>310480</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-17 21:00:49 -0700</bug_when>
    <thetext>Comment on attachment 310480
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/remote/cocoa/RemoteInspectorCocoa.mm:651
&gt; +    unsigned rejectionIdentifier = targetIdentifierNumber.unsignedIntValue;

Interesting. All of the others are `unsignedIntegerValue`, I will update this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309974</commentid>
    <comment_count>4</comment_count>
      <attachid>310482</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-17 21:01:59 -0700</bug_when>
    <thetext>Created attachment 310482
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309975</commentid>
    <comment_count>5</comment_count>
      <attachid>310482</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-17 21:03:06 -0700</bug_when>
    <thetext>Comment on attachment 310482
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/remote/cocoa/RemoteInspectorCocoa.mm:-498
&gt; -    unsigned targetIdentifier = [[userInfo objectForKey:WIRTargetIdentifierKey] unsignedIntegerValue];

On second thought, these should all be `unsignedIntValue` which returns a `unsigned` type not `NSUInteger`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309976</commentid>
    <comment_count>6</comment_count>
      <attachid>310483</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-17 21:05:03 -0700</bug_when>
    <thetext>Created attachment 310483
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310123</commentid>
    <comment_count>7</comment_count>
      <attachid>310483</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-05-18 10:13:18 -0700</bug_when>
    <thetext>Comment on attachment 310483
[PATCH] Proposed Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310151</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-18 11:09:55 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/r217051&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310480</attachid>
            <date>2017-05-17 20:58:21 -0700</date>
            <delta_ts>2017-05-17 21:01:59 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>types-1.patch</filename>
            <type>text/plain</type>
            <size>12749</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdmMGI1NGM3OWZjLi5kNTA2MmQ2ZDc2NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTctMDUtMTcgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGUgSW5zcGVj
dG9yOiBCZSBzdHJpY3RlciBhYm91dCBjaGVja2luZyBtZXNzYWdlIHR5cGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIyNTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMyMjY0ODM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JD
b2NvYS5tbToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZFNl
dHVwTWVzc2FnZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2
ZWREYXRhTWVzc2FnZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVj
ZWl2ZWREaWRDbG9zZU1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0
b3I6OnJlY2VpdmVkSW5kaWNhdGVNZXNzYWdlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3Rl
SW5zcGVjdG9yOjpyZWNlaXZlZENvbm5lY3Rpb25EaWVkTWVzc2FnZSk6CisgICAgICAgIChJbnNw
ZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aWNJbnNwZWN0aW9uQ29uZmln
dXJhdGlvbk1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnJl
Y2VpdmVkQXV0b21hdGljSW5zcGVjdGlvblJlamVjdE1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVj
dG9yOjpSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkQXV0b21hdGlvblNlc3Npb25SZXF1ZXN0TWVz
c2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JY
UENDb25uZWN0aW9uLm1tOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JYUEND
b25uZWN0aW9uOjpkZXNlcmlhbGl6ZU1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1v
dGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChJbnNwZWN0
b3I6OlJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb246OnNlbmRNZXNzYWdlKToKKyAgICAgICAg
QmFpbCBpZiB3ZSBkb24ndCByZWNlaXZlIHRoZSBleHBlY3RlZCB0eXBlcyBmb3IgbWVzc2FnZSBk
YXRhLgorCiAyMDE3LTA1LTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlIGRvbid0IGRvIGNvbnRleHQgc3dpdGNoZXMgZm9yIFdhc20tPldhc20gY2FsbCBp
bmRpcmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yQ29jb2EubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JDb2NvYS5tbQppbmRleCBkOTc2
MjQ2MzE1Mi4uN2U4ZDFlMDRhMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNvY29hLm1tCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNv
Y29hLm1tCkBAIC00Myw2ICs0MywxNCBAQAogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2RlZmluZSBCQUlMX0lGX1VO
RVhQRUNURURfVFlQRShleHByLCBjbGFzc0V4cHIpICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlk
IHZhbHVlID0gKGV4cHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICBpZCBjbGFzc1ZhbHVlID0gKGNsYXNzRXhwcik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgaWYgKCFbdmFsdWUgaXNLaW5kT2ZDbGFzczpjbGFzc1ZhbHVlXSkgICAgICAgICAgICBc
CisgICAgICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIH0gd2hpbGUgKDApOworCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogc3RhdGlj
IGJvb2wgY2FuQWNjZXNzV2ViSW5zcGVjdG9yTWFjaFBvcnQoKQpAQCAtNDQ5LDE4ICs0NTcsMjMg
QEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnB1c2hMaXN0aW5nc1Nvb24oKQogCiB2b2lkIFJlbW90
ZUluc3BlY3Rvcjo6cmVjZWl2ZWRTZXR1cE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykK
IHsKLSAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JL
ZXk6V0lSVGFyZ2V0SWRlbnRpZmllcktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdOworICAgIE5T
TnVtYmVyICp0YXJnZXRJZGVudGlmaWVyTnVtYmVyID0gdXNlckluZm9bV0lSVGFyZ2V0SWRlbnRp
ZmllcktleV07CisgICAgQkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUodGFyZ2V0SWRlbnRpZmllck51
bWJlciwgW05TTnVtYmVyIGNsYXNzXSk7CisKKyAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50
aWZpZXIgPSB1c2VySW5mb1tXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleV07CisgICAgQkFJTF9J
Rl9VTkVYUEVDVEVEX1RZUEUoY29ubmVjdGlvbklkZW50aWZpZXIsIFtOU1N0cmluZyBjbGFzc10p
OworCisgICAgTlNTdHJpbmcgKnNlbmRlciA9IHVzZXJJbmZvW1dJUlNlbmRlcktleV07CisgICAg
QkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUoc2VuZGVyLCBbTlNTdHJpbmcgY2xhc3NdKTsKKworICAg
IE5TTnVtYmVyICphdXRvbWF0aWNhbGx5UGF1c2VOdW1iZXIgPSB1c2VySW5mb1tXSVJBdXRvbWF0
aWNhbGx5UGF1c2VdOworICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKGF1dG9tYXRpY2FsbHlQ
YXVzZU51bWJlciwgW05TTnVtYmVyIGNsYXNzXSk7CisgICAgQk9PTCBhdXRvbWF0aWNhbGx5UGF1
c2UgPSBhdXRvbWF0aWNhbGx5UGF1c2VOdW1iZXIuYm9vbFZhbHVlOworCisgICAgdW5zaWduZWQg
dGFyZ2V0SWRlbnRpZmllciA9IHRhcmdldElkZW50aWZpZXJOdW1iZXIudW5zaWduZWRJbnRlZ2Vy
VmFsdWU7CiAgICAgaWYgKCF0YXJnZXRJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50aWZpZXIgPSBbdXNlckluZm8gb2JqZWN0Rm9yS2V5
OldJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5XTsKLSAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlm
aWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBOU1N0cmluZyAqc2VuZGVyID0gW3VzZXJJbmZv
IG9iamVjdEZvcktleTpXSVJTZW5kZXJLZXldOwotICAgIGlmICghc2VuZGVyKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICBpZiAobV90YXJnZXRDb25uZWN0aW9uTWFwLmNvbnRhaW5zKHRhcmdldElk
ZW50aWZpZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ3NCw3ICs0ODcsNiBAQCB2b2lkIFJl
bW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRTZXR1cE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5m
bykKIAogICAgIGlmIChpczxSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0Pih0YXJnZXQpKSB7CiAgICAg
ICAgIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gbV9hdXRvbWF0aWNJbnNwZWN0aW9uQ2Fu
ZGlkYXRlVGFyZ2V0SWRlbnRpZmllciA9PSB0YXJnZXQtPnRhcmdldElkZW50aWZpZXIoKTsKLSAg
ICAgICAgYm9vbCBhdXRvbWF0aWNhbGx5UGF1c2UgPSBbW3VzZXJJbmZvIG9iamVjdEZvcktleTpX
SVJBdXRvbWF0aWNhbGx5UGF1c2VdIGJvb2xWYWx1ZV07CiAKICAgICAgICAgaWYgKCFjb25uZWN0
aW9uVG9UYXJnZXQtPnNldHVwKGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYXV0b21hdGljYWxseVBh
dXNlKSkgewogICAgICAgICAgICAgY29ubmVjdGlvblRvVGFyZ2V0LT5jbG9zZSgpOwpAQCAtNDk1
LDcgKzUwNywxMyBAQCB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRTZXR1cE1lc3NhZ2Uo
TlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIAogdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVk
RGF0YU1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsKLSAgICB1bnNpZ25lZCB0YXJn
ZXRJZGVudGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JLZXk6V0lSVGFyZ2V0SWRlbnRpZmll
cktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdOworICAgIE5TTnVtYmVyICp0YXJnZXRJZGVudGlm
aWVyTnVtYmVyID0gdXNlckluZm9bV0lSVGFyZ2V0SWRlbnRpZmllcktleV07CisgICAgQkFJTF9J
Rl9VTkVYUEVDVEVEX1RZUEUodGFyZ2V0SWRlbnRpZmllck51bWJlciwgW05TTnVtYmVyIGNsYXNz
XSk7CisKKyAgICBOU0RhdGEgKmRhdGEgPSB1c2VySW5mb1tXSVJTb2NrZXREYXRhS2V5XTsKKyAg
ICBCQUlMX0lGX1VORVhQRUNURURfVFlQRShkYXRhLCBbTlNEYXRhIGNsYXNzXSk7CisKKyAgICB1
bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gdGFyZ2V0SWRlbnRpZmllck51bWJlci51bnNpZ25l
ZEludGVnZXJWYWx1ZTsKICAgICBpZiAoIXRhcmdldElkZW50aWZpZXIpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNTAzLDIxICs1MjEsMjIgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVk
RGF0YU1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKICAgICBpZiAoIWNvbm5lY3Rpb25U
b1RhcmdldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNEYXRhICpkYXRhID0gW3VzZXJJbmZv
IG9iamVjdEZvcktleTpXSVJTb2NrZXREYXRhS2V5XTsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+
IG1lc3NhZ2UgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpkYXRhIGVu
Y29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSk7CiAgICAgY29ubmVjdGlvblRvVGFyZ2V0LT5z
ZW5kTWVzc2FnZVRvVGFyZ2V0KG1lc3NhZ2UuZ2V0KCkpOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6cmVjZWl2ZWREaWRDbG9zZU1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsK
LSAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JLZXk6
V0lSVGFyZ2V0SWRlbnRpZmllcktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdOworICAgIE5TTnVt
YmVyICp0YXJnZXRJZGVudGlmaWVyTnVtYmVyID0gdXNlckluZm9bV0lSVGFyZ2V0SWRlbnRpZmll
cktleV07CisgICAgQkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUodGFyZ2V0SWRlbnRpZmllck51bWJl
ciwgW05TTnVtYmVyIGNsYXNzXSk7CisKKyAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50aWZp
ZXIgPSB1c2VySW5mb1tXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleV07CisgICAgQkFJTF9JRl9V
TkVYUEVDVEVEX1RZUEUoY29ubmVjdGlvbklkZW50aWZpZXIsIFtOU1N0cmluZyBjbGFzc10pOwor
CisgICAgdW5zaWduZWQgdGFyZ2V0SWRlbnRpZmllciA9IHRhcmdldElkZW50aWZpZXJOdW1iZXIu
dW5zaWduZWRJbnRlZ2VyVmFsdWU7CiAgICAgaWYgKCF0YXJnZXRJZGVudGlmaWVyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50aWZpZXIgPSBbdXNlcklu
Zm8gb2JqZWN0Rm9yS2V5OldJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5XTsKLSAgICBpZiAoIWNv
bm5lY3Rpb25JZGVudGlmaWVyKQotICAgICAgICByZXR1cm47Ci0KICAgICBhdXRvIGNvbm5lY3Rp
b25Ub1RhcmdldCA9IG1fdGFyZ2V0Q29ubmVjdGlvbk1hcC5nZXQodGFyZ2V0SWRlbnRpZmllcik7
CiAgICAgaWYgKCFjb25uZWN0aW9uVG9UYXJnZXQpCiAgICAgICAgIHJldHVybjsKQEAgLTUzOCwx
OCArNTU3LDIzIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZEdldExpc3RpbmdNZXNz
YWdlKE5TRGljdGlvbmFyeSAqKQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRJbmRp
Y2F0ZU1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsKLSAgICB1bnNpZ25lZCBpZGVu
dGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JLZXk6V0lSVGFyZ2V0SWRlbnRpZmllcktleV0g
dW5zaWduZWRJbnRlZ2VyVmFsdWVdOwotICAgIGlmICghaWRlbnRpZmllcikKKyAgICBOU051bWJl
ciAqdGFyZ2V0SWRlbnRpZmllck51bWJlciA9IHVzZXJJbmZvW1dJUlRhcmdldElkZW50aWZpZXJL
ZXldOworICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKHRhcmdldElkZW50aWZpZXJOdW1iZXIs
IFtOU051bWJlciBjbGFzc10pOworCisgICAgTlNOdW1iZXIgKmluZGljYXRlRW5hYmxlZE51bWJl
ciA9IHVzZXJJbmZvW1dJUkluZGljYXRlRW5hYmxlZEtleV07CisgICAgQkFJTF9JRl9VTkVYUEVD
VEVEX1RZUEUoaW5kaWNhdGVFbmFibGVkTnVtYmVyLCBbTlNOdW1iZXIgY2xhc3NdKTsKKyAgICBC
T09MIGluZGljYXRlRW5hYmxlZCA9IGluZGljYXRlRW5hYmxlZE51bWJlci5ib29sVmFsdWU7CisK
KyAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gdGFyZ2V0SWRlbnRpZmllck51bWJlci51
bnNpZ25lZEludGVnZXJWYWx1ZTsKKyAgICBpZiAoIXRhcmdldElkZW50aWZpZXIpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEJPT0wgaW5kaWNhdGVFbmFibGVkID0gW1t1c2VySW5mbyBvYmplY3RG
b3JLZXk6V0lSSW5kaWNhdGVFbmFibGVkS2V5XSBib29sVmFsdWVdOwotCiAgICAgY2FsbE9uV2Vi
VGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKF57CiAgICAgICAgIFJlbW90ZUNvbnRy
b2xsYWJsZVRhcmdldCogdGFyZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgewogICAgICAgICAgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9tdXRleCk7CiAKLSAgICAgICAgICAgIGF1dG8g
ZmluZFJlc3VsdCA9IG1fdGFyZ2V0TWFwLmZpbmQoaWRlbnRpZmllcik7CisgICAgICAgICAgICBh
dXRvIGZpbmRSZXN1bHQgPSBtX3RhcmdldE1hcC5maW5kKHRhcmdldElkZW50aWZpZXIpOwogICAg
ICAgICAgICAgaWYgKGZpbmRSZXN1bHQgPT0gbV90YXJnZXRNYXAuZW5kKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC01ODgsOSArNjEyLDggQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6
OnJlY2VpdmVkUHJveHlBcHBsaWNhdGlvblNldHVwTWVzc2FnZShOU0RpY3Rpb25hcnkgKikKIAog
dm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkQ29ubmVjdGlvbkRpZWRNZXNzYWdlKE5TRGlj
dGlvbmFyeSAqdXNlckluZm8pCiB7Ci0gICAgTlNTdHJpbmcgKmNvbm5lY3Rpb25JZGVudGlmaWVy
ID0gW3VzZXJJbmZvIG9iamVjdEZvcktleTpXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleV07Ci0g
ICAgaWYgKCFjb25uZWN0aW9uSWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuOworICAgIE5TU3Ry
aW5nICpjb25uZWN0aW9uSWRlbnRpZmllciA9IHVzZXJJbmZvW1dJUkNvbm5lY3Rpb25JZGVudGlm
aWVyS2V5XTsKKyAgICBCQUlMX0lGX1VORVhQRUNURURfVFlQRShjb25uZWN0aW9uSWRlbnRpZmll
ciwgW05TU3RyaW5nIGNsYXNzXSk7CiAKICAgICBhdXRvIGl0ID0gbV90YXJnZXRDb25uZWN0aW9u
TWFwLmJlZ2luKCk7CiAgICAgYXV0byBlbmQgPSBtX3RhcmdldENvbm5lY3Rpb25NYXAuZW5kKCk7
CkBAIC02MTEsNyArNjM0LDEwIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZENvbm5l
Y3Rpb25EaWVkTWVzc2FnZShOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKQogCiB2b2lkIFJlbW90ZUlu
c3BlY3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aWNJbnNwZWN0aW9uQ29uZmlndXJhdGlvbk1lc3NhZ2Uo
TlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsKLSAgICBtX2F1dG9tYXRpY0luc3BlY3Rpb25FbmFi
bGVkID0gW1t1c2VySW5mbyBvYmplY3RGb3JLZXk6V0lSQXV0b21hdGljSW5zcGVjdGlvbkVuYWJs
ZWRLZXldIGJvb2xWYWx1ZV07CisgICAgTlNOdW1iZXIgKmF1dG9tYXRpY0luc3BlY3Rpb25FbmFi
bGVkTnVtYmVyID0gdXNlckluZm9bV0lSQXV0b21hdGljSW5zcGVjdGlvbkVuYWJsZWRLZXldOwor
ICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKGF1dG9tYXRpY0luc3BlY3Rpb25FbmFibGVkTnVt
YmVyLCBbTlNOdW1iZXIgY2xhc3NdKTsKKworICAgIG1fYXV0b21hdGljSW5zcGVjdGlvbkVuYWJs
ZWQgPSBhdXRvbWF0aWNJbnNwZWN0aW9uRW5hYmxlZE51bWJlci5ib29sVmFsdWU7CiAKICAgICBp
ZiAoIW1fYXV0b21hdGljSW5zcGVjdGlvbkVuYWJsZWQgJiYgbV9hdXRvbWF0aWNJbnNwZWN0aW9u
UGF1c2VkKQogICAgICAgICBtX2F1dG9tYXRpY0luc3BlY3Rpb25QYXVzZWQgPSBmYWxzZTsKQEAg
LTYxOSw4ICs2NDUsMTAgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkQXV0b21hdGlj
SW5zcGVjdGlvbkNvbmZpZ3VyYXRpb25NZXNzYWdlKE5TRGljdGlvbmEKIAogdm9pZCBSZW1vdGVJ
bnNwZWN0b3I6OnJlY2VpdmVkQXV0b21hdGljSW5zcGVjdGlvblJlamVjdE1lc3NhZ2UoTlNEaWN0
aW9uYXJ5ICp1c2VySW5mbykKIHsKLSAgICB1bnNpZ25lZCByZWplY3Rpb25JZGVudGlmaWVyID0g
W1t1c2VySW5mbyBvYmplY3RGb3JLZXk6V0lSVGFyZ2V0SWRlbnRpZmllcktleV0gdW5zaWduZWRJ
bnRWYWx1ZV07CisgICAgTlNOdW1iZXIgKnRhcmdldElkZW50aWZpZXJOdW1iZXIgPSB1c2VySW5m
b1tXSVJUYXJnZXRJZGVudGlmaWVyS2V5XTsKKyAgICBCQUlMX0lGX1VORVhQRUNURURfVFlQRSh0
YXJnZXRJZGVudGlmaWVyTnVtYmVyLCBbTlNOdW1iZXIgY2xhc3NdKTsKIAorICAgIHVuc2lnbmVk
IHJlamVjdGlvbklkZW50aWZpZXIgPSB0YXJnZXRJZGVudGlmaWVyTnVtYmVyLnVuc2lnbmVkSW50
VmFsdWU7CiAgICAgQVNTRVJUKHJlamVjdGlvbklkZW50aWZpZXIgPT0gbV9hdXRvbWF0aWNJbnNw
ZWN0aW9uQ2FuZGlkYXRlVGFyZ2V0SWRlbnRpZmllcik7CiAgICAgaWYgKHJlamVjdGlvbklkZW50
aWZpZXIgPT0gbV9hdXRvbWF0aWNJbnNwZWN0aW9uQ2FuZGlkYXRlVGFyZ2V0SWRlbnRpZmllcikK
ICAgICAgICAgbV9hdXRvbWF0aWNJbnNwZWN0aW9uUGF1c2VkID0gZmFsc2U7CkBAIC02MjgsMTYg
KzY1NiwxNSBAQCB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aWNJbnNwZWN0
aW9uUmVqZWN0TWVzc2FnZShOU0RpY3Rpb25hcnkgKnVzZQogCiB2b2lkIFJlbW90ZUluc3BlY3Rv
cjo6cmVjZWl2ZWRBdXRvbWF0aW9uU2Vzc2lvblJlcXVlc3RNZXNzYWdlKE5TRGljdGlvbmFyeSAq
dXNlckluZm8pCiB7CisgICAgTlNTdHJpbmcgKnN1Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVyID0g
dXNlckluZm9bV0lSU2Vzc2lvbklkZW50aWZpZXJLZXldOworICAgIEJBSUxfSUZfVU5FWFBFQ1RF
RF9UWVBFKHN1Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVyLCBbTlNTdHJpbmcgY2xhc3NdKTsKKwog
ICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9jbGllbnRD
YXBhYmlsaXRpZXMgfHwgIW1fY2xpZW50Q2FwYWJpbGl0aWVzLT5yZW1vdGVBdXRvbWF0aW9uQWxs
b3dlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNTdHJpbmcgKnN1Z2dlc3RlZFNlc3Npb25J
ZGVudGlmaWVyID0gW3VzZXJJbmZvIG9iamVjdEZvcktleTpXSVJTZXNzaW9uSWRlbnRpZmllcktl
eV07Ci0gICAgaWYgKCFzdWdnZXN0ZWRTZXNzaW9uSWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJu
OwotCiAgICAgbV9jbGllbnQtPnJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihzdWdnZXN0ZWRTZXNz
aW9uSWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW0gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0
b3JYUENDb25uZWN0aW9uLm1tCmluZGV4IDc2NjA5OTRjYzI5Li5jMjE5Yjg4ZDlmMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3Rl
SW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCkBAIC0x
NDQsNiArMTQ0LDcgQEAgTlNEaWN0aW9uYXJ5ICpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9u
OjpkZXNlcmlhbGl6ZU1lc3NhZ2UoeHBjX29iamVjdF90IG9iamUKIAogICAgIFJldGFpblB0cjxD
RkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkgPSBhZG9wdENGKChDRkRpY3Rpb25hcnlSZWYpX0NG
WFBDQ3JlYXRlQ0ZPYmplY3RGcm9tWFBDTWVzc2FnZSh4cGNEaWN0aW9uYXJ5KSk7CiAgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRShkaWN0aW9uYXJ5LCAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIHhwYyBt
ZXNzYWdlIik7CisgICAgQVNTRVJUKENGR2V0VHlwZUlEKGRpY3Rpb25hcnkuZ2V0KCkpID09IENG
RGljdGlvbmFyeUdldFR5cGVJRCgpKTsKICAgICByZXR1cm4gKE5TRGljdGlvbmFyeSAqKWRpY3Rp
b25hcnkuYXV0b3JlbGVhc2UoKTsKIH0KIApAQCAtMTgyLDEyICsxODMsMTggQEAgdm9pZCBSZW1v
dGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpoYW5kbGVFdmVudCh4cGNfb2JqZWN0X3Qgb2JqZWN0
KQogICAgIH0KICNlbmRpZgogCi0gICAgTlNEaWN0aW9uYXJ5ICpkYXRhRGljdGlvbmFyeSA9IGRl
c2VyaWFsaXplTWVzc2FnZShvYmplY3QpOwotICAgIGlmICghZGF0YURpY3Rpb25hcnkpCisgICAg
TlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0gZGVzZXJpYWxpemVNZXNzYWdlKG9iamVjdCk7Cisg
ICAgaWYgKCFbZGljdGlvbmFyeSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgTlNTdHJpbmcgKm1lc3NhZ2UgPSBkaWN0aW9uYXJ5W1Jl
bW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb25NZXNzYWdlTmFtZUtleV07CisgICAgaWYgKCFbbWVz
c2FnZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQorICAgICAgICByZXR1cm47CisK
KyAgICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gZGljdGlvbmFyeVtSZW1vdGVJbnNwZWN0b3JY
UENDb25uZWN0aW9uVXNlckluZm9LZXldOworICAgIGlmICh1c2VySW5mbyAmJiAhW3VzZXJJbmZv
IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQogICAgICAgICByZXR1cm47CiAK
LSAgICBOU1N0cmluZyAqbWVzc2FnZSA9IFtkYXRhRGljdGlvbmFyeSBvYmplY3RGb3JLZXk6UmVt
b3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbk1lc3NhZ2VOYW1lS2V5XTsKLSAgICBOU0RpY3Rpb25h
cnkgKnVzZXJJbmZvID0gW2RhdGFEaWN0aW9uYXJ5IG9iamVjdEZvcktleTpSZW1vdGVJbnNwZWN0
b3JYUENDb25uZWN0aW9uVXNlckluZm9LZXldOwogICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBs
b2NrKG1fbXV0ZXgpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnhwY0Nv
bm5lY3Rpb25SZWNlaXZlZE1lc3NhZ2UodGhpcywgbWVzc2FnZSwgdXNlckluZm8pOwpAQCAtMTk5
LDExICsyMDYsMTIgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpzZW5kTWVz
c2FnZShOU1N0cmluZyAqbWVzc2FnZU5hbWUsIE5TRGljdGlvbmEKICAgICBpZiAobV9jbG9zZWQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmRpY3Rpb25hcnkg
PSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdDptZXNzYWdlTmFtZSBm
b3JLZXk6UmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbk1lc3NhZ2VOYW1lS2V5XTsKKyAgICBS
ZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gZGljdGlvbmFyeSA9IGFkb3B0TlMoW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0
Om1lc3NhZ2VOYW1lIGZvcktleTpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uTWVzc2FnZU5h
bWVLZXldOwogICAgIGlmICh1c2VySW5mbykKICAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0
OnVzZXJJbmZvIGZvcktleTpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uVXNlckluZm9LZXld
OwogCi0gICAgeHBjX29iamVjdF90IHhwY0RpY3Rpb25hcnkgPSBfQ0ZYUENDcmVhdGVYUENNZXNz
YWdlV2l0aENGT2JqZWN0KChDRkRpY3Rpb25hcnlSZWYpZGljdGlvbmFyeSk7CisgICAgeHBjX29i
amVjdF90IHhwY0RpY3Rpb25hcnkgPSBfQ0ZYUENDcmVhdGVYUENNZXNzYWdlV2l0aENGT2JqZWN0
KChDRkRpY3Rpb25hcnlSZWYpZGljdGlvbmFyeS5nZXQoKSk7CiAgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSh4cGNEaWN0aW9uYXJ5ICYmIHhwY19nZXRfdHlwZSh4cGNEaWN0aW9uYXJ5KSA9PSBYUENf
VFlQRV9ESUNUSU9OQVJZLCAiVW5hYmxlIHRvIHNlcmlhbGl6ZSB4cGMgbWVzc2FnZSIpOwogICAg
IGlmICgheHBjRGljdGlvbmFyeSkKICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310482</attachid>
            <date>2017-05-17 21:01:59 -0700</date>
            <delta_ts>2017-05-17 21:05:03 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>types-2.patch</filename>
            <type>text/plain</type>
            <size>12809</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdmMGI1NGM3OWZjLi5kNTA2MmQ2ZDc2NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTctMDUtMTcgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGUgSW5zcGVj
dG9yOiBCZSBzdHJpY3RlciBhYm91dCBjaGVja2luZyBtZXNzYWdlIHR5cGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIyNTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMyMjY0ODM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JD
b2NvYS5tbToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZFNl
dHVwTWVzc2FnZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2
ZWREYXRhTWVzc2FnZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVj
ZWl2ZWREaWRDbG9zZU1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0
b3I6OnJlY2VpdmVkSW5kaWNhdGVNZXNzYWdlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3Rl
SW5zcGVjdG9yOjpyZWNlaXZlZENvbm5lY3Rpb25EaWVkTWVzc2FnZSk6CisgICAgICAgIChJbnNw
ZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aWNJbnNwZWN0aW9uQ29uZmln
dXJhdGlvbk1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnJl
Y2VpdmVkQXV0b21hdGljSW5zcGVjdGlvblJlamVjdE1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVj
dG9yOjpSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkQXV0b21hdGlvblNlc3Npb25SZXF1ZXN0TWVz
c2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JY
UENDb25uZWN0aW9uLm1tOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JYUEND
b25uZWN0aW9uOjpkZXNlcmlhbGl6ZU1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1v
dGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChJbnNwZWN0
b3I6OlJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb246OnNlbmRNZXNzYWdlKToKKyAgICAgICAg
QmFpbCBpZiB3ZSBkb24ndCByZWNlaXZlIHRoZSBleHBlY3RlZCB0eXBlcyBmb3IgbWVzc2FnZSBk
YXRhLgorCiAyMDE3LTA1LTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlIGRvbid0IGRvIGNvbnRleHQgc3dpdGNoZXMgZm9yIFdhc20tPldhc20gY2FsbCBp
bmRpcmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yQ29jb2EubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JDb2NvYS5tbQppbmRleCBkOTc2
MjQ2MzE1Mi4uYmMzNjU1Njc5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNvY29hLm1tCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNv
Y29hLm1tCkBAIC00Myw2ICs0MywxNCBAQAogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2RlZmluZSBCQUlMX0lGX1VO
RVhQRUNURURfVFlQRShleHByLCBjbGFzc0V4cHIpICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlk
IHZhbHVlID0gKGV4cHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICBpZCBjbGFzc1ZhbHVlID0gKGNsYXNzRXhwcik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgaWYgKCFbdmFsdWUgaXNLaW5kT2ZDbGFzczpjbGFzc1ZhbHVlXSkgICAgICAgICAgICBc
CisgICAgICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIH0gd2hpbGUgKDApOworCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogc3RhdGlj
IGJvb2wgY2FuQWNjZXNzV2ViSW5zcGVjdG9yTWFjaFBvcnQoKQpAQCAtNDQ5LDE4ICs0NTcsMjMg
QEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnB1c2hMaXN0aW5nc1Nvb24oKQogCiB2b2lkIFJlbW90
ZUluc3BlY3Rvcjo6cmVjZWl2ZWRTZXR1cE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykK
IHsKLSAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JL
ZXk6V0lSVGFyZ2V0SWRlbnRpZmllcktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdOworICAgIE5T
TnVtYmVyICp0YXJnZXRJZGVudGlmaWVyTnVtYmVyID0gdXNlckluZm9bV0lSVGFyZ2V0SWRlbnRp
ZmllcktleV07CisgICAgQkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUodGFyZ2V0SWRlbnRpZmllck51
bWJlciwgW05TTnVtYmVyIGNsYXNzXSk7CisKKyAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50
aWZpZXIgPSB1c2VySW5mb1tXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleV07CisgICAgQkFJTF9J
Rl9VTkVYUEVDVEVEX1RZUEUoY29ubmVjdGlvbklkZW50aWZpZXIsIFtOU1N0cmluZyBjbGFzc10p
OworCisgICAgTlNTdHJpbmcgKnNlbmRlciA9IHVzZXJJbmZvW1dJUlNlbmRlcktleV07CisgICAg
QkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUoc2VuZGVyLCBbTlNTdHJpbmcgY2xhc3NdKTsKKworICAg
IE5TTnVtYmVyICphdXRvbWF0aWNhbGx5UGF1c2VOdW1iZXIgPSB1c2VySW5mb1tXSVJBdXRvbWF0
aWNhbGx5UGF1c2VdOworICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKGF1dG9tYXRpY2FsbHlQ
YXVzZU51bWJlciwgW05TTnVtYmVyIGNsYXNzXSk7CisgICAgQk9PTCBhdXRvbWF0aWNhbGx5UGF1
c2UgPSBhdXRvbWF0aWNhbGx5UGF1c2VOdW1iZXIuYm9vbFZhbHVlOworCisgICAgdW5zaWduZWQg
dGFyZ2V0SWRlbnRpZmllciA9IHRhcmdldElkZW50aWZpZXJOdW1iZXIudW5zaWduZWRJbnRlZ2Vy
VmFsdWU7CiAgICAgaWYgKCF0YXJnZXRJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50aWZpZXIgPSBbdXNlckluZm8gb2JqZWN0Rm9yS2V5
OldJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5XTsKLSAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlm
aWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBOU1N0cmluZyAqc2VuZGVyID0gW3VzZXJJbmZv
IG9iamVjdEZvcktleTpXSVJTZW5kZXJLZXldOwotICAgIGlmICghc2VuZGVyKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICBpZiAobV90YXJnZXRDb25uZWN0aW9uTWFwLmNvbnRhaW5zKHRhcmdldElk
ZW50aWZpZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ3NCw3ICs0ODcsNiBAQCB2b2lkIFJl
bW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRTZXR1cE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5m
bykKIAogICAgIGlmIChpczxSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0Pih0YXJnZXQpKSB7CiAgICAg
ICAgIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gbV9hdXRvbWF0aWNJbnNwZWN0aW9uQ2Fu
ZGlkYXRlVGFyZ2V0SWRlbnRpZmllciA9PSB0YXJnZXQtPnRhcmdldElkZW50aWZpZXIoKTsKLSAg
ICAgICAgYm9vbCBhdXRvbWF0aWNhbGx5UGF1c2UgPSBbW3VzZXJJbmZvIG9iamVjdEZvcktleTpX
SVJBdXRvbWF0aWNhbGx5UGF1c2VdIGJvb2xWYWx1ZV07CiAKICAgICAgICAgaWYgKCFjb25uZWN0
aW9uVG9UYXJnZXQtPnNldHVwKGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYXV0b21hdGljYWxseVBh
dXNlKSkgewogICAgICAgICAgICAgY29ubmVjdGlvblRvVGFyZ2V0LT5jbG9zZSgpOwpAQCAtNDk1
LDcgKzUwNywxMyBAQCB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRTZXR1cE1lc3NhZ2Uo
TlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIAogdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVk
RGF0YU1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsKLSAgICB1bnNpZ25lZCB0YXJn
ZXRJZGVudGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JLZXk6V0lSVGFyZ2V0SWRlbnRpZmll
cktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdOworICAgIE5TTnVtYmVyICp0YXJnZXRJZGVudGlm
aWVyTnVtYmVyID0gdXNlckluZm9bV0lSVGFyZ2V0SWRlbnRpZmllcktleV07CisgICAgQkFJTF9J
Rl9VTkVYUEVDVEVEX1RZUEUodGFyZ2V0SWRlbnRpZmllck51bWJlciwgW05TTnVtYmVyIGNsYXNz
XSk7CisKKyAgICBOU0RhdGEgKmRhdGEgPSB1c2VySW5mb1tXSVJTb2NrZXREYXRhS2V5XTsKKyAg
ICBCQUlMX0lGX1VORVhQRUNURURfVFlQRShkYXRhLCBbTlNEYXRhIGNsYXNzXSk7CisKKyAgICB1
bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gdGFyZ2V0SWRlbnRpZmllck51bWJlci51bnNpZ25l
ZEludGVnZXJWYWx1ZTsKICAgICBpZiAoIXRhcmdldElkZW50aWZpZXIpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNTAzLDIxICs1MjEsMjIgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVk
RGF0YU1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKICAgICBpZiAoIWNvbm5lY3Rpb25U
b1RhcmdldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNEYXRhICpkYXRhID0gW3VzZXJJbmZv
IG9iamVjdEZvcktleTpXSVJTb2NrZXREYXRhS2V5XTsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+
IG1lc3NhZ2UgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpkYXRhIGVu
Y29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSk7CiAgICAgY29ubmVjdGlvblRvVGFyZ2V0LT5z
ZW5kTWVzc2FnZVRvVGFyZ2V0KG1lc3NhZ2UuZ2V0KCkpOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6cmVjZWl2ZWREaWRDbG9zZU1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsK
LSAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JLZXk6
V0lSVGFyZ2V0SWRlbnRpZmllcktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdOworICAgIE5TTnVt
YmVyICp0YXJnZXRJZGVudGlmaWVyTnVtYmVyID0gdXNlckluZm9bV0lSVGFyZ2V0SWRlbnRpZmll
cktleV07CisgICAgQkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUodGFyZ2V0SWRlbnRpZmllck51bWJl
ciwgW05TTnVtYmVyIGNsYXNzXSk7CisKKyAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50aWZp
ZXIgPSB1c2VySW5mb1tXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleV07CisgICAgQkFJTF9JRl9V
TkVYUEVDVEVEX1RZUEUoY29ubmVjdGlvbklkZW50aWZpZXIsIFtOU1N0cmluZyBjbGFzc10pOwor
CisgICAgdW5zaWduZWQgdGFyZ2V0SWRlbnRpZmllciA9IHRhcmdldElkZW50aWZpZXJOdW1iZXIu
dW5zaWduZWRJbnRlZ2VyVmFsdWU7CiAgICAgaWYgKCF0YXJnZXRJZGVudGlmaWVyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50aWZpZXIgPSBbdXNlcklu
Zm8gb2JqZWN0Rm9yS2V5OldJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5XTsKLSAgICBpZiAoIWNv
bm5lY3Rpb25JZGVudGlmaWVyKQotICAgICAgICByZXR1cm47Ci0KICAgICBhdXRvIGNvbm5lY3Rp
b25Ub1RhcmdldCA9IG1fdGFyZ2V0Q29ubmVjdGlvbk1hcC5nZXQodGFyZ2V0SWRlbnRpZmllcik7
CiAgICAgaWYgKCFjb25uZWN0aW9uVG9UYXJnZXQpCiAgICAgICAgIHJldHVybjsKQEAgLTUzOCwx
OCArNTU3LDIzIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZEdldExpc3RpbmdNZXNz
YWdlKE5TRGljdGlvbmFyeSAqKQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRJbmRp
Y2F0ZU1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsKLSAgICB1bnNpZ25lZCBpZGVu
dGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JLZXk6V0lSVGFyZ2V0SWRlbnRpZmllcktleV0g
dW5zaWduZWRJbnRlZ2VyVmFsdWVdOwotICAgIGlmICghaWRlbnRpZmllcikKKyAgICBOU051bWJl
ciAqdGFyZ2V0SWRlbnRpZmllck51bWJlciA9IHVzZXJJbmZvW1dJUlRhcmdldElkZW50aWZpZXJL
ZXldOworICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKHRhcmdldElkZW50aWZpZXJOdW1iZXIs
IFtOU051bWJlciBjbGFzc10pOworCisgICAgTlNOdW1iZXIgKmluZGljYXRlRW5hYmxlZE51bWJl
ciA9IHVzZXJJbmZvW1dJUkluZGljYXRlRW5hYmxlZEtleV07CisgICAgQkFJTF9JRl9VTkVYUEVD
VEVEX1RZUEUoaW5kaWNhdGVFbmFibGVkTnVtYmVyLCBbTlNOdW1iZXIgY2xhc3NdKTsKKyAgICBC
T09MIGluZGljYXRlRW5hYmxlZCA9IGluZGljYXRlRW5hYmxlZE51bWJlci5ib29sVmFsdWU7CisK
KyAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gdGFyZ2V0SWRlbnRpZmllck51bWJlci51
bnNpZ25lZEludGVnZXJWYWx1ZTsKKyAgICBpZiAoIXRhcmdldElkZW50aWZpZXIpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEJPT0wgaW5kaWNhdGVFbmFibGVkID0gW1t1c2VySW5mbyBvYmplY3RG
b3JLZXk6V0lSSW5kaWNhdGVFbmFibGVkS2V5XSBib29sVmFsdWVdOwotCiAgICAgY2FsbE9uV2Vi
VGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKF57CiAgICAgICAgIFJlbW90ZUNvbnRy
b2xsYWJsZVRhcmdldCogdGFyZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgewogICAgICAgICAgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9tdXRleCk7CiAKLSAgICAgICAgICAgIGF1dG8g
ZmluZFJlc3VsdCA9IG1fdGFyZ2V0TWFwLmZpbmQoaWRlbnRpZmllcik7CisgICAgICAgICAgICBh
dXRvIGZpbmRSZXN1bHQgPSBtX3RhcmdldE1hcC5maW5kKHRhcmdldElkZW50aWZpZXIpOwogICAg
ICAgICAgICAgaWYgKGZpbmRSZXN1bHQgPT0gbV90YXJnZXRNYXAuZW5kKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC01ODgsOSArNjEyLDggQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6
OnJlY2VpdmVkUHJveHlBcHBsaWNhdGlvblNldHVwTWVzc2FnZShOU0RpY3Rpb25hcnkgKikKIAog
dm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkQ29ubmVjdGlvbkRpZWRNZXNzYWdlKE5TRGlj
dGlvbmFyeSAqdXNlckluZm8pCiB7Ci0gICAgTlNTdHJpbmcgKmNvbm5lY3Rpb25JZGVudGlmaWVy
ID0gW3VzZXJJbmZvIG9iamVjdEZvcktleTpXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleV07Ci0g
ICAgaWYgKCFjb25uZWN0aW9uSWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuOworICAgIE5TU3Ry
aW5nICpjb25uZWN0aW9uSWRlbnRpZmllciA9IHVzZXJJbmZvW1dJUkNvbm5lY3Rpb25JZGVudGlm
aWVyS2V5XTsKKyAgICBCQUlMX0lGX1VORVhQRUNURURfVFlQRShjb25uZWN0aW9uSWRlbnRpZmll
ciwgW05TU3RyaW5nIGNsYXNzXSk7CiAKICAgICBhdXRvIGl0ID0gbV90YXJnZXRDb25uZWN0aW9u
TWFwLmJlZ2luKCk7CiAgICAgYXV0byBlbmQgPSBtX3RhcmdldENvbm5lY3Rpb25NYXAuZW5kKCk7
CkBAIC02MTEsNyArNjM0LDEwIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZENvbm5l
Y3Rpb25EaWVkTWVzc2FnZShOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKQogCiB2b2lkIFJlbW90ZUlu
c3BlY3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aWNJbnNwZWN0aW9uQ29uZmlndXJhdGlvbk1lc3NhZ2Uo
TlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsKLSAgICBtX2F1dG9tYXRpY0luc3BlY3Rpb25FbmFi
bGVkID0gW1t1c2VySW5mbyBvYmplY3RGb3JLZXk6V0lSQXV0b21hdGljSW5zcGVjdGlvbkVuYWJs
ZWRLZXldIGJvb2xWYWx1ZV07CisgICAgTlNOdW1iZXIgKmF1dG9tYXRpY0luc3BlY3Rpb25FbmFi
bGVkTnVtYmVyID0gdXNlckluZm9bV0lSQXV0b21hdGljSW5zcGVjdGlvbkVuYWJsZWRLZXldOwor
ICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKGF1dG9tYXRpY0luc3BlY3Rpb25FbmFibGVkTnVt
YmVyLCBbTlNOdW1iZXIgY2xhc3NdKTsKKworICAgIG1fYXV0b21hdGljSW5zcGVjdGlvbkVuYWJs
ZWQgPSBhdXRvbWF0aWNJbnNwZWN0aW9uRW5hYmxlZE51bWJlci5ib29sVmFsdWU7CiAKICAgICBp
ZiAoIW1fYXV0b21hdGljSW5zcGVjdGlvbkVuYWJsZWQgJiYgbV9hdXRvbWF0aWNJbnNwZWN0aW9u
UGF1c2VkKQogICAgICAgICBtX2F1dG9tYXRpY0luc3BlY3Rpb25QYXVzZWQgPSBmYWxzZTsKQEAg
LTYxOSwyNSArNjQ1LDI2IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZEF1dG9tYXRp
Y0luc3BlY3Rpb25Db25maWd1cmF0aW9uTWVzc2FnZShOU0RpY3Rpb25hCiAKIHZvaWQgUmVtb3Rl
SW5zcGVjdG9yOjpyZWNlaXZlZEF1dG9tYXRpY0luc3BlY3Rpb25SZWplY3RNZXNzYWdlKE5TRGlj
dGlvbmFyeSAqdXNlckluZm8pCiB7Ci0gICAgdW5zaWduZWQgcmVqZWN0aW9uSWRlbnRpZmllciA9
IFtbdXNlckluZm8gb2JqZWN0Rm9yS2V5OldJUlRhcmdldElkZW50aWZpZXJLZXldIHVuc2lnbmVk
SW50VmFsdWVdOworICAgIE5TTnVtYmVyICp0YXJnZXRJZGVudGlmaWVyTnVtYmVyID0gdXNlcklu
Zm9bV0lSVGFyZ2V0SWRlbnRpZmllcktleV07CisgICAgQkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUo
dGFyZ2V0SWRlbnRpZmllck51bWJlciwgW05TTnVtYmVyIGNsYXNzXSk7CiAKLSAgICBBU1NFUlQo
cmVqZWN0aW9uSWRlbnRpZmllciA9PSBtX2F1dG9tYXRpY0luc3BlY3Rpb25DYW5kaWRhdGVUYXJn
ZXRJZGVudGlmaWVyKTsKLSAgICBpZiAocmVqZWN0aW9uSWRlbnRpZmllciA9PSBtX2F1dG9tYXRp
Y0luc3BlY3Rpb25DYW5kaWRhdGVUYXJnZXRJZGVudGlmaWVyKQorICAgIHVuc2lnbmVkIHRhcmdl
dElkZW50aWZpZXIgPSB0YXJnZXRJZGVudGlmaWVyTnVtYmVyLnVuc2lnbmVkSW50ZWdlclZhbHVl
OworICAgIEFTU0VSVCh0YXJnZXRJZGVudGlmaWVyID09IG1fYXV0b21hdGljSW5zcGVjdGlvbkNh
bmRpZGF0ZVRhcmdldElkZW50aWZpZXIpOworICAgIGlmICh0YXJnZXRJZGVudGlmaWVyID09IG1f
YXV0b21hdGljSW5zcGVjdGlvbkNhbmRpZGF0ZVRhcmdldElkZW50aWZpZXIpCiAgICAgICAgIG1f
YXV0b21hdGljSW5zcGVjdGlvblBhdXNlZCA9IGZhbHNlOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aW9uU2Vzc2lvblJlcXVlc3RNZXNzYWdlKE5TRGljdGlvbmFy
eSAqdXNlckluZm8pCiB7CisgICAgTlNTdHJpbmcgKnN1Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVy
ID0gdXNlckluZm9bV0lSU2Vzc2lvbklkZW50aWZpZXJLZXldOworICAgIEJBSUxfSUZfVU5FWFBF
Q1RFRF9UWVBFKHN1Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVyLCBbTlNTdHJpbmcgY2xhc3NdKTsK
KwogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9jbGll
bnRDYXBhYmlsaXRpZXMgfHwgIW1fY2xpZW50Q2FwYWJpbGl0aWVzLT5yZW1vdGVBdXRvbWF0aW9u
QWxsb3dlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNTdHJpbmcgKnN1Z2dlc3RlZFNlc3Np
b25JZGVudGlmaWVyID0gW3VzZXJJbmZvIG9iamVjdEZvcktleTpXSVJTZXNzaW9uSWRlbnRpZmll
cktleV07Ci0gICAgaWYgKCFzdWdnZXN0ZWRTZXNzaW9uSWRlbnRpZmllcikKLSAgICAgICAgcmV0
dXJuOwotCiAgICAgbV9jbGllbnQtPnJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihzdWdnZXN0ZWRT
ZXNzaW9uSWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW0g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNw
ZWN0b3JYUENDb25uZWN0aW9uLm1tCmluZGV4IDc2NjA5OTRjYzI5Li5jMjE5Yjg4ZDlmMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVt
b3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCkBA
IC0xNDQsNiArMTQ0LDcgQEAgTlNEaWN0aW9uYXJ5ICpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0
aW9uOjpkZXNlcmlhbGl6ZU1lc3NhZ2UoeHBjX29iamVjdF90IG9iamUKIAogICAgIFJldGFpblB0
cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkgPSBhZG9wdENGKChDRkRpY3Rpb25hcnlSZWYp
X0NGWFBDQ3JlYXRlQ0ZPYmplY3RGcm9tWFBDTWVzc2FnZSh4cGNEaWN0aW9uYXJ5KSk7CiAgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShkaWN0aW9uYXJ5LCAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIHhw
YyBtZXNzYWdlIik7CisgICAgQVNTRVJUKENGR2V0VHlwZUlEKGRpY3Rpb25hcnkuZ2V0KCkpID09
IENGRGljdGlvbmFyeUdldFR5cGVJRCgpKTsKICAgICByZXR1cm4gKE5TRGljdGlvbmFyeSAqKWRp
Y3Rpb25hcnkuYXV0b3JlbGVhc2UoKTsKIH0KIApAQCAtMTgyLDEyICsxODMsMTggQEAgdm9pZCBS
ZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpoYW5kbGVFdmVudCh4cGNfb2JqZWN0X3Qgb2Jq
ZWN0KQogICAgIH0KICNlbmRpZgogCi0gICAgTlNEaWN0aW9uYXJ5ICpkYXRhRGljdGlvbmFyeSA9
IGRlc2VyaWFsaXplTWVzc2FnZShvYmplY3QpOwotICAgIGlmICghZGF0YURpY3Rpb25hcnkpCisg
ICAgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0gZGVzZXJpYWxpemVNZXNzYWdlKG9iamVjdCk7
CisgICAgaWYgKCFbZGljdGlvbmFyeSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3Nd
XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNTdHJpbmcgKm1lc3NhZ2UgPSBkaWN0aW9uYXJ5
W1JlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb25NZXNzYWdlTmFtZUtleV07CisgICAgaWYgKCFb
bWVzc2FnZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQorICAgICAgICByZXR1cm47
CisKKyAgICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gZGljdGlvbmFyeVtSZW1vdGVJbnNwZWN0
b3JYUENDb25uZWN0aW9uVXNlckluZm9LZXldOworICAgIGlmICh1c2VySW5mbyAmJiAhW3VzZXJJ
bmZvIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQogICAgICAgICByZXR1cm47
CiAKLSAgICBOU1N0cmluZyAqbWVzc2FnZSA9IFtkYXRhRGljdGlvbmFyeSBvYmplY3RGb3JLZXk6
UmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbk1lc3NhZ2VOYW1lS2V5XTsKLSAgICBOU0RpY3Rp
b25hcnkgKnVzZXJJbmZvID0gW2RhdGFEaWN0aW9uYXJ5IG9iamVjdEZvcktleTpSZW1vdGVJbnNw
ZWN0b3JYUENDb25uZWN0aW9uVXNlckluZm9LZXldOwogICAgIHN0ZDo6bG9ja19ndWFyZDxMb2Nr
PiBsb2NrKG1fbXV0ZXgpOwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnhw
Y0Nvbm5lY3Rpb25SZWNlaXZlZE1lc3NhZ2UodGhpcywgbWVzc2FnZSwgdXNlckluZm8pOwpAQCAt
MTk5LDExICsyMDYsMTIgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpzZW5k
TWVzc2FnZShOU1N0cmluZyAqbWVzc2FnZU5hbWUsIE5TRGljdGlvbmEKICAgICBpZiAobV9jbG9z
ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmRpY3Rpb25h
cnkgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdDptZXNzYWdlTmFt
ZSBmb3JLZXk6UmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbk1lc3NhZ2VOYW1lS2V5XTsKKyAg
ICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gZGljdGlvbmFyeSA9IGFkb3B0TlMoW1tO
U011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAgW2RpY3Rpb25hcnkgc2V0T2Jq
ZWN0Om1lc3NhZ2VOYW1lIGZvcktleTpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uTWVzc2Fn
ZU5hbWVLZXldOwogICAgIGlmICh1c2VySW5mbykKICAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2Jq
ZWN0OnVzZXJJbmZvIGZvcktleTpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uVXNlckluZm9L
ZXldOwogCi0gICAgeHBjX29iamVjdF90IHhwY0RpY3Rpb25hcnkgPSBfQ0ZYUENDcmVhdGVYUENN
ZXNzYWdlV2l0aENGT2JqZWN0KChDRkRpY3Rpb25hcnlSZWYpZGljdGlvbmFyeSk7CisgICAgeHBj
X29iamVjdF90IHhwY0RpY3Rpb25hcnkgPSBfQ0ZYUENDcmVhdGVYUENNZXNzYWdlV2l0aENGT2Jq
ZWN0KChDRkRpY3Rpb25hcnlSZWYpZGljdGlvbmFyeS5nZXQoKSk7CiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRSh4cGNEaWN0aW9uYXJ5ICYmIHhwY19nZXRfdHlwZSh4cGNEaWN0aW9uYXJ5KSA9PSBY
UENfVFlQRV9ESUNUSU9OQVJZLCAiVW5hYmxlIHRvIHNlcmlhbGl6ZSB4cGMgbWVzc2FnZSIpOwog
ICAgIGlmICgheHBjRGljdGlvbmFyeSkKICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310483</attachid>
            <date>2017-05-17 21:05:03 -0700</date>
            <delta_ts>2017-05-18 10:13:18 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>types-3.patch</filename>
            <type>text/plain</type>
            <size>12836</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdmMGI1NGM3OWZjLi5kNTA2MmQ2ZDc2NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTctMDUtMTcgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGUgSW5zcGVj
dG9yOiBCZSBzdHJpY3RlciBhYm91dCBjaGVja2luZyBtZXNzYWdlIHR5cGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIyNTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMyMjY0ODM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JD
b2NvYS5tbToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZFNl
dHVwTWVzc2FnZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2
ZWREYXRhTWVzc2FnZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVj
ZWl2ZWREaWRDbG9zZU1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0
b3I6OnJlY2VpdmVkSW5kaWNhdGVNZXNzYWdlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3Rl
SW5zcGVjdG9yOjpyZWNlaXZlZENvbm5lY3Rpb25EaWVkTWVzc2FnZSk6CisgICAgICAgIChJbnNw
ZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aWNJbnNwZWN0aW9uQ29uZmln
dXJhdGlvbk1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnJl
Y2VpdmVkQXV0b21hdGljSW5zcGVjdGlvblJlamVjdE1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVj
dG9yOjpSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkQXV0b21hdGlvblNlc3Npb25SZXF1ZXN0TWVz
c2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JY
UENDb25uZWN0aW9uLm1tOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JYUEND
b25uZWN0aW9uOjpkZXNlcmlhbGl6ZU1lc3NhZ2UpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1v
dGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChJbnNwZWN0
b3I6OlJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb246OnNlbmRNZXNzYWdlKToKKyAgICAgICAg
QmFpbCBpZiB3ZSBkb24ndCByZWNlaXZlIHRoZSBleHBlY3RlZCB0eXBlcyBmb3IgbWVzc2FnZSBk
YXRhLgorCiAyMDE3LTA1LTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlIGRvbid0IGRvIGNvbnRleHQgc3dpdGNoZXMgZm9yIFdhc20tPldhc20gY2FsbCBp
bmRpcmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yQ29jb2EubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JDb2NvYS5tbQppbmRleCBkOTc2
MjQ2MzE1Mi4uNThjZDVjYjVmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNvY29hLm1tCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNv
Y29hLm1tCkBAIC00Myw2ICs0MywxNCBAQAogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2RlZmluZSBCQUlMX0lGX1VO
RVhQRUNURURfVFlQRShleHByLCBjbGFzc0V4cHIpICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlk
IHZhbHVlID0gKGV4cHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICBpZCBjbGFzc1ZhbHVlID0gKGNsYXNzRXhwcik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgaWYgKCFbdmFsdWUgaXNLaW5kT2ZDbGFzczpjbGFzc1ZhbHVlXSkgICAgICAgICAgICBc
CisgICAgICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIH0gd2hpbGUgKDApOworCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogc3RhdGlj
IGJvb2wgY2FuQWNjZXNzV2ViSW5zcGVjdG9yTWFjaFBvcnQoKQpAQCAtNDQ5LDE4ICs0NTcsMjMg
QEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnB1c2hMaXN0aW5nc1Nvb24oKQogCiB2b2lkIFJlbW90
ZUluc3BlY3Rvcjo6cmVjZWl2ZWRTZXR1cE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykK
IHsKLSAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyID0gW1t1c2VySW5mbyBvYmplY3RGb3JL
ZXk6V0lSVGFyZ2V0SWRlbnRpZmllcktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdOworICAgIE5T
TnVtYmVyICp0YXJnZXRJZGVudGlmaWVyTnVtYmVyID0gdXNlckluZm9bV0lSVGFyZ2V0SWRlbnRp
ZmllcktleV07CisgICAgQkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUodGFyZ2V0SWRlbnRpZmllck51
bWJlciwgW05TTnVtYmVyIGNsYXNzXSk7CisKKyAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50
aWZpZXIgPSB1c2VySW5mb1tXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleV07CisgICAgQkFJTF9J
Rl9VTkVYUEVDVEVEX1RZUEUoY29ubmVjdGlvbklkZW50aWZpZXIsIFtOU1N0cmluZyBjbGFzc10p
OworCisgICAgTlNTdHJpbmcgKnNlbmRlciA9IHVzZXJJbmZvW1dJUlNlbmRlcktleV07CisgICAg
QkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUoc2VuZGVyLCBbTlNTdHJpbmcgY2xhc3NdKTsKKworICAg
IE5TTnVtYmVyICphdXRvbWF0aWNhbGx5UGF1c2VOdW1iZXIgPSB1c2VySW5mb1tXSVJBdXRvbWF0
aWNhbGx5UGF1c2VdOworICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKGF1dG9tYXRpY2FsbHlQ
YXVzZU51bWJlciwgW05TTnVtYmVyIGNsYXNzXSk7CisgICAgQk9PTCBhdXRvbWF0aWNhbGx5UGF1
c2UgPSBhdXRvbWF0aWNhbGx5UGF1c2VOdW1iZXIuYm9vbFZhbHVlOworCisgICAgdW5zaWduZWQg
dGFyZ2V0SWRlbnRpZmllciA9IHRhcmdldElkZW50aWZpZXJOdW1iZXIudW5zaWduZWRJbnRWYWx1
ZTsKICAgICBpZiAoIXRhcmdldElkZW50aWZpZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIE5T
U3RyaW5nICpjb25uZWN0aW9uSWRlbnRpZmllciA9IFt1c2VySW5mbyBvYmplY3RGb3JLZXk6V0lS
Q29ubmVjdGlvbklkZW50aWZpZXJLZXldOwotICAgIGlmICghY29ubmVjdGlvbklkZW50aWZpZXIp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIE5TU3RyaW5nICpzZW5kZXIgPSBbdXNlckluZm8gb2Jq
ZWN0Rm9yS2V5OldJUlNlbmRlcktleV07Ci0gICAgaWYgKCFzZW5kZXIpCi0gICAgICAgIHJldHVy
bjsKLQogICAgIGlmIChtX3RhcmdldENvbm5lY3Rpb25NYXAuY29udGFpbnModGFyZ2V0SWRlbnRp
ZmllcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDc0LDcgKzQ4Nyw2IEBAIHZvaWQgUmVtb3Rl
SW5zcGVjdG9yOjpyZWNlaXZlZFNldHVwTWVzc2FnZShOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKQog
CiAgICAgaWYgKGlzPFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ+KHRhcmdldCkpIHsKICAgICAgICAg
Ym9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBtX2F1dG9tYXRpY0luc3BlY3Rpb25DYW5kaWRh
dGVUYXJnZXRJZGVudGlmaWVyID09IHRhcmdldC0+dGFyZ2V0SWRlbnRpZmllcigpOwotICAgICAg
ICBib29sIGF1dG9tYXRpY2FsbHlQYXVzZSA9IFtbdXNlckluZm8gb2JqZWN0Rm9yS2V5OldJUkF1
dG9tYXRpY2FsbHlQYXVzZV0gYm9vbFZhbHVlXTsKIAogICAgICAgICBpZiAoIWNvbm5lY3Rpb25U
b1RhcmdldC0+c2V0dXAoaXNBdXRvbWF0aWNJbnNwZWN0aW9uLCBhdXRvbWF0aWNhbGx5UGF1c2Up
KSB7CiAgICAgICAgICAgICBjb25uZWN0aW9uVG9UYXJnZXQtPmNsb3NlKCk7CkBAIC00OTUsNyAr
NTA3LDEzIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZFNldHVwTWVzc2FnZShOU0Rp
Y3Rpb25hcnkgKnVzZXJJbmZvKQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWREYXRh
TWVzc2FnZShOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKQogewotICAgIHVuc2lnbmVkIHRhcmdldElk
ZW50aWZpZXIgPSBbW3VzZXJJbmZvIG9iamVjdEZvcktleTpXSVJUYXJnZXRJZGVudGlmaWVyS2V5
XSB1bnNpZ25lZEludGVnZXJWYWx1ZV07CisgICAgTlNOdW1iZXIgKnRhcmdldElkZW50aWZpZXJO
dW1iZXIgPSB1c2VySW5mb1tXSVJUYXJnZXRJZGVudGlmaWVyS2V5XTsKKyAgICBCQUlMX0lGX1VO
RVhQRUNURURfVFlQRSh0YXJnZXRJZGVudGlmaWVyTnVtYmVyLCBbTlNOdW1iZXIgY2xhc3NdKTsK
KworICAgIE5TRGF0YSAqZGF0YSA9IHVzZXJJbmZvW1dJUlNvY2tldERhdGFLZXldOworICAgIEJB
SUxfSUZfVU5FWFBFQ1RFRF9UWVBFKGRhdGEsIFtOU0RhdGEgY2xhc3NdKTsKKworICAgIHVuc2ln
bmVkIHRhcmdldElkZW50aWZpZXIgPSB0YXJnZXRJZGVudGlmaWVyTnVtYmVyLnVuc2lnbmVkSW50
VmFsdWU7CiAgICAgaWYgKCF0YXJnZXRJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CiAKQEAg
LTUwMywyMSArNTIxLDIyIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZERhdGFNZXNz
YWdlKE5TRGljdGlvbmFyeSAqdXNlckluZm8pCiAgICAgaWYgKCFjb25uZWN0aW9uVG9UYXJnZXQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIE5TRGF0YSAqZGF0YSA9IFt1c2VySW5mbyBvYmplY3RG
b3JLZXk6V0lSU29ja2V0RGF0YUtleV07CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtZXNzYWdl
ID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YSBlbmNvZGluZzpO
U1VURjhTdHJpbmdFbmNvZGluZ10pOwogICAgIGNvbm5lY3Rpb25Ub1RhcmdldC0+c2VuZE1lc3Nh
Z2VUb1RhcmdldChtZXNzYWdlLmdldCgpKTsKIH0KIAogdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJl
Y2VpdmVkRGlkQ2xvc2VNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlckluZm8pCiB7Ci0gICAgdW5z
aWduZWQgdGFyZ2V0SWRlbnRpZmllciA9IFtbdXNlckluZm8gb2JqZWN0Rm9yS2V5OldJUlRhcmdl
dElkZW50aWZpZXJLZXldIHVuc2lnbmVkSW50ZWdlclZhbHVlXTsKKyAgICBOU051bWJlciAqdGFy
Z2V0SWRlbnRpZmllck51bWJlciA9IHVzZXJJbmZvW1dJUlRhcmdldElkZW50aWZpZXJLZXldOwor
ICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKHRhcmdldElkZW50aWZpZXJOdW1iZXIsIFtOU051
bWJlciBjbGFzc10pOworCisgICAgTlNTdHJpbmcgKmNvbm5lY3Rpb25JZGVudGlmaWVyID0gdXNl
ckluZm9bV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXldOworICAgIEJBSUxfSUZfVU5FWFBFQ1RF
RF9UWVBFKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBbTlNTdHJpbmcgY2xhc3NdKTsKKworICAgIHVu
c2lnbmVkIHRhcmdldElkZW50aWZpZXIgPSB0YXJnZXRJZGVudGlmaWVyTnVtYmVyLnVuc2lnbmVk
SW50VmFsdWU7CiAgICAgaWYgKCF0YXJnZXRJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CiAK
LSAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50aWZpZXIgPSBbdXNlckluZm8gb2JqZWN0Rm9y
S2V5OldJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5XTsKLSAgICBpZiAoIWNvbm5lY3Rpb25JZGVu
dGlmaWVyKQotICAgICAgICByZXR1cm47Ci0KICAgICBhdXRvIGNvbm5lY3Rpb25Ub1RhcmdldCA9
IG1fdGFyZ2V0Q29ubmVjdGlvbk1hcC5nZXQodGFyZ2V0SWRlbnRpZmllcik7CiAgICAgaWYgKCFj
b25uZWN0aW9uVG9UYXJnZXQpCiAgICAgICAgIHJldHVybjsKQEAgLTUzOCwxOCArNTU3LDIzIEBA
IHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZEdldExpc3RpbmdNZXNzYWdlKE5TRGljdGlv
bmFyeSAqKQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRJbmRpY2F0ZU1lc3NhZ2Uo
TlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKIHsKLSAgICB1bnNpZ25lZCBpZGVudGlmaWVyID0gW1t1
c2VySW5mbyBvYmplY3RGb3JLZXk6V0lSVGFyZ2V0SWRlbnRpZmllcktleV0gdW5zaWduZWRJbnRl
Z2VyVmFsdWVdOwotICAgIGlmICghaWRlbnRpZmllcikKKyAgICBOU051bWJlciAqdGFyZ2V0SWRl
bnRpZmllck51bWJlciA9IHVzZXJJbmZvW1dJUlRhcmdldElkZW50aWZpZXJLZXldOworICAgIEJB
SUxfSUZfVU5FWFBFQ1RFRF9UWVBFKHRhcmdldElkZW50aWZpZXJOdW1iZXIsIFtOU051bWJlciBj
bGFzc10pOworCisgICAgTlNOdW1iZXIgKmluZGljYXRlRW5hYmxlZE51bWJlciA9IHVzZXJJbmZv
W1dJUkluZGljYXRlRW5hYmxlZEtleV07CisgICAgQkFJTF9JRl9VTkVYUEVDVEVEX1RZUEUoaW5k
aWNhdGVFbmFibGVkTnVtYmVyLCBbTlNOdW1iZXIgY2xhc3NdKTsKKyAgICBCT09MIGluZGljYXRl
RW5hYmxlZCA9IGluZGljYXRlRW5hYmxlZE51bWJlci5ib29sVmFsdWU7CisKKyAgICB1bnNpZ25l
ZCB0YXJnZXRJZGVudGlmaWVyID0gdGFyZ2V0SWRlbnRpZmllck51bWJlci51bnNpZ25lZEludFZh
bHVlOworICAgIGlmICghdGFyZ2V0SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Qk9PTCBpbmRpY2F0ZUVuYWJsZWQgPSBbW3VzZXJJbmZvIG9iamVjdEZvcktleTpXSVJJbmRpY2F0
ZUVuYWJsZWRLZXldIGJvb2xWYWx1ZV07Ci0KICAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNo
QXN5bmNPbk1haW5UaHJlYWQoXnsKICAgICAgICAgUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0KiB0
YXJnZXQgPSBudWxscHRyOwogICAgICAgICB7CiAgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9jayhtX211dGV4KTsKIAotICAgICAgICAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV90
YXJnZXRNYXAuZmluZChpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGF1dG8gZmluZFJlc3VsdCA9
IG1fdGFyZ2V0TWFwLmZpbmQodGFyZ2V0SWRlbnRpZmllcik7CiAgICAgICAgICAgICBpZiAoZmlu
ZFJlc3VsdCA9PSBtX3RhcmdldE1hcC5lbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTU4OCw5ICs2MTIsOCBAQCB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRQcm94eUFw
cGxpY2F0aW9uU2V0dXBNZXNzYWdlKE5TRGljdGlvbmFyeSAqKQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6cmVjZWl2ZWRDb25uZWN0aW9uRGllZE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5m
bykKIHsKLSAgICBOU1N0cmluZyAqY29ubmVjdGlvbklkZW50aWZpZXIgPSBbdXNlckluZm8gb2Jq
ZWN0Rm9yS2V5OldJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5XTsKLSAgICBpZiAoIWNvbm5lY3Rp
b25JZGVudGlmaWVyKQotICAgICAgICByZXR1cm47CisgICAgTlNTdHJpbmcgKmNvbm5lY3Rpb25J
ZGVudGlmaWVyID0gdXNlckluZm9bV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXldOworICAgIEJB
SUxfSUZfVU5FWFBFQ1RFRF9UWVBFKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBbTlNTdHJpbmcgY2xh
c3NdKTsKIAogICAgIGF1dG8gaXQgPSBtX3RhcmdldENvbm5lY3Rpb25NYXAuYmVnaW4oKTsKICAg
ICBhdXRvIGVuZCA9IG1fdGFyZ2V0Q29ubmVjdGlvbk1hcC5lbmQoKTsKQEAgLTYxMSw3ICs2MzQs
MTAgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkQ29ubmVjdGlvbkRpZWRNZXNzYWdl
KE5TRGljdGlvbmFyeSAqdXNlckluZm8pCiAKIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZl
ZEF1dG9tYXRpY0luc3BlY3Rpb25Db25maWd1cmF0aW9uTWVzc2FnZShOU0RpY3Rpb25hcnkgKnVz
ZXJJbmZvKQogewotICAgIG1fYXV0b21hdGljSW5zcGVjdGlvbkVuYWJsZWQgPSBbW3VzZXJJbmZv
IG9iamVjdEZvcktleTpXSVJBdXRvbWF0aWNJbnNwZWN0aW9uRW5hYmxlZEtleV0gYm9vbFZhbHVl
XTsKKyAgICBOU051bWJlciAqYXV0b21hdGljSW5zcGVjdGlvbkVuYWJsZWROdW1iZXIgPSB1c2Vy
SW5mb1tXSVJBdXRvbWF0aWNJbnNwZWN0aW9uRW5hYmxlZEtleV07CisgICAgQkFJTF9JRl9VTkVY
UEVDVEVEX1RZUEUoYXV0b21hdGljSW5zcGVjdGlvbkVuYWJsZWROdW1iZXIsIFtOU051bWJlciBj
bGFzc10pOworCisgICAgbV9hdXRvbWF0aWNJbnNwZWN0aW9uRW5hYmxlZCA9IGF1dG9tYXRpY0lu
c3BlY3Rpb25FbmFibGVkTnVtYmVyLmJvb2xWYWx1ZTsKIAogICAgIGlmICghbV9hdXRvbWF0aWNJ
bnNwZWN0aW9uRW5hYmxlZCAmJiBtX2F1dG9tYXRpY0luc3BlY3Rpb25QYXVzZWQpCiAgICAgICAg
IG1fYXV0b21hdGljSW5zcGVjdGlvblBhdXNlZCA9IGZhbHNlOwpAQCAtNjE5LDI1ICs2NDUsMjkg
QEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkQXV0b21hdGljSW5zcGVjdGlvbkNvbmZp
Z3VyYXRpb25NZXNzYWdlKE5TRGljdGlvbmEKIAogdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnJlY2Vp
dmVkQXV0b21hdGljSW5zcGVjdGlvblJlamVjdE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5m
bykKIHsKLSAgICB1bnNpZ25lZCByZWplY3Rpb25JZGVudGlmaWVyID0gW1t1c2VySW5mbyBvYmpl
Y3RGb3JLZXk6V0lSVGFyZ2V0SWRlbnRpZmllcktleV0gdW5zaWduZWRJbnRWYWx1ZV07CisgICAg
TlNOdW1iZXIgKnRhcmdldElkZW50aWZpZXJOdW1iZXIgPSB1c2VySW5mb1tXSVJUYXJnZXRJZGVu
dGlmaWVyS2V5XTsKKyAgICBCQUlMX0lGX1VORVhQRUNURURfVFlQRSh0YXJnZXRJZGVudGlmaWVy
TnVtYmVyLCBbTlNOdW1iZXIgY2xhc3NdKTsKIAotICAgIEFTU0VSVChyZWplY3Rpb25JZGVudGlm
aWVyID09IG1fYXV0b21hdGljSW5zcGVjdGlvbkNhbmRpZGF0ZVRhcmdldElkZW50aWZpZXIpOwot
ICAgIGlmIChyZWplY3Rpb25JZGVudGlmaWVyID09IG1fYXV0b21hdGljSW5zcGVjdGlvbkNhbmRp
ZGF0ZVRhcmdldElkZW50aWZpZXIpCisgICAgdW5zaWduZWQgdGFyZ2V0SWRlbnRpZmllciA9IHRh
cmdldElkZW50aWZpZXJOdW1iZXIudW5zaWduZWRJbnRWYWx1ZTsKKyAgICBpZiAoIXRhcmdldElk
ZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCh0YXJnZXRJZGVudGlmaWVy
ID09IG1fYXV0b21hdGljSW5zcGVjdGlvbkNhbmRpZGF0ZVRhcmdldElkZW50aWZpZXIpOworICAg
IGlmICh0YXJnZXRJZGVudGlmaWVyID09IG1fYXV0b21hdGljSW5zcGVjdGlvbkNhbmRpZGF0ZVRh
cmdldElkZW50aWZpZXIpCiAgICAgICAgIG1fYXV0b21hdGljSW5zcGVjdGlvblBhdXNlZCA9IGZh
bHNlOwogfQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aW9uU2Vzc2lv
blJlcXVlc3RNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlckluZm8pCiB7CisgICAgTlNTdHJpbmcg
KnN1Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVyID0gdXNlckluZm9bV0lSU2Vzc2lvbklkZW50aWZp
ZXJLZXldOworICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKHN1Z2dlc3RlZFNlc3Npb25JZGVu
dGlmaWVyLCBbTlNTdHJpbmcgY2xhc3NdKTsKKwogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmICghbV9jbGllbnRDYXBhYmlsaXRpZXMgfHwgIW1fY2xpZW50Q2Fw
YWJpbGl0aWVzLT5yZW1vdGVBdXRvbWF0aW9uQWxsb3dlZCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgTlNTdHJpbmcgKnN1Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVyID0gW3VzZXJJbmZvIG9iamVj
dEZvcktleTpXSVJTZXNzaW9uSWRlbnRpZmllcktleV07Ci0gICAgaWYgKCFzdWdnZXN0ZWRTZXNz
aW9uSWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuOwotCiAgICAgbV9jbGllbnQtPnJlcXVlc3RB
dXRvbWF0aW9uU2Vzc2lvbihzdWdnZXN0ZWRTZXNzaW9uSWRlbnRpZmllcik7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90
ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCmluZGV4IDc2
NjA5OTRjYzI5Li5jMjE5Yjg4ZDlmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5tbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJ
bnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgTlNEaWN0aW9uYXJ5
ICpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpkZXNlcmlhbGl6ZU1lc3NhZ2UoeHBjX29i
amVjdF90IG9iamUKIAogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkg
PSBhZG9wdENGKChDRkRpY3Rpb25hcnlSZWYpX0NGWFBDQ3JlYXRlQ0ZPYmplY3RGcm9tWFBDTWVz
c2FnZSh4cGNEaWN0aW9uYXJ5KSk7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShkaWN0aW9uYXJ5
LCAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIHhwYyBtZXNzYWdlIik7CisgICAgQVNTRVJUKENGR2V0
VHlwZUlEKGRpY3Rpb25hcnkuZ2V0KCkpID09IENGRGljdGlvbmFyeUdldFR5cGVJRCgpKTsKICAg
ICByZXR1cm4gKE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnkuYXV0b3JlbGVhc2UoKTsKIH0KIApA
QCAtMTgyLDEyICsxODMsMTggQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpo
YW5kbGVFdmVudCh4cGNfb2JqZWN0X3Qgb2JqZWN0KQogICAgIH0KICNlbmRpZgogCi0gICAgTlNE
aWN0aW9uYXJ5ICpkYXRhRGljdGlvbmFyeSA9IGRlc2VyaWFsaXplTWVzc2FnZShvYmplY3QpOwot
ICAgIGlmICghZGF0YURpY3Rpb25hcnkpCisgICAgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0g
ZGVzZXJpYWxpemVNZXNzYWdlKG9iamVjdCk7CisgICAgaWYgKCFbZGljdGlvbmFyeSBpc0tpbmRP
ZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNT
dHJpbmcgKm1lc3NhZ2UgPSBkaWN0aW9uYXJ5W1JlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb25N
ZXNzYWdlTmFtZUtleV07CisgICAgaWYgKCFbbWVzc2FnZSBpc0tpbmRPZkNsYXNzOltOU1N0cmlu
ZyBjbGFzc11dKQorICAgICAgICByZXR1cm47CisKKyAgICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZv
ID0gZGljdGlvbmFyeVtSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uVXNlckluZm9LZXldOwor
ICAgIGlmICh1c2VySW5mbyAmJiAhW3VzZXJJbmZvIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFy
eSBjbGFzc11dKQogICAgICAgICByZXR1cm47CiAKLSAgICBOU1N0cmluZyAqbWVzc2FnZSA9IFtk
YXRhRGljdGlvbmFyeSBvYmplY3RGb3JLZXk6UmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbk1l
c3NhZ2VOYW1lS2V5XTsKLSAgICBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvID0gW2RhdGFEaWN0aW9u
YXJ5IG9iamVjdEZvcktleTpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uVXNlckluZm9LZXld
OwogICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fbXV0ZXgpOwogICAgIGlmIChtX2Ns
aWVudCkKICAgICAgICAgbV9jbGllbnQtPnhwY0Nvbm5lY3Rpb25SZWNlaXZlZE1lc3NhZ2UodGhp
cywgbWVzc2FnZSwgdXNlckluZm8pOwpAQCAtMTk5LDExICsyMDYsMTIgQEAgdm9pZCBSZW1vdGVJ
bnNwZWN0b3JYUENDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShOU1N0cmluZyAqbWVzc2FnZU5hbWUs
IE5TRGljdGlvbmEKICAgICBpZiAobV9jbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkgKmRpY3Rpb25hcnkgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aE9iamVjdDptZXNzYWdlTmFtZSBmb3JLZXk6UmVtb3RlSW5zcGVjdG9yWFBDQ29u
bmVjdGlvbk1lc3NhZ2VOYW1lS2V5XTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFy
eT4gZGljdGlvbmFyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
XSk7CisgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0Om1lc3NhZ2VOYW1lIGZvcktleTpSZW1vdGVJ
bnNwZWN0b3JYUENDb25uZWN0aW9uTWVzc2FnZU5hbWVLZXldOwogICAgIGlmICh1c2VySW5mbykK
ICAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OnVzZXJJbmZvIGZvcktleTpSZW1vdGVJbnNw
ZWN0b3JYUENDb25uZWN0aW9uVXNlckluZm9LZXldOwogCi0gICAgeHBjX29iamVjdF90IHhwY0Rp
Y3Rpb25hcnkgPSBfQ0ZYUENDcmVhdGVYUENNZXNzYWdlV2l0aENGT2JqZWN0KChDRkRpY3Rpb25h
cnlSZWYpZGljdGlvbmFyeSk7CisgICAgeHBjX29iamVjdF90IHhwY0RpY3Rpb25hcnkgPSBfQ0ZY
UENDcmVhdGVYUENNZXNzYWdlV2l0aENGT2JqZWN0KChDRkRpY3Rpb25hcnlSZWYpZGljdGlvbmFy
eS5nZXQoKSk7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSh4cGNEaWN0aW9uYXJ5ICYmIHhwY19n
ZXRfdHlwZSh4cGNEaWN0aW9uYXJ5KSA9PSBYUENfVFlQRV9ESUNUSU9OQVJZLCAiVW5hYmxlIHRv
IHNlcmlhbGl6ZSB4cGMgbWVzc2FnZSIpOwogICAgIGlmICgheHBjRGljdGlvbmFyeSkKICAgICAg
ICAgcmV0dXJuOwo=
</data>
<flag name="review"
          id="331543"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>