<?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>59314</bug_id>
          
          <creation_ts>2011-04-24 23:04:32 -0700</creation_ts>
          <short_desc>Implement Length based CSS properties in CSSStyleApplyProperty</short_desc>
          <delta_ts>2011-05-02 10:53:37 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>59414</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>391690</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-04-24 23:04:32 -0700</bug_when>
    <thetext>Implement Length based CSS properties in CSSStyleApplyProperty</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391691</commentid>
    <comment_count>1</comment_count>
      <attachid>90903</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-04-24 23:07:57 -0700</bug_when>
    <thetext>Created attachment 90903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391694</commentid>
    <comment_count>2</comment_count>
      <attachid>90904</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-04-24 23:26:20 -0700</bug_when>
    <thetext>Created attachment 90904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391695</commentid>
    <comment_count>3</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-04-24 23:28:18 -0700</bug_when>
    <thetext>Second patch rearranges constructor parameters and adds default parameters to shorten the calls slightly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396147</commentid>
    <comment_count>4</comment_count>
      <attachid>91862</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-01 17:49:28 -0700</bug_when>
    <thetext>Created attachment 91862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396149</commentid>
    <comment_count>5</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-01 17:51:12 -0700</bug_when>
    <thetext>Third patch moves from boolean constructor parameters to enum template parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396210</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-05-01 20:39:32 -0700</bug_when>
    <thetext>Did you mean to not mark it for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396464</commentid>
    <comment_count>7</comment_count>
      <attachid>91862</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-02 10:53:31 -0700</bug_when>
    <thetext>Comment on attachment 91862
Patch

Clearing flags on attachment: 91862

Committed r85489: &lt;http://trac.webkit.org/changeset/85489&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396465</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-02 10:53:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90903</attachid>
            <date>2011-04-24 23:07:57 -0700</date>
            <delta_ts>2011-04-24 23:26:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59314-20110425160754.patch</filename>
            <type>text/plain</type>
            <size>23979</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NzY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDQtMjQgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgTGVuZ3RoIGJhc2VkIENTUyBw
cm9wZXJ0aWVzIGluIENTU1N0eWxlQXBwbHlQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkzMTQKKworICAgICAgICBObyBuZXcgdGVzdHMg
YXMgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VkLgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBw
bHlQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5TGVuZ3RoOjpB
cHBseVByb3BlcnR5TGVuZ3RoKToKKyAgICAgICAgQWRkZWQgdGhpcyBjbGFzcyB0byBoYW5kbGUg
YWxsIGxlbmd0aCB0eXBlcy4KKyAgICAgICAgUHJvcGVydHkgc3BlY2lmaWMgYmVoYXZpb3IgaXMg
aGFuZGxlZCB0aHJvdWdoIHNldCBvZiBib29sZWFuIHBhcmFtZXRlcnMuCisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eSk6CisgICAg
ICAgIEFkZGVkIGNhbGxzIHRvIHNldCB1cCBlbnRyaWVzIGZvciB0aGUgbmV3bHkgYWRkZWQgbGVu
Z3RoIHByb3BlcnRpZXMuCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAg
IFJlbW92ZSBwcm9wZXJ0eSBpbXBsZW1lbnRhdGlvbnMgbW93IGltcGxlbWVudGVkIGluIENTU1N0
eWxlQXBwbHlQcm9wZXJ0eS4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6cm9vdEVsZW1lbnRTdHlsZSk6CisgICAg
ICAgIEV4cG9zZSBtX3Jvb3RFbGVtZW50U3R5bGUgdmlhIGdldHRlci4KKwogMjAxMS0wNC0yNCAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNhbSBXZWluaWcuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3Bl
cnR5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVBy
b3BlcnR5LmNwcAkocmV2aXNpb24gODQ3NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVBcHBseVByb3BlcnR5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCw2OSBAQCBw
dWJsaWM6CiAgICAgfQogfTsKIAorY2xhc3MgQXBwbHlQcm9wZXJ0eUxlbmd0aCA6IHB1YmxpYyBB
cHBseVByb3BlcnR5QmFzZSB7CitwdWJsaWM6CisgICAgQXBwbHlQcm9wZXJ0eUxlbmd0aChMZW5n
dGggKFJlbmRlclN0eWxlOjoqZ2V0dGVyKSgpIGNvbnN0LCB2b2lkIChSZW5kZXJTdHlsZTo6KnNl
dHRlcikoTGVuZ3RoKSwgTGVuZ3RoICgqaW5pdGlhbCkoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgbm9uZUVuYWJsZWQsIGJvb2wgaW50cmluc2ljRW5hYmxlZCwgYm9vbCBtaW5JbnRy
aW5zaWNFbmFibGVkLCBib29sIGF1dG9FbmFibGVkLCBib29sIG5vbmVVbmRlZmluZWQpCisKKyAg
ICAgICAgOiBtX2dldHRlcihnZXR0ZXIpCisgICAgICAgICwgbV9zZXR0ZXIoc2V0dGVyKQorICAg
ICAgICAsIG1faW5pdGlhbChpbml0aWFsKQorICAgICAgICAsIG1fbm9uZUVuYWJsZWQobm9uZUVu
YWJsZWQpCisgICAgICAgICwgbV9pbnRyaW5zaWNFbmFibGVkKGludHJpbnNpY0VuYWJsZWQpCisg
ICAgICAgICwgbV9taW5JbnRyaW5zaWNFbmFibGVkKG1pbkludHJpbnNpY0VuYWJsZWQpCisgICAg
ICAgICwgbV9hdXRvRW5hYmxlZChhdXRvRW5hYmxlZCkKKyAgICAgICAgLCBtX25vbmVVbmRlZmlu
ZWQobm9uZVVuZGVmaW5lZCkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFwcGx5
SW5oZXJpdFZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yKSBjb25zdAorICAgIHsKKyAg
ICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4qbV9zZXR0ZXIpKChzZWxlY3Rvci0+cGFyZW50U3R5
bGUoKS0+Km1fZ2V0dGVyKSgpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlJbml0
aWFsVmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IpIGNvbnN0CisgICAgeworICAgICAg
ICAoc2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoKCptX2luaXRpYWwpKCkpOworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBhcHBseVZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9y
LCBDU1NWYWx1ZSogdmFsdWUpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXZhbHVlLT5pc1By
aW1pdGl2ZVZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZSk7CisgICAgICAgIGlmIChtX25vbmVFbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgIGlmIChtX25vbmVVbmRlZmlu
ZWQpCisgICAgICAgICAgICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4qbV9zZXR0ZXIpKExlbmd0
aCh1bmRlZmluZWRMZW5ndGgsIEZpeGVkKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4qbV9zZXR0ZXIpKExlbmd0aCgpKTsKKyAgICAgICAg
ZWxzZSBpZiAobV9pbnRyaW5zaWNFbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlSW50cmluc2ljKQorICAgICAgICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4q
bV9zZXR0ZXIpKExlbmd0aChJbnRyaW5zaWMpKTsKKyAgICAgICAgZWxzZSBpZiAobV9taW5JbnRy
aW5zaWNFbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTWlu
SW50cmluc2ljKQorICAgICAgICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4qbV9zZXR0ZXIpKExl
bmd0aChNaW5JbnRyaW5zaWMpKTsKKyAgICAgICAgZWxzZSBpZiAobV9hdXRvRW5hYmxlZCAmJiBw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgICAgICAo
c2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoTGVuZ3RoKCkpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIGludCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsK
KyAgICAgICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0VHlwZUxlbmd0aCh0eXBl
KSkKKyAgICAgICAgICAgICAgICAoc2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoTGVuZ3Ro
KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHNlbGVjdG9yLT5zdHls
ZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzZWxlY3Rvci0+c3R5bGUoKS0+ZWZm
ZWN0aXZlWm9vbSgpKSwgRml4ZWQsIHByaW1pdGl2ZVZhbHVlLT5pc1F1aXJrVmFsdWUoKSkpOwor
ICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNF
TlRBR0UpCisgICAgICAgICAgICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4qbV9zZXR0ZXIpKExl
bmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCkpOworICAgICAg
ICB9CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgTGVuZ3RoIChSZW5kZXJTdHlsZTo6Km1fZ2V0
dGVyKSgpIGNvbnN0OworICAgIHZvaWQgKFJlbmRlclN0eWxlOjoqbV9zZXR0ZXIpKExlbmd0aCk7
CisgICAgTGVuZ3RoICgqbV9pbml0aWFsKSgpOworICAgIGJvb2wgbV9ub25lRW5hYmxlZDsKKyAg
ICBib29sIG1faW50cmluc2ljRW5hYmxlZDsKKyAgICBib29sIG1fbWluSW50cmluc2ljRW5hYmxl
ZDsKKyAgICBib29sIG1fYXV0b0VuYWJsZWQ7CisgICAgYm9vbCBtX25vbmVVbmRlZmluZWQ7Cit9
OworCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIEFwcGx5UHJvcGVydHlGaWxsTGF5ZXIg
OiBwdWJsaWMgQXBwbHlQcm9wZXJ0eUJhc2UgewogcHVibGljOgpAQCAtMzc5LDYgKzQ0MiwzOCBA
QCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wCiAgICAgc2V0UHJvcGVy
dHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yLCBuZXcgQXBwbHlQcm9w
ZXJ0eUNvbG9yQmFzZSgmUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNpc0NvbG9yLCAmUmVuZGVyU3R5
bGU6OmNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldFRleHRFbXBoYXNpc0NvbG9yKSk7CiAgICAgc2V0
UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IsIG5ldyBBcHBseVBy
b3BlcnR5Q29sb3JCYXNlKCZSZW5kZXJTdHlsZTo6dGV4dEZpbGxDb2xvciwgJlJlbmRlclN0eWxl
Ojpjb2xvciwgJlJlbmRlclN0eWxlOjpzZXRUZXh0RmlsbENvbG9yKSk7CiAgICAgc2V0UHJvcGVy
dHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvciwgbmV3IEFwcGx5UHJvcGVy
dHlDb2xvckJhc2UoJlJlbmRlclN0eWxlOjp0ZXh0U3Ryb2tlQ29sb3IsICZSZW5kZXJTdHlsZTo6
Y29sb3IsICZSZW5kZXJTdHlsZTo6c2V0VGV4dFN0cm9rZUNvbG9yKSk7CisKKworICAgIHNldFBy
b3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlUb3AsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5k
ZXJTdHlsZTo6dG9wLCAmUmVuZGVyU3R5bGU6OnNldFRvcCwgJlJlbmRlclN0eWxlOjppbml0aWFs
T2Zmc2V0LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSkpOworICAgIHNldFByb3Bl
cnR5VmFsdWUoQ1NTUHJvcGVydHlSaWdodCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJlbmRl
clN0eWxlOjpyaWdodCwgJlJlbmRlclN0eWxlOjpzZXRSaWdodCwgJlJlbmRlclN0eWxlOjppbml0
aWFsT2Zmc2V0LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSkpOworICAgIHNldFBy
b3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3R0b20sIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZS
ZW5kZXJTdHlsZTo6Ym90dG9tLCAmUmVuZGVyU3R5bGU6OnNldEJvdHRvbSwgJlJlbmRlclN0eWxl
Ojppbml0aWFsT2Zmc2V0LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSkpOworICAg
IHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlMZWZ0LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0
aCgmUmVuZGVyU3R5bGU6OmxlZnQsICZSZW5kZXJTdHlsZTo6c2V0TGVmdCwgJlJlbmRlclN0eWxl
Ojppbml0aWFsT2Zmc2V0LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSkpOworCisg
ICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdpZHRoLCBuZXcgQXBwbHlQcm9wZXJ0eUxl
bmd0aCgmUmVuZGVyU3R5bGU6OndpZHRoLCAmUmVuZGVyU3R5bGU6OnNldFdpZHRoLCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxTaXplLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpKTsKKyAg
ICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SGVpZ2h0LCBuZXcgQXBwbHlQcm9wZXJ0eUxl
bmd0aCgmUmVuZGVyU3R5bGU6OmhlaWdodCwgJlJlbmRlclN0eWxlOjpzZXRIZWlnaHQsICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbFNpemUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSkpOwor
CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIG5ldyBBcHBseVBy
b3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6dGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjpzZXRU
ZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50LCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UpKTsKKworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVy
dHlNYXhIZWlnaHQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6bWF4SGVp
Z2h0LCAmUmVuZGVyU3R5bGU6OnNldE1heEhlaWdodCwgJlJlbmRlclN0eWxlOjppbml0aWFsTWF4
U2l6ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpKTsKKyAgICBzZXRQcm9wZXJ0eVZh
bHVlKENTU1Byb3BlcnR5TWF4V2lkdGgsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJT
dHlsZTo6bWF4V2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0TWF4V2lkdGgsICZSZW5kZXJTdHlsZTo6
aW5pdGlhbE1heFNpemUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlKSk7CisgICAgc2V0
UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1pbkhlaWdodCwgbmV3IEFwcGx5UHJvcGVydHlMZW5n
dGgoJlJlbmRlclN0eWxlOjptaW5IZWlnaHQsICZSZW5kZXJTdHlsZTo6c2V0TWluSGVpZ2h0LCAm
UmVuZGVyU3R5bGU6OmluaXRpYWxNaW5TaXplLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFs
c2UpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5TWluV2lkdGgsIG5ldyBBcHBs
eVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6bWluV2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0
TWluV2lkdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbE1pblNpemUsIGZhbHNlLCB0cnVlLCB0cnVl
LCB0cnVlLCBmYWxzZSkpOworCisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1hcmdp
blRvcCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJlbmRlclN0eWxlOjptYXJnaW5Ub3AsICZS
ZW5kZXJTdHlsZTo6c2V0TWFyZ2luVG9wLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNYXJnaW4sIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShD
U1NQcm9wZXJ0eU1hcmdpblJpZ2h0LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aCgmUmVuZGVyU3R5
bGU6Om1hcmdpblJpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldE1hcmdpblJpZ2h0LCAmUmVuZGVyU3R5
bGU6OmluaXRpYWxNYXJnaW4sIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7Cisg
ICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbSwgbmV3IEFwcGx5UHJv
cGVydHlMZW5ndGgoJlJlbmRlclN0eWxlOjptYXJnaW5Cb3R0b20sICZSZW5kZXJTdHlsZTo6c2V0
TWFyZ2luQm90dG9tLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNYXJnaW4sIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIHRydWUsIGZhbHNlKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1h
cmdpbkxlZnQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6bWFyZ2luTGVm
dCwgJlJlbmRlclN0eWxlOjpzZXRNYXJnaW5MZWZ0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNYXJn
aW4sIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CisKKyAgICBzZXRQcm9wZXJ0
eVZhbHVlKENTU1Byb3BlcnR5UGFkZGluZ1RvcCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJl
bmRlclN0eWxlOjpwYWRkaW5nVG9wLCAmUmVuZGVyU3R5bGU6OnNldFBhZGRpbmdUb3AsICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbFBhZGRpbmcsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQsIG5ldyBB
cHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6cGFkZGluZ1JpZ2h0LCAmUmVuZGVyU3R5
bGU6OnNldFBhZGRpbmdSaWdodCwgJlJlbmRlclN0eWxlOjppbml0aWFsUGFkZGluZywgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQ
cm9wZXJ0eVBhZGRpbmdCb3R0b20sIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHls
ZTo6cGFkZGluZ0JvdHRvbSwgJlJlbmRlclN0eWxlOjpzZXRQYWRkaW5nQm90dG9tLCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxQYWRkaW5nLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Up
KTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5UGFkZGluZ0xlZnQsIG5ldyBBcHBs
eVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6cGFkZGluZ0xlZnQsICZSZW5kZXJTdHlsZTo6
c2V0UGFkZGluZ0xlZnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFBhZGRpbmcsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CisKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5YLCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aCgmUmVu
ZGVyU3R5bGU6OnBlcnNwZWN0aXZlT3JpZ2luWCwgJlJlbmRlclN0eWxlOjpzZXRQZXJzcGVjdGl2
ZU9yaWdpblgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFBlcnNwZWN0aXZlT3JpZ2luWCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQ
cm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luWSwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgo
JlJlbmRlclN0eWxlOjpwZXJzcGVjdGl2ZU9yaWdpblksICZSZW5kZXJTdHlsZTo6c2V0UGVyc3Bl
Y3RpdmVPcmlnaW5ZLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxQZXJzcGVjdGl2ZU9yaWdpblksIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSkpOworICAgIHNldFByb3BlcnR5VmFsdWUo
Q1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5YLCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0
aCgmUmVuZGVyU3R5bGU6OnRyYW5zZm9ybU9yaWdpblgsICZSZW5kZXJTdHlsZTo6c2V0VHJhbnNm
b3JtT3JpZ2luWCwgJlJlbmRlclN0eWxlOjppbml0aWFsVHJhbnNmb3JtT3JpZ2luWCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQ
cm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblksIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZS
ZW5kZXJTdHlsZTo6dHJhbnNmb3JtT3JpZ2luWSwgJlJlbmRlclN0eWxlOjpzZXRUcmFuc2Zvcm1P
cmlnaW5ZLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUcmFuc2Zvcm1PcmlnaW5ZLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpKTsKKwogfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDg0NzYzKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTk5LDggKzM1
OTksNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgZmxv
YXQgem9vbUZhY3RvciA9IG1fc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsKIAogICAgIExlbmd0aCBs
OwotICAgIGJvb2wgYXBwbHkgPSBmYWxzZTsKLQogICAgIHVuc2lnbmVkIHNob3J0IHZhbHVlVHlw
ZSA9IHZhbHVlLT5jc3NWYWx1ZVR5cGUoKTsKIAogICAgIGJvb2wgaXNJbmhlcml0ID0gbV9wYXJl
bnROb2RlICYmIHZhbHVlVHlwZSA9PSBDU1NWYWx1ZTo6Q1NTX0lOSEVSSVQ7CkBAIC00MDYzLDIw
MiArNDA2MSw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICAvLyBsZW5ndGgsIHBlcmNlbnQKLSAgICBj
YXNlIENTU1Byb3BlcnR5TWF4V2lkdGg6Ci0gICAgICAgIC8vICtub25lICtpbmhlcml0Ci0gICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZU5vbmUpIHsKLSAgICAgICAgICAgIGwgPSBMZW5ndGgodW5kZWZpbmVkTGVuZ3RoLCBG
aXhlZCk7Ci0gICAgICAgICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgIH0KLSAgICBjYXNlIENT
U1Byb3BlcnR5VG9wOgotICAgIGNhc2UgQ1NTUHJvcGVydHlMZWZ0OgotICAgIGNhc2UgQ1NTUHJv
cGVydHlSaWdodDoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm90dG9tOgotICAgIGNhc2UgQ1NTUHJv
cGVydHlXaWR0aDoKLSAgICBjYXNlIENTU1Byb3BlcnR5TWluV2lkdGg6Ci0gICAgY2FzZSBDU1NQ
cm9wZXJ0eU1hcmdpblRvcDoKLSAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQ6Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbToKLSAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2lu
TGVmdDoKLSAgICAgICAgLy8gK2luaGVyaXQgK2F1dG8KLSAgICAgICAgaWYgKGlkID09IENTU1By
b3BlcnR5V2lkdGggfHwgaWQgPT0gQ1NTUHJvcGVydHlNaW5XaWR0aCB8fCBpZCA9PSBDU1NQcm9w
ZXJ0eU1heFdpZHRoKSB7Ci0gICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVJbnRyaW5zaWMpIHsKLSAgICAgICAgICAg
ICAgICBsID0gTGVuZ3RoKEludHJpbnNpYyk7Ci0gICAgICAgICAgICAgICAgYXBwbHkgPSB0cnVl
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUgJiYg
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVNaW5JbnRyaW5zaWMpIHsKLSAg
ICAgICAgICAgICAgICBsID0gTGVuZ3RoKE1pbkludHJpbnNpYyk7Ci0gICAgICAgICAgICAgICAg
YXBwbHkgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChpZCAh
PSBDU1NQcm9wZXJ0eU1heFdpZHRoICYmIHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlQXV0bykKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsK
LSAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKLSAgICBjYXNlIENTU1Byb3BlcnR5UGFk
ZGluZ1JpZ2h0OgotICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nQm90dG9tOgotICAgIGNhc2Ug
Q1NTUHJvcGVydHlQYWRkaW5nTGVmdDoKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoK
LSAgICAgICAgLy8gK2luaGVyaXQKLSAgICB7Ci0gICAgICAgIGlmIChpc0luaGVyaXQpIHsKLSAg
ICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlNYXhXaWR0aCwgbWF4V2lk
dGgsIE1heFdpZHRoKQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0
eUJvdHRvbSwgYm90dG9tLCBCb3R0b20pCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05E
KENTU1Byb3BlcnR5VG9wLCB0b3AsIFRvcCkKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NP
TkQoQ1NTUHJvcGVydHlMZWZ0LCBsZWZ0LCBMZWZ0KQotICAgICAgICAgICAgSEFORExFX0lOSEVS
SVRfQ09ORChDU1NQcm9wZXJ0eVJpZ2h0LCByaWdodCwgUmlnaHQpCi0gICAgICAgICAgICBIQU5E
TEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5V2lkdGgsIHdpZHRoLCBXaWR0aCkKLSAgICAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlNaW5XaWR0aCwgbWluV2lkdGgsIE1p
bldpZHRoKQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eVBhZGRp
bmdUb3AsIHBhZGRpbmdUb3AsIFBhZGRpbmdUb3ApCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJ
VF9DT05EKENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0LCBwYWRkaW5nUmlnaHQsIFBhZGRpbmdSaWdo
dCkKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlQYWRkaW5nQm90
dG9tLCBwYWRkaW5nQm90dG9tLCBQYWRkaW5nQm90dG9tKQotICAgICAgICAgICAgSEFORExFX0lO
SEVSSVRfQ09ORChDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0LCBwYWRkaW5nTGVmdCwgUGFkZGluZ0xl
ZnQpCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5TWFyZ2luVG9w
LCBtYXJnaW5Ub3AsIE1hcmdpblRvcCkKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQo
Q1NTUHJvcGVydHlNYXJnaW5SaWdodCwgbWFyZ2luUmlnaHQsIE1hcmdpblJpZ2h0KQotICAgICAg
ICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbSwgbWFyZ2lu
Qm90dG9tLCBNYXJnaW5Cb3R0b20pCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENT
U1Byb3BlcnR5TWFyZ2luTGVmdCwgbWFyZ2luTGVmdCwgTWFyZ2luTGVmdCkKLSAgICAgICAgICAg
IEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlUZXh0SW5kZW50LCB0ZXh0SW5kZW50LCBU
ZXh0SW5kZW50KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGVsc2Ug
aWYgKGlzSW5pdGlhbCkgewotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZB
TFVFKENTU1Byb3BlcnR5TWF4V2lkdGgsIE1heFdpZHRoLCBNYXhTaXplKQotICAgICAgICAgICAg
SEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5Qm90dG9tLCBCb3R0b20s
IE9mZnNldCkKLSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQ
cm9wZXJ0eVRvcCwgVG9wLCBPZmZzZXQpCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05E
X1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlMZWZ0LCBMZWZ0LCBPZmZzZXQpCi0gICAgICAgICAgICBI
QU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlSaWdodCwgUmlnaHQsIE9m
ZnNldCkKLSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9w
ZXJ0eVdpZHRoLCBXaWR0aCwgU2l6ZSkKLSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRf
V0lUSF9WQUxVRShDU1NQcm9wZXJ0eU1pbldpZHRoLCBNaW5XaWR0aCwgTWluU2l6ZSkKLSAgICAg
ICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eVBhZGRpbmdU
b3AsIFBhZGRpbmdUb3AsIFBhZGRpbmcpCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05E
X1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQsIFBhZGRpbmdSaWdodCwgUGFkZGlu
ZykKLSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0
eVBhZGRpbmdCb3R0b20sIFBhZGRpbmdCb3R0b20sIFBhZGRpbmcpCi0gICAgICAgICAgICBIQU5E
TEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCwgUGFkZGlu
Z0xlZnQsIFBhZGRpbmcpCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFM
VUUoQ1NTUHJvcGVydHlNYXJnaW5Ub3AsIE1hcmdpblRvcCwgTWFyZ2luKQotICAgICAgICAgICAg
SEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5TWFyZ2luUmlnaHQsIE1h
cmdpblJpZ2h0LCBNYXJnaW4pCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhf
VkFMVUUoQ1NTUHJvcGVydHlNYXJnaW5Cb3R0b20sIE1hcmdpbkJvdHRvbSwgTWFyZ2luKQotICAg
ICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5TWFyZ2lu
TGVmdCwgTWFyZ2luTGVmdCwgTWFyZ2luKQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09O
RChDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIFRleHRJbmRlbnQpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0gCi0KLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmICFhcHBseSkgewot
ICAgICAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwot
ICAgICAgICAgICAgaWYgKENTU1ByaW1pdGl2ZVZhbHVlOjppc1VuaXRUeXBlTGVuZ3RoKHR5cGUp
KQotICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBvdXIgcXVpcmt5IG1hcmdpbiB1bml0cyBpZiB3
ZSBoYXZlIHRoZW0uCi0gICAgICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+
Y29tcHV0ZUxlbmd0aEludEZvckxlbmd0aChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpv
b21GYWN0b3IpLCBGaXhlZCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltaXRpdmVW
YWx1ZS0+aXNRdWlya1ZhbHVlKCkpOwotICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICAgICAgbCA9IExlbmd0
aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYXBwbHkgPSB0cnVl
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghYXBwbHkpIHJldHVybjsKLSAgICAgICAgc3dpdGNo
IChpZCkgewotICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heFdpZHRoOgotICAgICAgICAg
ICAgICAgIG1fc3R5bGUtPnNldE1heFdpZHRoKGwpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvdHRvbToKLSAgICAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRCb3R0b20obCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIENTU1Byb3BlcnR5VG9wOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFRvcChsKTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMZWZ0
OgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldExlZnQobCk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UmlnaHQ6Ci0gICAgICAgICAgICAg
ICAgbV9zdHlsZS0+c2V0UmlnaHQobCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2lkdGg6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0
V2lkdGgobCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5TWluV2lkdGg6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWluV2lkdGgobCk7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFk
ZGluZ1RvcDoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRQYWRkaW5nVG9wKGwpOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdS
aWdodDoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRQYWRkaW5nUmlnaHQobCk7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0Jv
dHRvbToKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRQYWRkaW5nQm90dG9tKGwpOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdM
ZWZ0OgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFBhZGRpbmdMZWZ0KGwpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoK
LSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJnaW5Ub3AobCk7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQ6Ci0gICAg
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFyZ2luUmlnaHQobCk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luQm90dG9tOgotICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldE1hcmdpbkJvdHRvbShsKTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5MZWZ0OgotICAgICAgICAg
ICAgICAgIG1fc3R5bGUtPnNldE1hcmdpbkxlZnQobCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoKLSAgICAgICAgICAgICAg
ICBtX3N0eWxlLT5zZXRUZXh0SW5kZW50KGwpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhIZWlnaHQ6
Ci0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZU5vbmUpIHsKLSAgICAgICAgICAgIGwgPSBMZW5ndGgodW5kZWZpbmVkTGVu
Z3RoLCBGaXhlZCk7Ci0gICAgICAgICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgIH0KLSAgICBj
YXNlIENTU1Byb3BlcnR5SGVpZ2h0OgotICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5IZWlnaHQ6Ci0g
ICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9
PSBDU1NWYWx1ZUludHJpbnNpYykgewotICAgICAgICAgICAgbCA9IExlbmd0aChJbnRyaW5zaWMp
OwotICAgICAgICAgICAgYXBwbHkgPSB0cnVlOwotICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2
ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTWluSW50cmlu
c2ljKSB7Ci0gICAgICAgICAgICBsID0gTGVuZ3RoKE1pbkludHJpbnNpYyk7Ci0gICAgICAgICAg
ICBhcHBseSA9IHRydWU7Ci0gICAgICAgIH0gZWxzZSBpZiAoaWQgIT0gQ1NTUHJvcGVydHlNYXhI
ZWlnaHQgJiYgcHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVBdXRvKQotICAgICAgICAgICAgYXBwbHkgPSB0cnVlOwotICAgICAgICBpZiAoaXNJ
bmhlcml0KSB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5TWF4
SGVpZ2h0LCBtYXhIZWlnaHQsIE1heEhlaWdodCkKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklU
X0NPTkQoQ1NTUHJvcGVydHlIZWlnaHQsIGhlaWdodCwgSGVpZ2h0KQotICAgICAgICAgICAgSEFO
RExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eU1pbkhlaWdodCwgbWluSGVpZ2h0LCBNaW5IZWln
aHQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlzSW5pdGlh
bCkgewotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3Bl
cnR5TWF4SGVpZ2h0LCBNYXhIZWlnaHQsIE1heFNpemUpCi0gICAgICAgICAgICBIQU5ETEVfSU5J
VElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlIZWlnaHQsIEhlaWdodCwgU2l6ZSkKLSAg
ICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eU1pbkhl
aWdodCwgTWluSGVpZ2h0LCBNaW5TaXplKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmICFhcHBseSkgewotICAgICAgICAgICAg
dW5zaWduZWQgc2hvcnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7Ci0g
ICAgICAgICAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgodHlwZSkp
Ci0gICAgICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0
aEludEZvckxlbmd0aChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpLCBG
aXhlZCk7Ci0gICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfUEVSQ0VOVEFHRSkKLSAgICAgICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVl
LT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKGFwcGx5KQotICAgICAgICAgICAgc3dpdGNoIChpZCkgewotICAgICAgICAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhIZWlnaHQ6Ci0gICAgICAgICAgICAgICAgICAgIG1fc3R5
bGUtPnNldE1heEhlaWdodChsKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUhlaWdodDoKLSAgICAgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0SGVpZ2h0KGwpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWluSGVpZ2h0OgotICAgICAgICAgICAgICAgICAgICBt
X3N0eWxlLT5zZXRNaW5IZWlnaHQobCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0KICAgICBjYXNlIENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbjoKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwodmVydGljYWxBbGln
biwgVmVydGljYWxBbGlnbikKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTU2MzUs
NiArNTQzNyw4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAg
ICAgICAgbV9zdHlsZS0+c2V0VGV4dFN0cm9rZVdpZHRoKHdpZHRoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KKworCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybTogewogICAg
ICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh0cmFuc2Zvcm0sIFRyYW5zZm9ybSk7CiAg
ICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbnMgb3BlcmF0aW9uczsKQEAgLTU2NDcsMzYgKzU0NTEs
NiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIEhB
TkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRyYW5zZm9ybU9yaWdpblksIFRyYW5zZm9ybU9yaWdp
blkpCiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRyYW5zZm9ybU9yaWdpblos
IFRyYW5zZm9ybU9yaWdpblopCiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VHJhbnNmb3JtT3JpZ2luWDogewotICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTCh0cmFuc2Zvcm1PcmlnaW5YLCBUcmFuc2Zvcm1PcmlnaW5YKQotICAgICAgICBpZiAoIXBy
aW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBMZW5ndGggbDsKLSAg
ICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwotICAgICAg
ICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgodHlwZSkpCi0gICAgICAg
ICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3Ro
KHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3RvciksIEZpeGVkKTsKLSAgICAg
ICAgZWxzZSBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0g
ICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQ
ZXJjZW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3N0
eWxlLT5zZXRUcmFuc2Zvcm1PcmlnaW5YKGwpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblk6IHsKLSAgICAgICAgSEFORExF
X0lOSEVSSVRfQU5EX0lOSVRJQUwodHJhbnNmb3JtT3JpZ2luWSwgVHJhbnNmb3JtT3JpZ2luWSkK
LSAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgTGVuZ3RoIGw7Ci0gICAgICAgIGludCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2
ZVR5cGUoKTsKLSAgICAgICAgaWYgKENTU1ByaW1pdGl2ZVZhbHVlOjppc1VuaXRUeXBlTGVuZ3Ro
KHR5cGUpKQotICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxl
bmd0aEludEZvckxlbmd0aChzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3Ip
LCBGaXhlZCk7Ci0gICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19QRVJDRU5UQUdFKQotICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0
RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgbV9zdHlsZS0+c2V0VHJhbnNmb3JtT3JpZ2luWShsKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5aOiB7
CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRyYW5zZm9ybU9yaWdpblosIFRy
YW5zZm9ybU9yaWdpblopCiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC01NzIwLDM2
ICs1NDk0LDYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAg
ICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChwZXJzcGVjdGl2ZU9yaWdpblgsIFBlcnNw
ZWN0aXZlT3JpZ2luWCkKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwocGVyc3Bl
Y3RpdmVPcmlnaW5ZLCBQZXJzcGVjdGl2ZU9yaWdpblkpCiAgICAgICAgIHJldHVybjsKLSAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5YOiB7Ci0gICAgICAgIEhBTkRM
RV9JTkhFUklUX0FORF9JTklUSUFMKHBlcnNwZWN0aXZlT3JpZ2luWCwgUGVyc3BlY3RpdmVPcmln
aW5YKQotICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBMZW5ndGggbDsKLSAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJp
bWl0aXZlVHlwZSgpOwotICAgICAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVM
ZW5ndGgodHlwZSkpCi0gICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb21w
dXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZh
Y3RvciksIEZpeGVkKTsKLSAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVl
LT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBtX3N0eWxlLT5zZXRQZXJzcGVjdGl2ZU9yaWdpblgobCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZl
T3JpZ2luWTogewotICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChwZXJzcGVjdGl2
ZU9yaWdpblksIFBlcnNwZWN0aXZlT3JpZ2luWSkKLSAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1
ZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgTGVuZ3RoIGw7Ci0gICAgICAgIGludCB0
eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsKLSAgICAgICAgaWYgKENTU1By
aW1pdGl2ZVZhbHVlOjppc1VuaXRUeXBlTGVuZ3RoKHR5cGUpKQotICAgICAgICAgICAgbCA9IExl
bmd0aChwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aEludEZvckxlbmd0aChzdHlsZSgpLCBt
X3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpLCBGaXhlZCk7Ci0gICAgICAgIGVsc2UgaWYg
KHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAg
bCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9zdHlsZS0+c2V0UGVy
c3BlY3RpdmVPcmlnaW5ZKGwpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRBbmltYXRpb246CiAgICAgICAgIGlmIChpc0luaXRpYWwpCiAgICAgICAg
ICAgICBtX3N0eWxlLT5jbGVhckFuaW1hdGlvbnMoKTsKQEAgLTYwNjMsNiArNTgwNywyOSBAQCB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93OgogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1g6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eU92ZXJmbG93WToKKyAgICBjYXNlIENTU1Byb3BlcnR5TWF4V2lkdGg6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRvcDoKKyAgICBjYXNlIENTU1Byb3BlcnR5TGVmdDoKKyAgICBjYXNl
IENTU1Byb3BlcnR5UmlnaHQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvdHRvbToKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2lkdGg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbldpZHRoOgorICAgIGNh
c2UgQ1NTUHJvcGVydHlNYXJnaW5Ub3A6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Cb3R0b206CisgICAgY2FzZSBDU1NQcm9wZXJ0
eU1hcmdpbkxlZnQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKKyAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0JvdHRv
bToKKyAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVRleHRJbmRlbnQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1heEhlaWdodDoKKyAgICBjYXNlIENT
U1Byb3BlcnR5SGVpZ2h0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5IZWlnaHQ6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblg6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdFRyYW5zZm9ybU9yaWdpblk6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFBlcnNw
ZWN0aXZlT3JpZ2luWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmln
aW5ZOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogI2lm
IEVOQUJMRShTVkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgJKHJl
dmlzaW9uIDg0NzYzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMTE2LDYgKzExNiw3IEBAIHB1YmxpYzoKIAogICAgICAgICBSZW5k
ZXJTdHlsZSogc3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlLmdldCgpOyB9CiAgICAgICAg
IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50U3R5bGU7
IH0KKyAgICAgICAgUmVuZGVyU3R5bGUqIHJvb3RFbGVtZW50U3R5bGUoKSBjb25zdCB7IHJldHVy
biBtX3Jvb3RFbGVtZW50U3R5bGU7IH0KICAgICAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZWxlbWVudDsgfQogCiAgICAgcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90904</attachid>
            <date>2011-04-24 23:26:20 -0700</date>
            <delta_ts>2011-05-01 17:49:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59314-20110425162617.patch</filename>
            <type>text/plain</type>
            <size>23423</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NzY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDQtMjQgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgTGVuZ3RoIGJhc2VkIENTUyBw
cm9wZXJ0aWVzIGluIENTU1N0eWxlQXBwbHlQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkzMTQKKworICAgICAgICBObyBuZXcgdGVzdHMg
YXMgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VkLgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBw
bHlQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5TGVuZ3RoOjpB
cHBseVByb3BlcnR5TGVuZ3RoKToKKyAgICAgICAgQWRkZWQgdGhpcyBjbGFzcyB0byBoYW5kbGUg
YWxsIGxlbmd0aCB0eXBlcy4KKyAgICAgICAgUHJvcGVydHkgc3BlY2lmaWMgYmVoYXZpb3IgaXMg
aGFuZGxlZCB0aHJvdWdoIHNldCBvZiBib29sZWFuIHBhcmFtZXRlcnMuCisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eSk6CisgICAg
ICAgIEFkZGVkIGNhbGxzIHRvIHNldCB1cCBlbnRyaWVzIGZvciB0aGUgbmV3bHkgYWRkZWQgbGVu
Z3RoIHByb3BlcnRpZXMuCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAg
IFJlbW92ZSBwcm9wZXJ0eSBpbXBsZW1lbnRhdGlvbnMgbW93IGltcGxlbWVudGVkIGluIENTU1N0
eWxlQXBwbHlQcm9wZXJ0eS4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6cm9vdEVsZW1lbnRTdHlsZSk6CisgICAg
ICAgIEV4cG9zZSBtX3Jvb3RFbGVtZW50U3R5bGUgdmlhIGdldHRlci4KKwogMjAxMS0wNC0yNCAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNhbSBXZWluaWcuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3Bl
cnR5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVBy
b3BlcnR5LmNwcAkocmV2aXNpb24gODQ3NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVBcHBseVByb3BlcnR5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCw2OCBAQCBw
dWJsaWM6CiAgICAgfQogfTsKIAorY2xhc3MgQXBwbHlQcm9wZXJ0eUxlbmd0aCA6IHB1YmxpYyBB
cHBseVByb3BlcnR5QmFzZSB7CitwdWJsaWM6CisgICAgQXBwbHlQcm9wZXJ0eUxlbmd0aChMZW5n
dGggKFJlbmRlclN0eWxlOjoqZ2V0dGVyKSgpIGNvbnN0LCB2b2lkIChSZW5kZXJTdHlsZTo6KnNl
dHRlcikoTGVuZ3RoKSwgTGVuZ3RoICgqaW5pdGlhbCkoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgYXV0b0VuYWJsZWQgPSBmYWxzZSwgYm9vbCBpbnRyaW5zaWNFbmFibGVkID0gZmFs
c2UsIGJvb2wgbWluSW50cmluc2ljRW5hYmxlZCA9IGZhbHNlLCBib29sIG5vbmVFbmFibGVkID0g
ZmFsc2UsIGJvb2wgbm9uZVVuZGVmaW5lZCA9IGZhbHNlKQorICAgICAgICA6IG1fZ2V0dGVyKGdl
dHRlcikKKyAgICAgICAgLCBtX3NldHRlcihzZXR0ZXIpCisgICAgICAgICwgbV9pbml0aWFsKGlu
aXRpYWwpCisgICAgICAgICwgbV9hdXRvRW5hYmxlZChhdXRvRW5hYmxlZCkKKyAgICAgICAgLCBt
X2ludHJpbnNpY0VuYWJsZWQoaW50cmluc2ljRW5hYmxlZCkKKyAgICAgICAgLCBtX21pbkludHJp
bnNpY0VuYWJsZWQobWluSW50cmluc2ljRW5hYmxlZCkKKyAgICAgICAgLCBtX25vbmVFbmFibGVk
KG5vbmVFbmFibGVkKQorICAgICAgICAsIG1fbm9uZVVuZGVmaW5lZChub25lVW5kZWZpbmVkKQor
ICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlJbmhlcml0VmFsdWUoQ1NTU3R5
bGVTZWxlY3Rvciogc2VsZWN0b3IpIGNvbnN0CisgICAgeworICAgICAgICAoc2VsZWN0b3ItPnN0
eWxlKCktPiptX3NldHRlcikoKHNlbGVjdG9yLT5wYXJlbnRTdHlsZSgpLT4qbV9nZXR0ZXIpKCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhcHBseUluaXRpYWxWYWx1ZShDU1NTdHlsZVNl
bGVjdG9yKiBzZWxlY3RvcikgY29uc3QKKyAgICB7CisgICAgICAgIChzZWxlY3Rvci0+c3R5bGUo
KS0+Km1fc2V0dGVyKSgoKm1faW5pdGlhbCkoKSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lk
IGFwcGx5VmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIENTU1ZhbHVlKiB2YWx1ZSkg
Y29uc3QKKyAgICB7CisgICAgICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZl
VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICAgICAg
aWYgKG1fbm9uZUVuYWJsZWQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFs
dWVOb25lKQorICAgICAgICAgICAgaWYgKG1fbm9uZVVuZGVmaW5lZCkKKyAgICAgICAgICAgICAg
ICAoc2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoTGVuZ3RoKHVuZGVmaW5lZExlbmd0aCwg
Rml4ZWQpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAoc2VsZWN0b3ItPnN0
eWxlKCktPiptX3NldHRlcikoTGVuZ3RoKCkpOworICAgICAgICBlbHNlIGlmIChtX2ludHJpbnNp
Y0VuYWJsZWQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVJbnRyaW5z
aWMpCisgICAgICAgICAgICAoc2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoTGVuZ3RoKElu
dHJpbnNpYykpOworICAgICAgICBlbHNlIGlmIChtX21pbkludHJpbnNpY0VuYWJsZWQgJiYgcHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVNaW5JbnRyaW5zaWMpCisgICAgICAg
ICAgICAoc2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoTGVuZ3RoKE1pbkludHJpbnNpYykp
OworICAgICAgICBlbHNlIGlmIChtX2F1dG9FbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJ
ZGVudCgpID09IENTU1ZhbHVlQXV0bykKKyAgICAgICAgICAgIChzZWxlY3Rvci0+c3R5bGUoKS0+
Km1fc2V0dGVyKShMZW5ndGgoKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IHR5
cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOworICAgICAgICAgICAgaWYgKENT
U1ByaW1pdGl2ZVZhbHVlOjppc1VuaXRUeXBlTGVuZ3RoKHR5cGUpKQorICAgICAgICAgICAgICAg
IChzZWxlY3Rvci0+c3R5bGUoKS0+Km1fc2V0dGVyKShMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmNv
bXB1dGVMZW5ndGhJbnRGb3JMZW5ndGgoc2VsZWN0b3ItPnN0eWxlKCksIHNlbGVjdG9yLT5yb290
RWxlbWVudFN0eWxlKCksIHNlbGVjdG9yLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpLCBGaXhl
ZCwgcHJpbWl0aXZlVmFsdWUtPmlzUXVpcmtWYWx1ZSgpKSk7CisgICAgICAgICAgICBlbHNlIGlm
ICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKKyAgICAgICAgICAg
ICAgICAoc2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoTGVuZ3RoKHByaW1pdGl2ZVZhbHVl
LT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KSk7CisgICAgICAgIH0KKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBMZW5ndGggKFJlbmRlclN0eWxlOjoqbV9nZXR0ZXIpKCkgY29uc3Q7CisgICAg
dm9pZCAoUmVuZGVyU3R5bGU6OiptX3NldHRlcikoTGVuZ3RoKTsKKyAgICBMZW5ndGggKCptX2lu
aXRpYWwpKCk7CisgICAgYm9vbCBtX2F1dG9FbmFibGVkOworICAgIGJvb2wgbV9pbnRyaW5zaWNF
bmFibGVkOworICAgIGJvb2wgbV9taW5JbnRyaW5zaWNFbmFibGVkOworICAgIGJvb2wgbV9ub25l
RW5hYmxlZDsKKyAgICBib29sIG1fbm9uZVVuZGVmaW5lZDsKK307CisKIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogY2xhc3MgQXBwbHlQcm9wZXJ0eUZpbGxMYXllciA6IHB1YmxpYyBBcHBseVByb3Bl
cnR5QmFzZSB7CiBwdWJsaWM6CkBAIC0zNzksNiArNDQxLDM4IEBAIENTU1N0eWxlQXBwbHlQcm9w
ZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3AKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5
V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3JCYXNlKCZSZW5k
ZXJTdHlsZTo6dGV4dEVtcGhhc2lzQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IsICZSZW5kZXJT
dHlsZTo6c2V0VGV4dEVtcGhhc2lzQ29sb3IpKTsKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1By
b3BlcnR5V2Via2l0VGV4dEZpbGxDb2xvciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvckJhc2UoJlJl
bmRlclN0eWxlOjp0ZXh0RmlsbENvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yLCAmUmVuZGVyU3R5
bGU6OnNldFRleHRGaWxsQ29sb3IpKTsKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5
V2Via2l0VGV4dFN0cm9rZUNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yQmFzZSgmUmVuZGVy
U3R5bGU6OnRleHRTdHJva2VDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvciwgJlJlbmRlclN0eWxl
OjpzZXRUZXh0U3Ryb2tlQ29sb3IpKTsKKworCisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eVRvcCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJlbmRlclN0eWxlOjp0b3AsICZSZW5k
ZXJTdHlsZTo6c2V0VG9wLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxPZmZzZXQsIHRydWUpKTsKKyAg
ICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5UmlnaHQsIG5ldyBBcHBseVByb3BlcnR5TGVu
Z3RoKCZSZW5kZXJTdHlsZTo6cmlnaHQsICZSZW5kZXJTdHlsZTo6c2V0UmlnaHQsICZSZW5kZXJT
dHlsZTo6aW5pdGlhbE9mZnNldCwgdHJ1ZSkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJv
cGVydHlCb3R0b20sIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6Ym90dG9t
LCAmUmVuZGVyU3R5bGU6OnNldEJvdHRvbSwgJlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0LCB0
cnVlKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUxlZnQsIG5ldyBBcHBseVBy
b3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6bGVmdCwgJlJlbmRlclN0eWxlOjpzZXRMZWZ0LCAm
UmVuZGVyU3R5bGU6OmluaXRpYWxPZmZzZXQsIHRydWUpKTsKKworICAgIHNldFByb3BlcnR5VmFs
dWUoQ1NTUHJvcGVydHlXaWR0aCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJlbmRlclN0eWxl
Ojp3aWR0aCwgJlJlbmRlclN0eWxlOjpzZXRXaWR0aCwgJlJlbmRlclN0eWxlOjppbml0aWFsU2l6
ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlI
ZWlnaHQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6aGVpZ2h0LCAmUmVu
ZGVyU3R5bGU6OnNldEhlaWdodCwgJlJlbmRlclN0eWxlOjppbml0aWFsU2l6ZSwgdHJ1ZSwgdHJ1
ZSwgdHJ1ZSkpOworCisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVRleHRJbmRlbnQs
IG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6dGV4dEluZGVudCwgJlJlbmRl
clN0eWxlOjpzZXRUZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50KSk7
CisKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5TWF4SGVpZ2h0LCBuZXcgQXBwbHlQ
cm9wZXJ0eUxlbmd0aCgmUmVuZGVyU3R5bGU6Om1heEhlaWdodCwgJlJlbmRlclN0eWxlOjpzZXRN
YXhIZWlnaHQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbE1heFNpemUsIGZhbHNlLCB0cnVlLCB0cnVl
LCB0cnVlLCB0cnVlKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1heFdpZHRo
LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aCgmUmVuZGVyU3R5bGU6Om1heFdpZHRoLCAmUmVuZGVy
U3R5bGU6OnNldE1heFdpZHRoLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNYXhTaXplLCBmYWxzZSwg
dHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVy
dHlNaW5IZWlnaHQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6bWluSGVp
Z2h0LCAmUmVuZGVyU3R5bGU6OnNldE1pbkhlaWdodCwgJlJlbmRlclN0eWxlOjppbml0aWFsTWlu
U2l6ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVy
dHlNaW5XaWR0aCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJlbmRlclN0eWxlOjptaW5XaWR0
aCwgJlJlbmRlclN0eWxlOjpzZXRNaW5XaWR0aCwgJlJlbmRlclN0eWxlOjppbml0aWFsTWluU2l6
ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSkpOworCisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0
eU1hcmdpblRvcCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJlbmRlclN0eWxlOjptYXJnaW5U
b3AsICZSZW5kZXJTdHlsZTo6c2V0TWFyZ2luVG9wLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNYXJn
aW4sIHRydWUpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5TWFyZ2luUmlnaHQs
IG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6bWFyZ2luUmlnaHQsICZSZW5k
ZXJTdHlsZTo6c2V0TWFyZ2luUmlnaHQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbE1hcmdpbiwgdHJ1
ZSkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlNYXJnaW5Cb3R0b20sIG5ldyBB
cHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6bWFyZ2luQm90dG9tLCAmUmVuZGVyU3R5
bGU6OnNldE1hcmdpbkJvdHRvbSwgJlJlbmRlclN0eWxlOjppbml0aWFsTWFyZ2luLCB0cnVlKSk7
CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1hcmdpbkxlZnQsIG5ldyBBcHBseVBy
b3BlcnR5TGVuZ3RoKCZSZW5kZXJTdHlsZTo6bWFyZ2luTGVmdCwgJlJlbmRlclN0eWxlOjpzZXRN
YXJnaW5MZWZ0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNYXJnaW4sIHRydWUpKTsKKworICAgIHNl
dFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlQYWRkaW5nVG9wLCBuZXcgQXBwbHlQcm9wZXJ0eUxl
bmd0aCgmUmVuZGVyU3R5bGU6OnBhZGRpbmdUb3AsICZSZW5kZXJTdHlsZTo6c2V0UGFkZGluZ1Rv
cCwgJlJlbmRlclN0eWxlOjppbml0aWFsUGFkZGluZykpOworICAgIHNldFByb3BlcnR5VmFsdWUo
Q1NTUHJvcGVydHlQYWRkaW5nUmlnaHQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoKCZSZW5kZXJT
dHlsZTo6cGFkZGluZ1JpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldFBhZGRpbmdSaWdodCwgJlJlbmRl
clN0eWxlOjppbml0aWFsUGFkZGluZykpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVy
dHlQYWRkaW5nQm90dG9tLCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aCgmUmVuZGVyU3R5bGU6OnBh
ZGRpbmdCb3R0b20sICZSZW5kZXJTdHlsZTo6c2V0UGFkZGluZ0JvdHRvbSwgJlJlbmRlclN0eWxl
Ojppbml0aWFsUGFkZGluZykpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlQYWRk
aW5nTGVmdCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJlbmRlclN0eWxlOjpwYWRkaW5nTGVm
dCwgJlJlbmRlclN0eWxlOjpzZXRQYWRkaW5nTGVmdCwgJlJlbmRlclN0eWxlOjppbml0aWFsUGFk
ZGluZykpOworCisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0
aXZlT3JpZ2luWCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGgoJlJlbmRlclN0eWxlOjpwZXJzcGVj
dGl2ZU9yaWdpblgsICZSZW5kZXJTdHlsZTo6c2V0UGVyc3BlY3RpdmVPcmlnaW5YLCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxQZXJzcGVjdGl2ZU9yaWdpblgpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVl
KENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5ZLCBuZXcgQXBwbHlQcm9wZXJ0eUxl
bmd0aCgmUmVuZGVyU3R5bGU6OnBlcnNwZWN0aXZlT3JpZ2luWSwgJlJlbmRlclN0eWxlOjpzZXRQ
ZXJzcGVjdGl2ZU9yaWdpblksICZSZW5kZXJTdHlsZTo6aW5pdGlhbFBlcnNwZWN0aXZlT3JpZ2lu
WSkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1Pcmln
aW5YLCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aCgmUmVuZGVyU3R5bGU6OnRyYW5zZm9ybU9yaWdp
blgsICZSZW5kZXJTdHlsZTo6c2V0VHJhbnNmb3JtT3JpZ2luWCwgJlJlbmRlclN0eWxlOjppbml0
aWFsVHJhbnNmb3JtT3JpZ2luWCkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlX
ZWJraXRUcmFuc2Zvcm1PcmlnaW5ZLCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aCgmUmVuZGVyU3R5
bGU6OnRyYW5zZm9ybU9yaWdpblksICZSZW5kZXJTdHlsZTo6c2V0VHJhbnNmb3JtT3JpZ2luWSwg
JlJlbmRlclN0eWxlOjppbml0aWFsVHJhbnNmb3JtT3JpZ2luWSkpOworCiB9CiAKIApJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gODQ3NjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1OTksOCArMzU5OSw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0
eShpbnQKICAgICBmbG9hdCB6b29tRmFjdG9yID0gbV9zdHlsZS0+ZWZmZWN0aXZlWm9vbSgpOwog
CiAgICAgTGVuZ3RoIGw7Ci0gICAgYm9vbCBhcHBseSA9IGZhbHNlOwotCiAgICAgdW5zaWduZWQg
c2hvcnQgdmFsdWVUeXBlID0gdmFsdWUtPmNzc1ZhbHVlVHlwZSgpOwogCiAgICAgYm9vbCBpc0lu
aGVyaXQgPSBtX3BhcmVudE5vZGUgJiYgdmFsdWVUeXBlID09IENTU1ZhbHVlOjpDU1NfSU5IRVJJ
VDsKQEAgLTQwNjMsMjAyICs0MDYxLDYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KGludAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIC8vIGxlbmd0aCwg
cGVyY2VudAotICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhXaWR0aDoKLSAgICAgICAgLy8gK25vbmUg
K2luaGVyaXQKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkgewotICAgICAgICAgICAgbCA9IExlbmd0aCh1bmRl
ZmluZWRMZW5ndGgsIEZpeGVkKTsKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsKLSAgICAgICAg
fQotICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUxlZnQ6Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3R0b206Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eVdpZHRoOgotICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5XaWR0aDoK
LSAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luVG9wOgotICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJn
aW5SaWdodDoKLSAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luQm90dG9tOgotICAgIGNhc2UgQ1NT
UHJvcGVydHlNYXJnaW5MZWZ0OgotICAgICAgICAvLyAraW5oZXJpdCArYXV0bwotICAgICAgICBp
ZiAoaWQgPT0gQ1NTUHJvcGVydHlXaWR0aCB8fCBpZCA9PSBDU1NQcm9wZXJ0eU1pbldpZHRoIHx8
IGlkID09IENTU1Byb3BlcnR5TWF4V2lkdGgpIHsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVW
YWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludHJpbnNpYykg
ewotICAgICAgICAgICAgICAgIGwgPSBMZW5ndGgoSW50cmluc2ljKTsKLSAgICAgICAgICAgICAg
ICBhcHBseSA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChwcmlt
aXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU1pbklu
dHJpbnNpYykgewotICAgICAgICAgICAgICAgIGwgPSBMZW5ndGgoTWluSW50cmluc2ljKTsKLSAg
ICAgICAgICAgICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKGlkICE9IENTU1Byb3BlcnR5TWF4V2lkdGggJiYgcHJpbWl0aXZlVmFsdWUgJiYg
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAg
YXBwbHkgPSB0cnVlOwotICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgotICAgIGNhc2Ug
Q1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0
b206Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0OgotICAgIGNhc2UgQ1NTUHJvcGVy
dHlUZXh0SW5kZW50OgotICAgICAgICAvLyAraW5oZXJpdAotICAgIHsKLSAgICAgICAgaWYgKGlz
SW5oZXJpdCkgewotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eU1h
eFdpZHRoLCBtYXhXaWR0aCwgTWF4V2lkdGgpCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9D
T05EKENTU1Byb3BlcnR5Qm90dG9tLCBib3R0b20sIEJvdHRvbSkKLSAgICAgICAgICAgIEhBTkRM
RV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlUb3AsIHRvcCwgVG9wKQotICAgICAgICAgICAgSEFO
RExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eUxlZnQsIGxlZnQsIExlZnQpCi0gICAgICAgICAg
ICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5UmlnaHQsIHJpZ2h0LCBSaWdodCkKLSAg
ICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlXaWR0aCwgd2lkdGgsIFdp
ZHRoKQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eU1pbldpZHRo
LCBtaW5XaWR0aCwgTWluV2lkdGgpCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENT
U1Byb3BlcnR5UGFkZGluZ1RvcCwgcGFkZGluZ1RvcCwgUGFkZGluZ1RvcCkKLSAgICAgICAgICAg
IEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQsIHBhZGRpbmdSaWdo
dCwgUGFkZGluZ1JpZ2h0KQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9w
ZXJ0eVBhZGRpbmdCb3R0b20sIHBhZGRpbmdCb3R0b20sIFBhZGRpbmdCb3R0b20pCi0gICAgICAg
ICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5UGFkZGluZ0xlZnQsIHBhZGRpbmdM
ZWZ0LCBQYWRkaW5nTGVmdCkKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJv
cGVydHlNYXJnaW5Ub3AsIG1hcmdpblRvcCwgTWFyZ2luVG9wKQotICAgICAgICAgICAgSEFORExF
X0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0LCBtYXJnaW5SaWdodCwgTWFyZ2lu
UmlnaHQpCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5TWFyZ2lu
Qm90dG9tLCBtYXJnaW5Cb3R0b20sIE1hcmdpbkJvdHRvbSkKLSAgICAgICAgICAgIEhBTkRMRV9J
TkhFUklUX0NPTkQoQ1NTUHJvcGVydHlNYXJnaW5MZWZ0LCBtYXJnaW5MZWZ0LCBNYXJnaW5MZWZ0
KQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eVRleHRJbmRlbnQs
IHRleHRJbmRlbnQsIFRleHRJbmRlbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFsKSB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5JVElB
TF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlNYXhXaWR0aCwgTWF4V2lkdGgsIE1heFNpemUp
Ci0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlC
b3R0b20sIEJvdHRvbSwgT2Zmc2V0KQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9X
SVRIX1ZBTFVFKENTU1Byb3BlcnR5VG9wLCBUb3AsIE9mZnNldCkKLSAgICAgICAgICAgIEhBTkRM
RV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eUxlZnQsIExlZnQsIE9mZnNldCkK
LSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eVJp
Z2h0LCBSaWdodCwgT2Zmc2V0KQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRI
X1ZBTFVFKENTU1Byb3BlcnR5V2lkdGgsIFdpZHRoLCBTaXplKQotICAgICAgICAgICAgSEFORExF
X0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5TWluV2lkdGgsIE1pbldpZHRoLCBN
aW5TaXplKQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1By
b3BlcnR5UGFkZGluZ1RvcCwgUGFkZGluZ1RvcCwgUGFkZGluZykKLSAgICAgICAgICAgIEhBTkRM
RV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodCwgUGFkZGlu
Z1JpZ2h0LCBQYWRkaW5nKQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZB
TFVFKENTU1Byb3BlcnR5UGFkZGluZ0JvdHRvbSwgUGFkZGluZ0JvdHRvbSwgUGFkZGluZykKLSAg
ICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eVBhZGRp
bmdMZWZ0LCBQYWRkaW5nTGVmdCwgUGFkZGluZykKLSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFM
X0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eU1hcmdpblRvcCwgTWFyZ2luVG9wLCBNYXJnaW4p
Ci0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlN
YXJnaW5SaWdodCwgTWFyZ2luUmlnaHQsIE1hcmdpbikKLSAgICAgICAgICAgIEhBTkRMRV9JTklU
SUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbSwgTWFyZ2luQm90dG9t
LCBNYXJnaW4pCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NT
UHJvcGVydHlNYXJnaW5MZWZ0LCBNYXJnaW5MZWZ0LCBNYXJnaW4pCi0gICAgICAgICAgICBIQU5E
TEVfSU5JVElBTF9DT05EKENTU1Byb3BlcnR5VGV4dEluZGVudCwgVGV4dEluZGVudCkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfSAKLQotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUg
JiYgIWFwcGx5KSB7Ci0gICAgICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5wcmlt
aXRpdmVUeXBlKCk7Ci0gICAgICAgICAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5
cGVMZW5ndGgodHlwZSkpCi0gICAgICAgICAgICAgICAgLy8gSGFuZGxlIG91ciBxdWlya3kgbWFy
Z2luIHVuaXRzIGlmIHdlIGhhdmUgdGhlbS4KLSAgICAgICAgICAgICAgICBsID0gTGVuZ3RoKHBy
aW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9vdEVs
ZW1lbnRTdHlsZSwgem9vbUZhY3RvciksIEZpeGVkLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW1pdGl2ZVZhbHVlLT5pc1F1aXJrVmFsdWUoKSk7Ci0gICAgICAgICAgICBlbHNlIGlm
ICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAgICAgICAg
ICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50
KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICBhcHBseSA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFhcHBseSkgcmV0dXJuOwot
ICAgICAgICBzd2l0Y2ggKGlkKSB7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWF4V2lk
dGg6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWF4V2lkdGgobCk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm90dG9tOgotICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldEJvdHRvbShsKTsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6Ci0gICAgICAgICAgICAgICAgbV9zdHls
ZS0+c2V0VG9wKGwpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eUxlZnQ6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TGVmdChsKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlSaWdodDoK
LSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRSaWdodChsKTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXaWR0aDoKLSAgICAgICAgICAgICAg
ICBtX3N0eWxlLT5zZXRXaWR0aChsKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5XaWR0aDoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5z
ZXRNaW5XaWR0aChsKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlQYWRkaW5nVG9wOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFBhZGRp
bmdUb3AobCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5UGFkZGluZ1JpZ2h0OgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFBhZGRpbmdS
aWdodChsKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nQm90dG9tOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFBhZGRpbmdC
b3R0b20obCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5UGFkZGluZ0xlZnQ6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0UGFkZGluZ0xl
ZnQobCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5TWFyZ2luVG9wOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcmdpblRvcChsKTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJn
aW5SaWdodDoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJnaW5SaWdodChsKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5C
b3R0b206Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFyZ2luQm90dG9tKGwpOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkxl
ZnQ6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFyZ2luTGVmdChsKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50Ogot
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFRleHRJbmRlbnQobCk7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY2FzZSBDU1NQcm9w
ZXJ0eU1heEhlaWdodDoKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkgewotICAgICAgICAgICAgbCA9IExlbmd0
aCh1bmRlZmluZWRMZW5ndGgsIEZpeGVkKTsKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsKLSAg
ICAgICAgfQotICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eU1pbkhlaWdodDoKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlSW50cmluc2ljKSB7Ci0gICAgICAgICAgICBsID0gTGVu
Z3RoKEludHJpbnNpYyk7Ci0gICAgICAgICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgIH0gZWxz
ZSBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NT
VmFsdWVNaW5JbnRyaW5zaWMpIHsKLSAgICAgICAgICAgIGwgPSBMZW5ndGgoTWluSW50cmluc2lj
KTsKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIGlmIChpZCAhPSBD
U1NQcm9wZXJ0eU1heEhlaWdodCAmJiBwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+
Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgICAgICBhcHBseSA9IHRydWU7Ci0g
ICAgICAgIGlmIChpc0luaGVyaXQpIHsKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQo
Q1NTUHJvcGVydHlNYXhIZWlnaHQsIG1heEhlaWdodCwgTWF4SGVpZ2h0KQotICAgICAgICAgICAg
SEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eUhlaWdodCwgaGVpZ2h0LCBIZWlnaHQpCi0g
ICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5TWluSGVpZ2h0LCBtaW5I
ZWlnaHQsIE1pbkhlaWdodCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAg
ICBpZiAoaXNJbml0aWFsKSB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhf
VkFMVUUoQ1NTUHJvcGVydHlNYXhIZWlnaHQsIE1heEhlaWdodCwgTWF4U2l6ZSkKLSAgICAgICAg
ICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eUhlaWdodCwgSGVp
Z2h0LCBTaXplKQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENT
U1Byb3BlcnR5TWluSGVpZ2h0LCBNaW5IZWlnaHQsIE1pblNpemUpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgIWFwcGx5KSB7
Ci0gICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1p
dGl2ZVR5cGUoKTsKLSAgICAgICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0VHlw
ZUxlbmd0aCh0eXBlKSkKLSAgICAgICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVl
LT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwg
em9vbUZhY3RvciksIEZpeGVkKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAgICAgIGwgPSBMZW5ndGgo
cHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoYXBwbHkpCi0gICAgICAgICAgICBzd2l0Y2ggKGlkKSB7
Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heEhlaWdodDoKLSAgICAgICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0TWF4SGVpZ2h0KGwpOwotICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5SGVpZ2h0OgotICAgICAgICAg
ICAgICAgICAgICBtX3N0eWxlLT5zZXRIZWlnaHQobCk7Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5IZWlnaHQ6Ci0gICAgICAg
ICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1pbkhlaWdodChsKTsKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLQogICAgIGNhc2UgQ1NT
UHJvcGVydHlWZXJ0aWNhbEFsaWduOgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElB
TCh2ZXJ0aWNhbEFsaWduLCBWZXJ0aWNhbEFsaWduKQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZh
bHVlKQpAQCAtNTYzNSw2ICs1NDM3LDggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KGludAogICAgICAgICBtX3N0eWxlLT5zZXRUZXh0U3Ryb2tlV2lkdGgod2lkdGgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQorCisKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJh
bnNmb3JtOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRyYW5zZm9ybSwg
VHJhbnNmb3JtKTsKICAgICAgICAgVHJhbnNmb3JtT3BlcmF0aW9ucyBvcGVyYXRpb25zOwpAQCAt
NTY0NywzNiArNTQ1MSw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShp
bnQKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwodHJhbnNmb3JtT3JpZ2luWSwg
VHJhbnNmb3JtT3JpZ2luWSkKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwodHJh
bnNmb3JtT3JpZ2luWiwgVHJhbnNmb3JtT3JpZ2luWikKICAgICAgICAgcmV0dXJuOwotICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5YOiB7Ci0gICAgICAgIEhBTkRMRV9J
TkhFUklUX0FORF9JTklUSUFMKHRyYW5zZm9ybU9yaWdpblgsIFRyYW5zZm9ybU9yaWdpblgpCi0g
ICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IExlbmd0aCBsOwotICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVU
eXBlKCk7Ci0gICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0VHlwZUxlbmd0aCh0
eXBlKSkKLSAgICAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5n
dGhJbnRGb3JMZW5ndGgoc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKSwg
Rml4ZWQpOwotICAgICAgICBlbHNlIGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UEVSQ0VOVEFHRSkKLSAgICAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmdldERv
dWJsZVZhbHVlKCksIFBlcmNlbnQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIG1fc3R5bGUtPnNldFRyYW5zZm9ybU9yaWdpblgobCk7Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWTogewot
ICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh0cmFuc2Zvcm1PcmlnaW5ZLCBUcmFu
c2Zvcm1PcmlnaW5ZKQotICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBMZW5ndGggbDsKLSAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVW
YWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwotICAgICAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6Omlz
VW5pdFR5cGVMZW5ndGgodHlwZSkpCi0gICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZh
bHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHls
ZSwgem9vbUZhY3RvciksIEZpeGVkKTsKLSAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1p
dGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3N0eWxlLT5zZXRUcmFuc2Zvcm1PcmlnaW5ZKGwp
OwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5z
Zm9ybU9yaWdpblo6IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwodHJhbnNm
b3JtT3JpZ2luWiwgVHJhbnNmb3JtT3JpZ2luWikKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1
ZSkKQEAgLTU3MjAsMzYgKzU0OTQsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJv
cGVydHkoaW50CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHBlcnNwZWN0aXZl
T3JpZ2luWCwgUGVyc3BlY3RpdmVPcmlnaW5YKQogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRf
SU5JVElBTChwZXJzcGVjdGl2ZU9yaWdpblksIFBlcnNwZWN0aXZlT3JpZ2luWSkKICAgICAgICAg
cmV0dXJuOwotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdpblg6IHsK
LSAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwocGVyc3BlY3RpdmVPcmlnaW5YLCBQ
ZXJzcGVjdGl2ZU9yaWdpblgpCi0gICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIExlbmd0aCBsOwotICAgICAgICBpbnQgdHlwZSA9IHByaW1p
dGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7Ci0gICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1
ZTo6aXNVbml0VHlwZUxlbmd0aCh0eXBlKSkKLSAgICAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0
aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGhJbnRGb3JMZW5ndGgoc3R5bGUoKSwgbV9yb290RWxlbWVu
dFN0eWxlLCB6b29tRmFjdG9yKSwgRml4ZWQpOwotICAgICAgICBlbHNlIGlmICh0eXBlID09IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAgICAgICAgIGwgPSBMZW5ndGgo
cHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fc3R5bGUtPnNldFBlcnNwZWN0aXZlT3Jp
Z2luWChsKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0UGVyc3BlY3RpdmVPcmlnaW5ZOiB7Ci0gICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklU
SUFMKHBlcnNwZWN0aXZlT3JpZ2luWSwgUGVyc3BlY3RpdmVPcmlnaW5ZKQotICAgICAgICBpZiAo
IXByaW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBMZW5ndGggbDsK
LSAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwotICAg
ICAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgodHlwZSkpCi0gICAg
ICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVu
Z3RoKHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3RvciksIEZpeGVkKTsKLSAg
ICAgICAgZWxzZSBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0Up
Ci0gICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgp
LCBQZXJjZW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBt
X3N0eWxlLT5zZXRQZXJzcGVjdGl2ZU9yaWdpblkobCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbjoKICAgICAgICAgaWYgKGlzSW5p
dGlhbCkKICAgICAgICAgICAgIG1fc3R5bGUtPmNsZWFyQW5pbWF0aW9ucygpOwpAQCAtNjA2Myw2
ICs1ODA3LDI5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAg
ICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93
WDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgorICAgIGNhc2UgQ1NTUHJvcGVydHlN
YXhXaWR0aDoKKyAgICBjYXNlIENTU1Byb3BlcnR5VG9wOgorICAgIGNhc2UgQ1NTUHJvcGVydHlM
ZWZ0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlSaWdodDoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm90
dG9tOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXaWR0aDoKKyAgICBjYXNlIENTU1Byb3BlcnR5TWlu
V2lkdGg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5TWFyZ2luUmlnaHQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbToKKyAgICBj
YXNlIENTU1Byb3BlcnR5TWFyZ2luTGVmdDoKKyAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1Rv
cDoKKyAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlQYWRkaW5nQm90dG9tOgorICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdDoKKyAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoKKyAgICBjYXNlIENTU1Byb3BlcnR5TWF4SGVpZ2h0
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbkhl
aWdodDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWDoKKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWToKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5YOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQ
ZXJzcGVjdGl2ZU9yaWdpblk6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAjaWYgRU5BQkxFKFNWRykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2VsZWN0b3IuaAkocmV2aXNpb24gODQ3NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNiArMTE2LDcgQEAgcHVibGljOgog
CiAgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0
KCk7IH0KICAgICAgICAgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKCkgY29uc3QgeyByZXR1cm4g
bV9wYXJlbnRTdHlsZTsgfQorICAgICAgICBSZW5kZXJTdHlsZSogcm9vdEVsZW1lbnRTdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcm9vdEVsZW1lbnRTdHlsZTsgfQogICAgICAgICBFbGVtZW50KiBl
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9CiAKICAgICBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91862</attachid>
            <date>2011-05-01 17:49:28 -0700</date>
            <delta_ts>2011-05-02 10:53:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59314-20110502104925.patch</filename>
            <type>text/plain</type>
            <size>22497</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1MzA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDQtMjggIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgTGVuZ3RoIGJhc2VkIENTUyBw
cm9wZXJ0aWVzIGluIENTU1N0eWxlQXBwbHlQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkzMTQKKworICAgICAgICBObyBuZXcgdGVzdHMg
YXMgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VkLgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBw
bHlQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5TGVuZ3RoOjpB
cHBseVByb3BlcnR5TGVuZ3RoKToKKyAgICAgICAgQWRkZWQgdGhpcyBjbGFzcyB0byBoYW5kbGUg
YWxsIGxlbmd0aCB0eXBlcy4KKyAgICAgICAgUHJvcGVydHkgc3BlY2lmaWMgYmVoYXZpb3IgaXMg
aGFuZGxlZCB0aHJvdWdoIHNldCBvZiBib29sZWFuIHBhcmFtZXRlcnMuCisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eSk6CisgICAg
ICAgIEFkZGVkIGNhbGxzIHRvIHNldCB1cCBlbnRyaWVzIGZvciB0aGUgbmV3bHkgYWRkZWQgbGVu
Z3RoIHByb3BlcnRpZXMuCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAg
IFJlbW92ZSBwcm9wZXJ0eSBpbXBsZW1lbnRhdGlvbnMgbW93IGltcGxlbWVudGVkIGluIENTU1N0
eWxlQXBwbHlQcm9wZXJ0eS4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6cm9vdEVsZW1lbnRTdHlsZSk6CisgICAg
ICAgIEV4cG9zZSBtX3Jvb3RFbGVtZW50U3R5bGUgdmlhIGdldHRlci4KKwogMjAxMS0wNC0yOCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBw
bHlQcm9wZXJ0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
QXBwbHlQcm9wZXJ0eS5jcHAJKHJldmlzaW9uIDg1MzA0KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NSw2ICsxOTUs
NTEgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCitlbnVtIExlbmd0aEF1dG8ge0F1dG9EaXNhYmxl
ZCA9IDAsIEF1dG9FbmFibGVkID0gMX07CitlbnVtIExlbmd0aEludHJpbnNpYyB7SW50cmluc2lj
RGlzYWJsZWQgPSAwLCBJbnRyaW5zaWNFbmFibGVkID0gMX07CitlbnVtIExlbmd0aE1pbkludHJp
bnNpYyB7TWluSW50cmluc2ljRGlzYWJsZWQgPSAwLCBNaW5JbnRyaW5zaWNFbmFibGVkID0gMX07
CitlbnVtIExlbmd0aE5vbmUge05vbmVEaXNhYmxlZCA9IDAsIE5vbmVFbmFibGVkID0gMX07Citl
bnVtIExlbmd0aFVuZGVmaW5lZCB7VW5kZWZpbmVkRGlzYWJsZWQgPSAwLCBVbmRlZmluZWRFbmFi
bGVkID0gMX07Cit0ZW1wbGF0ZSA8TGVuZ3RoQXV0byBhdXRvRW5hYmxlZCA9IEF1dG9EaXNhYmxl
ZCwKKyAgICAgICAgICBMZW5ndGhJbnRyaW5zaWMgaW50cmluc2ljRW5hYmxlZCA9IEludHJpbnNp
Y0Rpc2FibGVkLAorICAgICAgICAgIExlbmd0aE1pbkludHJpbnNpYyBtaW5JbnRyaW5zaWNFbmFi
bGVkID0gTWluSW50cmluc2ljRGlzYWJsZWQsCisgICAgICAgICAgTGVuZ3RoTm9uZSBub25lRW5h
YmxlZCA9IE5vbmVEaXNhYmxlZCwKKyAgICAgICAgICBMZW5ndGhVbmRlZmluZWQgbm9uZVVuZGVm
aW5lZCA9IFVuZGVmaW5lZERpc2FibGVkPgorY2xhc3MgQXBwbHlQcm9wZXJ0eUxlbmd0aCA6IHB1
YmxpYyBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8TGVuZ3RoPiB7CitwdWJsaWM6CisgICAgQXBw
bHlQcm9wZXJ0eUxlbmd0aChHZXR0ZXJGdW5jdGlvbiBnZXR0ZXIsIFNldHRlckZ1bmN0aW9uIHNl
dHRlciwgSW5pdGlhbEZ1bmN0aW9uIGluaXRpYWwpCisgICAgICAgIDogQXBwbHlQcm9wZXJ0eURl
ZmF1bHRCYXNlPExlbmd0aD4oZ2V0dGVyLCBzZXR0ZXIsIGluaXRpYWwpCisgICAgeworICAgIH0K
KworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlWYWx1ZShDU1NTdHlsZVNlbGVjdG9y
KiBzZWxlY3RvciwgQ1NTVmFsdWUqIHZhbHVlKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCF2
YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpOworICAgICAgICBpZiAobm9uZUVuYWJsZWQgJiYgcHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAgaWYgKG5vbmVV
bmRlZmluZWQpCisgICAgICAgICAgICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4qbV9zZXR0ZXIp
KExlbmd0aCh1bmRlZmluZWRMZW5ndGgsIEZpeGVkKSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4qbV9zZXR0ZXIpKExlbmd0aCgpKTsKKyAg
ICAgICAgZWxzZSBpZiAoaW50cmluc2ljRW5hYmxlZCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSA9PSBDU1NWYWx1ZUludHJpbnNpYykKKyAgICAgICAgICAgIChzZWxlY3Rvci0+c3R5bGUo
KS0+Km1fc2V0dGVyKShMZW5ndGgoSW50cmluc2ljKSk7CisgICAgICAgIGVsc2UgaWYgKG1pbklu
dHJpbnNpY0VuYWJsZWQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVN
aW5JbnRyaW5zaWMpCisgICAgICAgICAgICAoc2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlciko
TGVuZ3RoKE1pbkludHJpbnNpYykpOworICAgICAgICBlbHNlIGlmIChhdXRvRW5hYmxlZCAmJiBw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgICAgICAo
c2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoTGVuZ3RoKCkpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIGludCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsK
KyAgICAgICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0VHlwZUxlbmd0aCh0eXBl
KSkKKyAgICAgICAgICAgICAgICAoc2VsZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoTGVuZ3Ro
KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHNlbGVjdG9yLT5zdHls
ZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzZWxlY3Rvci0+c3R5bGUoKS0+ZWZm
ZWN0aXZlWm9vbSgpKSwgRml4ZWQsIHByaW1pdGl2ZVZhbHVlLT5pc1F1aXJrVmFsdWUoKSkpOwor
ICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNF
TlRBR0UpCisgICAgICAgICAgICAgICAgKHNlbGVjdG9yLT5zdHlsZSgpLT4qbV9zZXR0ZXIpKExl
bmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCkpOworICAgICAg
ICB9CisgICAgfQorfTsKKwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBBcHBseVByb3Bl
cnR5RmlsbExheWVyIDogcHVibGljIEFwcGx5UHJvcGVydHlCYXNlIHsKIHB1YmxpYzoKQEAgLTQy
OCw2ICs0NzMsMzYgQEAgQ1NTU3R5bGVBcHBseVByb3BlcnR5OjpDU1NTdHlsZUFwcGx5UHJvcAog
ICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xvciwg
bmV3IEFwcGx5UHJvcGVydHlDb2xvcigmUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNpc0NvbG9yLCAm
UmVuZGVyU3R5bGU6OnNldFRleHRFbXBoYXNpc0NvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7
CiAgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IsIG5l
dyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjp0ZXh0RmlsbENvbG9yLCAmUmVuZGVy
U3R5bGU6OnNldFRleHRGaWxsQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsKICAgICBzZXRQ
cm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZUNvbG9yLCBuZXcgQXBwbHlQ
cm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6dGV4dFN0cm9rZUNvbG9yLCAmUmVuZGVyU3R5bGU6
OnNldFRleHRTdHJva2VDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOworCisgICAgc2V0UHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eVRvcCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8QXV0b0Vu
YWJsZWQ+KCZSZW5kZXJTdHlsZTo6dG9wLCAmUmVuZGVyU3R5bGU6OnNldFRvcCwgJlJlbmRlclN0
eWxlOjppbml0aWFsT2Zmc2V0KSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVJp
Z2h0LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZD4oJlJlbmRlclN0eWxlOjpy
aWdodCwgJlJlbmRlclN0eWxlOjpzZXRSaWdodCwgJlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0
KSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvdHRvbSwgbmV3IEFwcGx5UHJv
cGVydHlMZW5ndGg8QXV0b0VuYWJsZWQ+KCZSZW5kZXJTdHlsZTo6Ym90dG9tLCAmUmVuZGVyU3R5
bGU6OnNldEJvdHRvbSwgJlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0KSk7CisgICAgc2V0UHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUxlZnQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9F
bmFibGVkPigmUmVuZGVyU3R5bGU6OmxlZnQsICZSZW5kZXJTdHlsZTo6c2V0TGVmdCwgJlJlbmRl
clN0eWxlOjppbml0aWFsT2Zmc2V0KSk7CisKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5V2lkdGgsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkLCBJbnRyaW5zaWNF
bmFibGVkLCBNaW5JbnRyaW5zaWNFbmFibGVkPigmUmVuZGVyU3R5bGU6OndpZHRoLCAmUmVuZGVy
U3R5bGU6OnNldFdpZHRoLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxTaXplKSk7CisgICAgc2V0UHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUhlaWdodCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8QXV0
b0VuYWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJpbnNpY0VuYWJsZWQ+KCZSZW5kZXJT
dHlsZTo6aGVpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldEhlaWdodCwgJlJlbmRlclN0eWxlOjppbml0
aWFsU2l6ZSkpOworCisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVRleHRJbmRlbnQs
IG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPD4oJlJlbmRlclN0eWxlOjp0ZXh0SW5kZW50LCAmUmVu
ZGVyU3R5bGU6OnNldFRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQp
KTsKKworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlNYXhIZWlnaHQsIG5ldyBBcHBs
eVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkLCBJbnRyaW5zaWNFbmFibGVkLCBNaW5JbnRyaW5z
aWNFbmFibGVkLCBOb25lRW5hYmxlZCwgVW5kZWZpbmVkRW5hYmxlZD4oJlJlbmRlclN0eWxlOjpt
YXhIZWlnaHQsICZSZW5kZXJTdHlsZTo6c2V0TWF4SGVpZ2h0LCAmUmVuZGVyU3R5bGU6OmluaXRp
YWxNYXhTaXplKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1heFdpZHRoLCBu
ZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZCwgSW50cmluc2ljRW5hYmxlZCwgTWlu
SW50cmluc2ljRW5hYmxlZCwgTm9uZUVuYWJsZWQsIFVuZGVmaW5lZEVuYWJsZWQ+KCZSZW5kZXJT
dHlsZTo6bWF4V2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0TWF4V2lkdGgsICZSZW5kZXJTdHlsZTo6
aW5pdGlhbE1heFNpemUpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5TWluSGVp
Z2h0LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZCwgSW50cmluc2ljRW5hYmxl
ZCwgTWluSW50cmluc2ljRW5hYmxlZD4oJlJlbmRlclN0eWxlOjptaW5IZWlnaHQsICZSZW5kZXJT
dHlsZTo6c2V0TWluSGVpZ2h0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNaW5TaXplKSk7CisgICAg
c2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1pbldpZHRoLCBuZXcgQXBwbHlQcm9wZXJ0eUxl
bmd0aDxBdXRvRW5hYmxlZCwgSW50cmluc2ljRW5hYmxlZCwgTWluSW50cmluc2ljRW5hYmxlZD4o
JlJlbmRlclN0eWxlOjptaW5XaWR0aCwgJlJlbmRlclN0eWxlOjpzZXRNaW5XaWR0aCwgJlJlbmRl
clN0eWxlOjppbml0aWFsTWluU2l6ZSkpOworCisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eU1hcmdpblRvcCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8QXV0b0VuYWJsZWQ+KCZSZW5k
ZXJTdHlsZTo6bWFyZ2luVG9wLCAmUmVuZGVyU3R5bGU6OnNldE1hcmdpblRvcCwgJlJlbmRlclN0
eWxlOjppbml0aWFsTWFyZ2luKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1h
cmdpblJpZ2h0LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZD4oJlJlbmRlclN0
eWxlOjptYXJnaW5SaWdodCwgJlJlbmRlclN0eWxlOjpzZXRNYXJnaW5SaWdodCwgJlJlbmRlclN0
eWxlOjppbml0aWFsTWFyZ2luKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU1h
cmdpbkJvdHRvbSwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8QXV0b0VuYWJsZWQ+KCZSZW5kZXJT
dHlsZTo6bWFyZ2luQm90dG9tLCAmUmVuZGVyU3R5bGU6OnNldE1hcmdpbkJvdHRvbSwgJlJlbmRl
clN0eWxlOjppbml0aWFsTWFyZ2luKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0
eU1hcmdpbkxlZnQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkPigmUmVuZGVy
U3R5bGU6Om1hcmdpbkxlZnQsICZSZW5kZXJTdHlsZTo6c2V0TWFyZ2luTGVmdCwgJlJlbmRlclN0
eWxlOjppbml0aWFsTWFyZ2luKSk7CisKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5
UGFkZGluZ1RvcCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8PigmUmVuZGVyU3R5bGU6OnBhZGRp
bmdUb3AsICZSZW5kZXJTdHlsZTo6c2V0UGFkZGluZ1RvcCwgJlJlbmRlclN0eWxlOjppbml0aWFs
UGFkZGluZykpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQs
IG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPD4oJlJlbmRlclN0eWxlOjpwYWRkaW5nUmlnaHQsICZS
ZW5kZXJTdHlsZTo6c2V0UGFkZGluZ1JpZ2h0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxQYWRkaW5n
KSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b20sIG5ldyBB
cHBseVByb3BlcnR5TGVuZ3RoPD4oJlJlbmRlclN0eWxlOjpwYWRkaW5nQm90dG9tLCAmUmVuZGVy
U3R5bGU6OnNldFBhZGRpbmdCb3R0b20sICZSZW5kZXJTdHlsZTo6aW5pdGlhbFBhZGRpbmcpKTsK
KyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5UGFkZGluZ0xlZnQsIG5ldyBBcHBseVBy
b3BlcnR5TGVuZ3RoPD4oJlJlbmRlclN0eWxlOjpwYWRkaW5nTGVmdCwgJlJlbmRlclN0eWxlOjpz
ZXRQYWRkaW5nTGVmdCwgJlJlbmRlclN0eWxlOjppbml0aWFsUGFkZGluZykpOworCisgICAgc2V0
UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luWCwgbmV3IEFw
cGx5UHJvcGVydHlMZW5ndGg8PigmUmVuZGVyU3R5bGU6OnBlcnNwZWN0aXZlT3JpZ2luWCwgJlJl
bmRlclN0eWxlOjpzZXRQZXJzcGVjdGl2ZU9yaWdpblgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFBl
cnNwZWN0aXZlT3JpZ2luWCkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJr
aXRQZXJzcGVjdGl2ZU9yaWdpblksIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPD4oJlJlbmRlclN0
eWxlOjpwZXJzcGVjdGl2ZU9yaWdpblksICZSZW5kZXJTdHlsZTo6c2V0UGVyc3BlY3RpdmVPcmln
aW5ZLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxQZXJzcGVjdGl2ZU9yaWdpblkpKTsKKyAgICBzZXRQ
cm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWCwgbmV3IEFwcGx5
UHJvcGVydHlMZW5ndGg8PigmUmVuZGVyU3R5bGU6OnRyYW5zZm9ybU9yaWdpblgsICZSZW5kZXJT
dHlsZTo6c2V0VHJhbnNmb3JtT3JpZ2luWCwgJlJlbmRlclN0eWxlOjppbml0aWFsVHJhbnNmb3Jt
T3JpZ2luWCkpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zv
cm1PcmlnaW5ZLCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDw+KCZSZW5kZXJTdHlsZTo6dHJhbnNm
b3JtT3JpZ2luWSwgJlJlbmRlclN0eWxlOjpzZXRUcmFuc2Zvcm1PcmlnaW5ZLCAmUmVuZGVyU3R5
bGU6OmluaXRpYWxUcmFuc2Zvcm1PcmlnaW5ZKSk7CiB9CiAKIApJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gODUzMDQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1NTIsNyAr
MzU1Miw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICBm
bG9hdCB6b29tRmFjdG9yID0gbV9zdHlsZS0+ZWZmZWN0aXZlWm9vbSgpOwogCiAgICAgTGVuZ3Ro
IGw7Ci0gICAgYm9vbCBhcHBseSA9IGZhbHNlOwogCiAgICAgdW5zaWduZWQgc2hvcnQgdmFsdWVU
eXBlID0gdmFsdWUtPmNzc1ZhbHVlVHlwZSgpOwogCkBAIC0zOTQyLDIwMyArMzk0MSw2IEBAIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgbV9zdHlsZS0+
c2V0UmVzaXplKHIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAotICAgIC8vIGxlbmd0
aCwgcGVyY2VudAotICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhXaWR0aDoKLSAgICAgICAgLy8gK25v
bmUgK2luaGVyaXQKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkgewotICAgICAgICAgICAgbCA9IExlbmd0aCh1
bmRlZmluZWRMZW5ndGgsIEZpeGVkKTsKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsKLSAgICAg
ICAgfQotICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUxlZnQ6
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3R0b206
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdpZHRoOgotICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5XaWR0
aDoKLSAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luVG9wOgotICAgIGNhc2UgQ1NTUHJvcGVydHlN
YXJnaW5SaWdodDoKLSAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luQm90dG9tOgotICAgIGNhc2Ug
Q1NTUHJvcGVydHlNYXJnaW5MZWZ0OgotICAgICAgICAvLyAraW5oZXJpdCArYXV0bwotICAgICAg
ICBpZiAoaWQgPT0gQ1NTUHJvcGVydHlXaWR0aCB8fCBpZCA9PSBDU1NQcm9wZXJ0eU1pbldpZHRo
IHx8IGlkID09IENTU1Byb3BlcnR5TWF4V2lkdGgpIHsKLSAgICAgICAgICAgIGlmIChwcmltaXRp
dmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludHJpbnNp
YykgewotICAgICAgICAgICAgICAgIGwgPSBMZW5ndGgoSW50cmluc2ljKTsKLSAgICAgICAgICAg
ICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChw
cmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU1p
bkludHJpbnNpYykgewotICAgICAgICAgICAgICAgIGwgPSBMZW5ndGgoTWluSW50cmluc2ljKTsK
LSAgICAgICAgICAgICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKGlkICE9IENTU1Byb3BlcnR5TWF4V2lkdGggJiYgcHJpbWl0aXZlVmFsdWUg
JiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAg
ICAgYXBwbHkgPSB0cnVlOwotICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgotICAgIGNh
c2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdC
b3R0b206Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0OgotICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0SW5kZW50OgotICAgICAgICAvLyAraW5oZXJpdAotICAgIHsKLSAgICAgICAgaWYg
KGlzSW5oZXJpdCkgewotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0
eU1heFdpZHRoLCBtYXhXaWR0aCwgTWF4V2lkdGgpCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJ
VF9DT05EKENTU1Byb3BlcnR5Qm90dG9tLCBib3R0b20sIEJvdHRvbSkKLSAgICAgICAgICAgIEhB
TkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlUb3AsIHRvcCwgVG9wKQotICAgICAgICAgICAg
SEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eUxlZnQsIGxlZnQsIExlZnQpCi0gICAgICAg
ICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5UmlnaHQsIHJpZ2h0LCBSaWdodCkK
LSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlXaWR0aCwgd2lkdGgs
IFdpZHRoKQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eU1pbldp
ZHRoLCBtaW5XaWR0aCwgTWluV2lkdGgpCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05E
KENTU1Byb3BlcnR5UGFkZGluZ1RvcCwgcGFkZGluZ1RvcCwgUGFkZGluZ1RvcCkKLSAgICAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQsIHBhZGRpbmdS
aWdodCwgUGFkZGluZ1JpZ2h0KQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQ
cm9wZXJ0eVBhZGRpbmdCb3R0b20sIHBhZGRpbmdCb3R0b20sIFBhZGRpbmdCb3R0b20pCi0gICAg
ICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5UGFkZGluZ0xlZnQsIHBhZGRp
bmdMZWZ0LCBQYWRkaW5nTGVmdCkKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NT
UHJvcGVydHlNYXJnaW5Ub3AsIG1hcmdpblRvcCwgTWFyZ2luVG9wKQotICAgICAgICAgICAgSEFO
RExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0LCBtYXJnaW5SaWdodCwgTWFy
Z2luUmlnaHQpCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5TWFy
Z2luQm90dG9tLCBtYXJnaW5Cb3R0b20sIE1hcmdpbkJvdHRvbSkKLSAgICAgICAgICAgIEhBTkRM
RV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlNYXJnaW5MZWZ0LCBtYXJnaW5MZWZ0LCBNYXJnaW5M
ZWZ0KQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eVRleHRJbmRl
bnQsIHRleHRJbmRlbnQsIFRleHRJbmRlbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFsKSB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5J
VElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlNYXhXaWR0aCwgTWF4V2lkdGgsIE1heFNp
emUpCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVy
dHlCb3R0b20sIEJvdHRvbSwgT2Zmc2V0KQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09O
RF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5VG9wLCBUb3AsIE9mZnNldCkKLSAgICAgICAgICAgIEhB
TkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eUxlZnQsIExlZnQsIE9mZnNl
dCkKLSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0
eVJpZ2h0LCBSaWdodCwgT2Zmc2V0KQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9X
SVRIX1ZBTFVFKENTU1Byb3BlcnR5V2lkdGgsIFdpZHRoLCBTaXplKQotICAgICAgICAgICAgSEFO
RExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5TWluV2lkdGgsIE1pbldpZHRo
LCBNaW5TaXplKQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENT
U1Byb3BlcnR5UGFkZGluZ1RvcCwgUGFkZGluZ1RvcCwgUGFkZGluZykKLSAgICAgICAgICAgIEhB
TkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodCwgUGFk
ZGluZ1JpZ2h0LCBQYWRkaW5nKQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRI
X1ZBTFVFKENTU1Byb3BlcnR5UGFkZGluZ0JvdHRvbSwgUGFkZGluZ0JvdHRvbSwgUGFkZGluZykK
LSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eVBh
ZGRpbmdMZWZ0LCBQYWRkaW5nTGVmdCwgUGFkZGluZykKLSAgICAgICAgICAgIEhBTkRMRV9JTklU
SUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eU1hcmdpblRvcCwgTWFyZ2luVG9wLCBNYXJn
aW4pCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVy
dHlNYXJnaW5SaWdodCwgTWFyZ2luUmlnaHQsIE1hcmdpbikKLSAgICAgICAgICAgIEhBTkRMRV9J
TklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbSwgTWFyZ2luQm90
dG9tLCBNYXJnaW4pCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUo
Q1NTUHJvcGVydHlNYXJnaW5MZWZ0LCBNYXJnaW5MZWZ0LCBNYXJnaW4pCi0gICAgICAgICAgICBI
QU5ETEVfSU5JVElBTF9DT05EKENTU1Byb3BlcnR5VGV4dEluZGVudCwgVGV4dEluZGVudCkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfSAKLQotICAgICAgICBpZiAocHJpbWl0aXZlVmFs
dWUgJiYgIWFwcGx5KSB7Ci0gICAgICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5w
cmltaXRpdmVUeXBlKCk7Ci0gICAgICAgICAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5p
dFR5cGVMZW5ndGgodHlwZSkpCi0gICAgICAgICAgICAgICAgLy8gSGFuZGxlIG91ciBxdWlya3kg
bWFyZ2luIHVuaXRzIGlmIHdlIGhhdmUgdGhlbS4KLSAgICAgICAgICAgICAgICBsID0gTGVuZ3Ro
KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9v
dEVsZW1lbnRTdHlsZSwgem9vbUZhY3RvciksIEZpeGVkLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW1pdGl2ZVZhbHVlLT5pc1F1aXJrVmFsdWUoKSk7Ci0gICAgICAgICAgICBlbHNl
IGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAgICAg
ICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJj
ZW50KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFhcHBseSkgcmV0dXJu
OwotICAgICAgICBzd2l0Y2ggKGlkKSB7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWF4
V2lkdGg6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWF4V2lkdGgobCk7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm90dG9tOgotICAg
ICAgICAgICAgICAgIG1fc3R5bGUtPnNldEJvdHRvbShsKTsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6Ci0gICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0VG9wKGwpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUxlZnQ6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TGVmdChsKTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlSaWdo
dDoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRSaWdodChsKTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXaWR0aDoKLSAgICAgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRXaWR0aChsKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5XaWR0aDoKLSAgICAgICAgICAgICAgICBtX3N0eWxl
LT5zZXRNaW5XaWR0aChsKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFBh
ZGRpbmdUb3AobCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFBhZGRp
bmdSaWdodChsKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlQYWRkaW5nQm90dG9tOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFBhZGRp
bmdCb3R0b20obCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5UGFkZGluZ0xlZnQ6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0UGFkZGlu
Z0xlZnQobCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5TWFyZ2luVG9wOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcmdpblRvcChs
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlN
YXJnaW5SaWdodDoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJnaW5SaWdodChsKTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJn
aW5Cb3R0b206Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFyZ2luQm90dG9tKGwpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdp
bkxlZnQ6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFyZ2luTGVmdChsKTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50
OgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFRleHRJbmRlbnQobCk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY2FzZSBDU1NQ
cm9wZXJ0eU1heEhlaWdodDoKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkgewotICAgICAgICAgICAgbCA9IExl
bmd0aCh1bmRlZmluZWRMZW5ndGgsIEZpeGVkKTsKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsK
LSAgICAgICAgfQotICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6Ci0gICAgY2FzZSBDU1NQcm9w
ZXJ0eU1pbkhlaWdodDoKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlSW50cmluc2ljKSB7Ci0gICAgICAgICAgICBsID0g
TGVuZ3RoKEludHJpbnNpYyk7Ci0gICAgICAgICAgICBhcHBseSA9IHRydWU7Ci0gICAgICAgIH0g
ZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVNaW5JbnRyaW5zaWMpIHsKLSAgICAgICAgICAgIGwgPSBMZW5ndGgoTWluSW50cmlu
c2ljKTsKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIGlmIChpZCAh
PSBDU1NQcm9wZXJ0eU1heEhlaWdodCAmJiBwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgICAgICBhcHBseSA9IHRydWU7
Ci0gICAgICAgIGlmIChpc0luaGVyaXQpIHsKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NP
TkQoQ1NTUHJvcGVydHlNYXhIZWlnaHQsIG1heEhlaWdodCwgTWF4SGVpZ2h0KQotICAgICAgICAg
ICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eUhlaWdodCwgaGVpZ2h0LCBIZWlnaHQp
Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5TWluSGVpZ2h0LCBt
aW5IZWlnaHQsIE1pbkhlaWdodCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBpZiAoaXNJbml0aWFsKSB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJ
VEhfVkFMVUUoQ1NTUHJvcGVydHlNYXhIZWlnaHQsIE1heEhlaWdodCwgTWF4U2l6ZSkKLSAgICAg
ICAgICAgIEhBTkRMRV9JTklUSUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eUhlaWdodCwg
SGVpZ2h0LCBTaXplKQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVF
KENTU1Byb3BlcnR5TWluSGVpZ2h0LCBNaW5IZWlnaHQsIE1pblNpemUpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgIWFwcGx5
KSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnBy
aW1pdGl2ZVR5cGUoKTsKLSAgICAgICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0
VHlwZUxlbmd0aCh0eXBlKSkKLSAgICAgICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZh
bHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHls
ZSwgem9vbUZhY3RvciksIEZpeGVkKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAgICAgIGwgPSBMZW5n
dGgocHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGFwcGx5ID0gdHJ1
ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoYXBwbHkpCi0gICAgICAgICAgICBzd2l0Y2ggKGlk
KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heEhlaWdodDoKLSAgICAgICAg
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWF4SGVpZ2h0KGwpOwotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5SGVpZ2h0OgotICAgICAg
ICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRIZWlnaHQobCk7Ci0gICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5IZWlnaHQ6Ci0gICAg
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1pbkhlaWdodChsKTsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLQogICAgIGNhc2Ug
Q1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduOgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTCh2ZXJ0aWNhbEFsaWduLCBWZXJ0aWNhbEFsaWduKQogICAgICAgICBpZiAoIXByaW1pdGl2
ZVZhbHVlKQpAQCAtNTUyNywzNiArNTMyOSw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlQcm9wZXJ0eShpbnQKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwodHJhbnNm
b3JtT3JpZ2luWSwgVHJhbnNmb3JtT3JpZ2luWSkKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5E
X0lOSVRJQUwodHJhbnNmb3JtT3JpZ2luWiwgVHJhbnNmb3JtT3JpZ2luWikKICAgICAgICAgcmV0
dXJuOwotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5YOiB7Ci0gICAg
ICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRyYW5zZm9ybU9yaWdpblgsIFRyYW5zZm9y
bU9yaWdpblgpCi0gICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIExlbmd0aCBsOwotICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVl
LT5wcmltaXRpdmVUeXBlKCk7Ci0gICAgICAgIGlmIChDU1NQcmltaXRpdmVWYWx1ZTo6aXNVbml0
VHlwZUxlbmd0aCh0eXBlKSkKLSAgICAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUt
PmNvbXB1dGVMZW5ndGhJbnRGb3JMZW5ndGgoc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6
b29tRmFjdG9yKSwgRml4ZWQpOwotICAgICAgICBlbHNlIGlmICh0eXBlID09IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0aXZl
VmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIG1fc3R5bGUtPnNldFRyYW5zZm9ybU9yaWdpblgobCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3Jt
T3JpZ2luWTogewotICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh0cmFuc2Zvcm1P
cmlnaW5ZLCBUcmFuc2Zvcm1PcmlnaW5ZKQotICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBMZW5ndGggbDsKLSAgICAgICAgaW50IHR5cGUg
PSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwotICAgICAgICBpZiAoQ1NTUHJpbWl0
aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgodHlwZSkpCi0gICAgICAgICAgICBsID0gTGVuZ3Ro
KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9v
dEVsZW1lbnRTdHlsZSwgem9vbUZhY3RvciksIEZpeGVkKTsKLSAgICAgICAgZWxzZSBpZiAodHlw
ZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICBsID0g
TGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3N0eWxlLT5zZXRUcmFuc2Zv
cm1PcmlnaW5ZKGwpOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdFRyYW5zZm9ybU9yaWdpblo6IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lO
SVRJQUwodHJhbnNmb3JtT3JpZ2luWiwgVHJhbnNmb3JtT3JpZ2luWikKICAgICAgICAgaWYgKCFw
cmltaXRpdmVWYWx1ZSkKQEAgLTU2MDAsMzYgKzUzNzIsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KHBlcnNwZWN0aXZlT3JpZ2luWCwgUGVyc3BlY3RpdmVPcmlnaW5YKQogICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTChwZXJzcGVjdGl2ZU9yaWdpblksIFBlcnNwZWN0aXZlT3JpZ2lu
WSkKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQZXJzcGVjdGl2
ZU9yaWdpblg6IHsKLSAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwocGVyc3BlY3Rp
dmVPcmlnaW5YLCBQZXJzcGVjdGl2ZU9yaWdpblgpCi0gICAgICAgIGlmICghcHJpbWl0aXZlVmFs
dWUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIExlbmd0aCBsOwotICAgICAgICBpbnQg
dHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7Ci0gICAgICAgIGlmIChDU1NQ
cmltaXRpdmVWYWx1ZTo6aXNVbml0VHlwZUxlbmd0aCh0eXBlKSkKLSAgICAgICAgICAgIGwgPSBM
ZW5ndGgocHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGhJbnRGb3JMZW5ndGgoc3R5bGUoKSwg
bV9yb290RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKSwgRml4ZWQpOwotICAgICAgICBlbHNlIGlm
ICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAgICAgICAg
IGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fc3R5bGUtPnNldFBl
cnNwZWN0aXZlT3JpZ2luWChsKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5ZOiB7Ci0gICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMKHBlcnNwZWN0aXZlT3JpZ2luWSwgUGVyc3BlY3RpdmVPcmlnaW5ZKQot
ICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBMZW5ndGggbDsKLSAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZl
VHlwZSgpOwotICAgICAgICBpZiAoQ1NTUHJpbWl0aXZlVmFsdWU6OmlzVW5pdFR5cGVMZW5ndGgo
dHlwZSkpCi0gICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVu
Z3RoSW50Rm9yTGVuZ3RoKHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3Rvciks
IEZpeGVkKTsKLSAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1BFUkNFTlRBR0UpCi0gICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXRE
b3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBtX3N0eWxlLT5zZXRQZXJzcGVjdGl2ZU9yaWdpblkobCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbjoKICAgICAg
ICAgaWYgKGlzSW5pdGlhbCkKICAgICAgICAgICAgIG1fc3R5bGUtPmNsZWFyQW5pbWF0aW9ucygp
OwpAQCAtNTk0OSw2ICs1NjkxLDI5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9w
ZXJ0eShpbnQKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93WDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlNYXhXaWR0aDoKKyAgICBjYXNlIENTU1Byb3BlcnR5VG9wOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlMZWZ0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlSaWdodDoKKyAgICBjYXNlIENT
U1Byb3BlcnR5Qm90dG9tOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXaWR0aDoKKyAgICBjYXNlIENT
U1Byb3BlcnR5TWluV2lkdGg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKKyAgICBj
YXNlIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkJv
dHRvbToKKyAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luTGVmdDoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5UGFkZGluZ1RvcDoKKyAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgorICAgIGNh
c2UgQ1NTUHJvcGVydHlQYWRkaW5nQm90dG9tOgorICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5n
TGVmdDoKKyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5TWF4SGVpZ2h0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eU1pbkhlaWdodDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3Jp
Z2luWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWToKKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0UGVyc3BlY3RpdmVPcmlnaW5YOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRQZXJzcGVjdGl2ZU9yaWdpblk6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm47CiAjaWYgRU5BQkxFKFNWRykK
</data>

          </attachment>
      

    </bug>

</bugzilla>