<?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>139618</bug_id>
          
          <creation_ts>2014-12-13 00:33:40 -0800</creation_ts>
          <short_desc>Ruby does not preserve expansion opportunities from enclosing context</short_desc>
          <delta_ts>2014-12-16 11:46:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055408</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-12-13 00:33:40 -0800</bug_when>
    <thetext>Ruby does not preserve expansion opportunities from enclosing context</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055409</commentid>
    <comment_count>1</comment_count>
      <attachid>243252</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-12-13 00:35:24 -0800</bug_when>
    <thetext>Created attachment 243252
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055456</commentid>
    <comment_count>2</comment_count>
      <attachid>243260</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-12-13 15:08:11 -0800</bug_when>
    <thetext>Created attachment 243260
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055844</commentid>
    <comment_count>3</comment_count>
      <attachid>243340</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-12-15 20:21:40 -0800</bug_when>
    <thetext>Created attachment 243340
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055866</commentid>
    <comment_count>4</comment_count>
      <attachid>243348</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-12-15 21:48:39 -0800</bug_when>
    <thetext>Created attachment 243348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056005</commentid>
    <comment_count>5</comment_count>
      <attachid>243348</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-12-16 10:51:42 -0800</bug_when>
    <thetext>Comment on attachment 243348
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056020</commentid>
    <comment_count>6</comment_count>
      <attachid>243348</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-16 11:28:13 -0800</bug_when>
    <thetext>Comment on attachment 243348
Patch

Clearing flags on attachment: 243348

Committed r177377: &lt;http://trac.webkit.org/changeset/177377&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056021</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-16 11:28:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056030</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-12-16 11:46:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/18670771&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243252</attachid>
            <date>2014-12-13 00:35:24 -0800</date>
            <delta_ts>2014-12-13 15:08:08 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-139618-20141213003609.patch</filename>
            <type>text/plain</type>
            <size>7168</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTJkOTA2NWM4ODVlZDdh
MjIxNmY5N2NiZmM2ZTNhMDBhN2VhN2RhOC4uZDQ2ZmRkOTQyYTVjNTZhNTA0ZDM3MjhiN2RmNGQ2
NjYyMDdjMzIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0LTEyLTEzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUnVieSBkb2Vz
IG5vdCBwcmVzZXJ2ZSBleHBhbnNpb24gb3Bwb3J0dW5pdGllcyBmcm9tIGVuY2xvc2luZyBjb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3Jr
IGluIHByb2dyZXNzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JTZWdtZW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUnVieUJhc2U6OlJlbmRlclJ1YnlCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clJ1YnlCYXNlOjphZGp1c3RJbmxpbmVEaXJlY3Rpb25MaW5lQm91bmRzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVi
eVJ1bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5UnVuOjpsYXlvdXQpOgorCiAy
MDE0LTEyLTEyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10g
V29yayBhcm91bmQgYSBidWcgaW4gZHN5bXV0aWwgb24gb2xkZXIgT1MgdmVyc2lvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5k
ZXggZmMyYTlkZDM2NThkYTJhNzc4OTQyYjVkZGUzMzZlYjc3NGE5YTBlZC4uYWVjMzE3ODkxNzRh
OTY0ZTczYzZlNmRkNjMyMGZiYzRlOGI1NDJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTU2OCw3ICs1NjgsOSBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlUnVieUZvckp1c3RpZmllZFRleHQoUmVuZGVyUnVieVJ1
biYgcnVieVJ1biwgQmlkaVJ1biYgcgogCiAgICAgaWYgKHRvdGFsT3Bwb3J0dW5pdGllc0luUnVu
KSB7CiAgICAgICAgIEFTU0VSVCghcnVieVJ1bi5oYXNPdmVycmlkZVdpZHRoKCkpOwotICAgICAg
ICBydWJ5UnVuLnNldE92ZXJyaWRlTG9naWNhbENvbnRlbnRXaWR0aChydWJ5UnVuLmxvZ2ljYWxX
aWR0aCgpICsgdG90YWxFeHBhbnNpb24pOworICAgICAgICBmbG9hdCBuZXdCYXNlV2lkdGggPSBy
b290Qm94LmxvZ2ljYWxXaWR0aCgpICsgdG90YWxFeHBhbnNpb247CisgICAgICAgIHJ1YnlCYXNl
LnNldEluaXRpYWxPZmZzZXQoc3RkOjptYXgoMC5mLCBydWJ5UnVuLmxvZ2ljYWxXaWR0aCgpIC0g
bmV3QmFzZVdpZHRoKSAvIDIpOworICAgICAgICBydWJ5UnVuLnNldE92ZXJyaWRlTG9naWNhbENv
bnRlbnRXaWR0aChzdGQ6Om1heChuZXdCYXNlV2lkdGgsIHN0YXRpY19jYXN0PGZsb2F0PihydWJ5
UnVuLmxvZ2ljYWxXaWR0aCgpKSkpOwogICAgICAgICBydWJ5UnVuLnNldE5lZWRzTGF5b3V0KE1h
cmtPbmx5VGhpcyk7CiAgICAgICAgIHJ1YnlSdW4ubGF5b3V0QmxvY2sodHJ1ZSk7CiAgICAgICAg
IHJ1YnlSdW4uY2xlYXJPdmVycmlkZUxvZ2ljYWxDb250ZW50V2lkdGgoKTsKQEAgLTcwNCw3ICs3
MDYsNyBAQCBCaWRpUnVuKiBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Q
b3NpdGlvbnNGb3JTZWdtZW50KFJvb3RJbmxpbmVCbwogICAgIGJvb2wgbmVlZHNXb3JkU3BhY2lu
ZyA9IGZhbHNlOwogICAgIGZsb2F0IHRvdGFsTG9naWNhbFdpZHRoID0gbGluZUJveC0+Z2V0Rmxv
d1NwYWNpbmdMb2dpY2FsV2lkdGgoKTsKICAgICB1bnNpZ25lZCBleHBhbnNpb25PcHBvcnR1bml0
eUNvdW50ID0gMDsKLSAgICBib29sIGlzQWZ0ZXJFeHBhbnNpb24gPSB0cnVlOworICAgIGJvb2wg
aXNBZnRlckV4cGFuc2lvbiA9IGlzPFJlbmRlclJ1YnlCYXNlPigqdGhpcykgPyBkb3duY2FzdDxS
ZW5kZXJSdWJ5QmFzZT4oKnRoaXMpLmlzQWZ0ZXJFeHBhbnNpb24oKSA6IHRydWU7CiAgICAgVmVj
dG9yPHVuc2lnbmVkLCAxNj4gZXhwYW5zaW9uT3Bwb3J0dW5pdGllczsKICAgICBSZW5kZXJPYmpl
Y3QqIHByZXZpb3VzT2JqZWN0ID0gbnVsbHB0cjsKIApAQCAtNzM3LDYgKzczOSw4IEBAIEJpZGlS
dW4qIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvclNl
Z21lbnQoUm9vdElubGluZUJvCiAgICAgICAgICAgICBpZiAoaXM8UmVuZGVyUnVieVJ1bj4ocnVu
LT5yZW5kZXJlcigpKSAmJiB0ZXh0QWxpZ24gPT0gSlVTVElGWSAmJiBydW4gIT0gdHJhaWxpbmdT
cGFjZVJ1biAmJiBkb3duY2FzdDxSZW5kZXJSdWJ5UnVuPihydW4tPnJlbmRlcmVyKCkpLnJ1YnlC
YXNlKCkpIHsKICAgICAgICAgICAgICAgICBhdXRvKiBydWJ5QmFzZSA9IGRvd25jYXN0PFJlbmRl
clJ1YnlSdW4+KHJ1bi0+cmVuZGVyZXIoKSkucnVieUJhc2UoKTsKICAgICAgICAgICAgICAgICBp
ZiAocnVieUJhc2UtPmZpcnN0Um9vdEJveCgpICYmICFydWJ5QmFzZS0+Zmlyc3RSb290Qm94KCkt
Pm5leHRSb290Qm94KCkgJiYgcnVuLT5yZW5kZXJlcigpLnN0eWxlKCkuY29sbGFwc2VXaGl0ZVNw
YWNlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVieUJhc2UtPnNldElzSW5zaWRlTGluZSgp
OworICAgICAgICAgICAgICAgICAgICBydWJ5QmFzZS0+c2V0SXNBZnRlckV4cGFuc2lvbihpc0Fm
dGVyRXhwYW5zaW9uKTsKICAgICAgICAgICAgICAgICAgICAgZm9yIChhdXRvKiBsZWFmQ2hpbGQg
PSBydWJ5QmFzZS0+Zmlyc3RSb290Qm94KCktPmZpcnN0TGVhZkNoaWxkKCk7IGxlYWZDaGlsZDsg
bGVhZkNoaWxkID0gbGVhZkNoaWxkLT5uZXh0TGVhZkNoaWxkKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICghaXM8SW5saW5lVGV4dEJveD4oKmxlYWZDaGlsZCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC03NjcsNyArNzcxLDcgQEAgQmlkaVJ1biog
UmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yU2VnbWVu
dChSb290SW5saW5lQm8KICAgICAgICAgcHJldmlvdXNPYmplY3QgPSAmcnVuLT5yZW5kZXJlcigp
OwogICAgIH0KIAotICAgIGlmIChpc0FmdGVyRXhwYW5zaW9uICYmICFleHBhbnNpb25PcHBvcnR1
bml0aWVzLmlzRW1wdHkoKSkgeworICAgIGlmIChpc0FmdGVyRXhwYW5zaW9uICYmICFleHBhbnNp
b25PcHBvcnR1bml0aWVzLmlzRW1wdHkoKSAmJiAoIWlzPFJlbmRlclJ1YnlCYXNlPigqdGhpcykg
fHwgIWRvd25jYXN0PFJlbmRlclJ1YnlCYXNlPigqdGhpcykuaXNJbnNpZGVMaW5lKCkpKSB7CiAg
ICAgICAgIGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMubGFzdCgpLS07CiAgICAgICAgIGV4cGFuc2lv
bk9wcG9ydHVuaXR5Q291bnQtLTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJ1YnlCYXNlLmNwcAppbmRleCAzMTMyOTk4NTZkMWNlNmEzOGYxYmRhMTcxNGNiZjZlMjA0
NzAzMzc0Li5kZGFlZTYwZjg0MjRmNjE0ZDQ2MjU1MTBkOGEwYzljNGFiNTQyMDcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKQEAgLTM4LDYgKzM4LDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyUnVieUJhc2U6OlJlbmRlclJ1YnlCYXNl
KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiAgICAgOiBS
ZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCisgICAgLCBtX2luaXRp
YWxPZmZzZXQoMCkKKyAgICAsIG1fc2V0SW5pdGlhbE9mZnNldChmYWxzZSkKKyAgICAsIG1faXNB
ZnRlckV4cGFuc2lvbih0cnVlKQorICAgICwgbV9pc0luc2lkZUxpbmUoZmFsc2UpCiB7CiAgICAg
c2V0SW5saW5lKGZhbHNlKTsKIH0KQEAgLTE0MSw2ICsxNDUsMTEgQEAgRVRleHRBbGlnbiBSZW5k
ZXJSdWJ5QmFzZTo6dGV4dEFsaWdubWVudEZvckxpbmUoYm9vbCAvKiBlbmRzV2l0aFNvZnRCcmVh
ayAqLykgY28KIAogdm9pZCBSZW5kZXJSdWJ5QmFzZTo6YWRqdXN0SW5saW5lRGlyZWN0aW9uTGlu
ZUJvdW5kcyhpbnQgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCwgZmxvYXQmIGxvZ2ljYWxMZWZ0
LCBmbG9hdCYgbG9naWNhbFdpZHRoKSBjb25zdAogeworICAgIGlmIChtX3NldEluaXRpYWxPZmZz
ZXQpIHsKKyAgICAgICAgbG9naWNhbExlZnQgKz0gbV9pbml0aWFsT2Zmc2V0OworICAgICAgICBs
b2dpY2FsV2lkdGggLT0gMiAqIG1faW5pdGlhbE9mZnNldDsKKyAgICB9CisKICAgICBMYXlvdXRV
bml0IG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHJ1YnlSdW4oKSAmJiBydWJ5UnVuKCktPmhh
c092ZXJyaWRlV2lkdGgoKSA/IHJ1YnlSdW4oKS0+b3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRo
KCkgOiB0aGlzLT5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKTsKICAgICBpZiAobWF4UHJlZmVy
cmVkTG9naWNhbFdpZHRoID49IGxvZ2ljYWxXaWR0aCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaAppbmRleCBmYjc1YjYzY2IyZjMyMzNm
Y2RiZDRhZmViNTZiZThkNDVlZDRhMTEzLi5jMmE4ZDIyNTM4NDIyZmE5MjVmYjMzN2YyZWU2ZTlj
MDI5NGVjYmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVi
eUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaApA
QCAtNDYsNiArNDYsMjYgQEAgcHVibGljOgogICAgIAogICAgIFJlbmRlclJ1YnlSdW4qIHJ1YnlS
dW4oKSBjb25zdDsKIAorICAgIHZvaWQgc2V0SXNBZnRlckV4cGFuc2lvbihib29sIGlzQWZ0ZXJF
eHBhbnNpb24pIHsgbV9pc0FmdGVyRXhwYW5zaW9uID0gaXNBZnRlckV4cGFuc2lvbjsgfQorICAg
IGJvb2wgaXNBZnRlckV4cGFuc2lvbigpIHsgcmV0dXJuIG1faXNBZnRlckV4cGFuc2lvbjsgfQor
CisgICAgdm9pZCBzZXRJc0luc2lkZUxpbmUoKSB7IG1faXNJbnNpZGVMaW5lID0gdHJ1ZTsgfQor
ICAgIGJvb2wgaXNJbnNpZGVMaW5lKCkgeyByZXR1cm4gbV9pc0luc2lkZUxpbmU7IH0KKworICAg
IHZvaWQgc2V0SW5pdGlhbE9mZnNldChmbG9hdCBpbml0aWFsT2Zmc2V0KQorICAgIHsKKyAgICAg
ICAgbV9zZXRJbml0aWFsT2Zmc2V0ID0gdHJ1ZTsKKyAgICAgICAgbV9pbml0aWFsT2Zmc2V0ID0g
aW5pdGlhbE9mZnNldDsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAg
IG1faW5pdGlhbE9mZnNldCA9IDA7CisgICAgICAgIG1fc2V0SW5pdGlhbE9mZnNldCA9IGZhbHNl
OworICAgICAgICBtX2lzQWZ0ZXJFeHBhbnNpb24gPSBmYWxzZTsKKyAgICAgICAgbV9pc0luc2lk
ZUxpbmUgPSBmYWxzZTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUnVi
eUJhc2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJikg
Y29uc3Qgb3ZlcnJpZGU7CkBAIC01OSw2ICs3OSwxMSBAQCBwcml2YXRlOgogCiAgICAgLy8gQWxs
b3cgUmVuZGVyUnVieVJ1biB0byBtYW5pcHVsYXRlIHRoZSBjaGlsZHJlbiB3aXRoaW4gcnVieSBi
YXNlcy4KICAgICBmcmllbmQgY2xhc3MgUmVuZGVyUnVieVJ1bjsKKworICAgIGZsb2F0IG1faW5p
dGlhbE9mZnNldDsKKyAgICB1bnNpZ25lZCBtX3NldEluaXRpYWxPZmZzZXQgOiAxOworICAgIHVu
c2lnbmVkIG1faXNBZnRlckV4cGFuc2lvbiA6IDE7CisgICAgdW5zaWduZWQgbV9pc0luc2lkZUxp
bmUgOiAxOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCmluZGV4IDI1ZDkwMGM3NGU5YTNhMjc3MzQxYTFlNDY4
YTUzNzRmY2NlZTA2MGUuLjNkYmQ4OTA2YWY1ZjUzMGJjMTgwYzg0ZTZmODZlN2Y0ZTM1ZDFkZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAKQEAgLTIzMCw2
ICsyMzAsOSBAQCBSZW5kZXJPYmplY3QqIFJlbmRlclJ1YnlSdW46OmxheW91dFNwZWNpYWxFeGNs
dWRlZENoaWxkKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKIAogdm9pZCBSZW5kZXJSdWJ5UnVuOjps
YXlvdXQoKQogeworICAgIGlmIChSZW5kZXJSdWJ5QmFzZSogYmFzZSA9IHJ1YnlCYXNlKCkpCisg
ICAgICAgIGJhc2UtPnJlc2V0KCk7CisKICAgICBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dCgpOwog
ICAgIAogICAgIFJlbmRlclJ1YnlUZXh0KiBydCA9IHJ1YnlUZXh0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243260</attachid>
            <date>2014-12-13 15:08:11 -0800</date>
            <delta_ts>2014-12-15 20:21:38 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-139618-20141213150856.patch</filename>
            <type>text/plain</type>
            <size>18534</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTJkOTA2NWM4ODVlZDdh
MjIxNmY5N2NiZmM2ZTNhMDBhN2VhN2RhOC4uZDQ2ZmRkOTQyYTVjNTZhNTA0ZDM3MjhiN2RmNGQ2
NjYyMDdjMzIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0LTEyLTEzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUnVieSBkb2Vz
IG5vdCBwcmVzZXJ2ZSBleHBhbnNpb24gb3Bwb3J0dW5pdGllcyBmcm9tIGVuY2xvc2luZyBjb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3Jr
IGluIHByb2dyZXNzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JTZWdtZW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUnVieUJhc2U6OlJlbmRlclJ1YnlCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clJ1YnlCYXNlOjphZGp1c3RJbmxpbmVEaXJlY3Rpb25MaW5lQm91bmRzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVi
eVJ1bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5UnVuOjpsYXlvdXQpOgorCiAy
MDE0LTEyLTEyICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10g
V29yayBhcm91bmQgYSBidWcgaW4gZHN5bXV0aWwgb24gb2xkZXIgT1MgdmVyc2lvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRleCA0MDYxNjEzNTBiNzI2
NGYxNGY1OTRhYzE4NjJlYzkwNGQ2OTc2MjkxLi41ZjliODYxZTBiMDQxZGU1YzQzNGMwMDRkZDhi
ZjBlYjUyMDFiYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwCkBAIC0xNzksNiArMTc5LDE0IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6cmVtb3ZlQ2hpbGQo
SW5saW5lQm94KiBjaGlsZCkKICAgICBpZiAoIWlzRGlydHkoKSkKICAgICAgICAgZGlydHlMaW5l
Qm94ZXMoKTsKIAorICAgIGlmIChjaGlsZC0+cHJldkxlYWZDaGlsZCgpICYmIGlzPElubGluZVRl
eHRCb3g+KGNoaWxkLT5wcmV2TGVhZkNoaWxkKCkpKSB7CisgICAgICAgIGlmIChpczxJbmxpbmVU
ZXh0Qm94PihjaGlsZCkpCisgICAgICAgICAgICBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PihjaGls
ZC0+cHJldkxlYWZDaGlsZCgpKS0+cmVuZGVyZXIoKS5zZXRDb250ZW50SXNLbm93blRvRm9sbG93
KGRvd25jYXN0PElubGluZVRleHRCb3g+KGNoaWxkKS0+cmVuZGVyZXIoKS5jb250ZW50SXNLbm93
blRvRm9sbG93KCkpOworICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdl
IHJlbW92ZSB0aGUgbGFzdCBpbmxpbmUgYm94LCBhbmQgaXQncyBub3QgYSB0ZXh0IGJveC4gSWYg
d2UncmUgdHJ5aW5nIHRvIHNoYXJlCisgICAgICAgIC8vIGV4cGFuc2lvbiBvcHBvcnR1bml0ZXMg
Ym90aCBpbnNpZGUgYW5kIG91dHNpZGUgYSByZXBsYWNlZCBlbGVtZW50IChzdWNoIGFzIGZvciBy
dWJ5IGJhc2VzKSwgd2UgbmVlZCB0byBzZWFyY2gKKyAgICAgICAgLy8gb3V0c2lkZSB0aGUgY3Vy
cmVudCBpbmxpbmUgYm94IHRyZWUgdG8gZGV0ZXJtaW5lIGlmIHRoZXJlIGlzIGNvbnRlbnQgdGhh
dCBmb2xsb3dzIHRoZSBuZXcgbGFzdCBpbmxpbmUgaXRlbS4KKyAgICB9CisKICAgICByb290KCku
Y2hpbGRSZW1vdmVkKGNoaWxkKTsKIAogICAgIGlmIChjaGlsZCA9PSBtX2ZpcnN0Q2hpbGQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCA4ZTYyMjI2ZWVjOTQ0
OWM5MmM5ZWQyY2Y4ZDU3YmUzY2E2ZDVlYThjLi5mY2YwYWU3MTg2ZTFlYzM5NGMxNGU2N2FjZWJk
Y2IwZDMxZGM1NTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgK
QEAgLTE2Myw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFRleHRSdW46OkV4cGFuc2lvbkJlaGF2
aW9yIGV4cGFuc2lvbkJlaGF2aW9yKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiAoY2Fu
SGF2ZUxlYWRpbmdFeHBhbnNpb24oKSA/IFRleHRSdW46OkFsbG93TGVhZGluZ0V4cGFuc2lvbiA6
IFRleHRSdW46OkZvcmJpZExlYWRpbmdFeHBhbnNpb24pCi0gICAgICAgICAgICB8IChleHBhbnNp
b24oKSAmJiBuZXh0TGVhZkNoaWxkKCkgJiYgIW5leHRMZWFmQ2hpbGQoKS0+aXNMaW5lQnJlYWso
KSA/IFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24gOiBUZXh0UnVuOjpGb3JiaWRUcmFp
bGluZ0V4cGFuc2lvbik7CisgICAgICAgICAgICB8IChyZW5kZXJlcigpLmNvbnRlbnRJc0tub3du
VG9Gb2xsb3coKSB8fCAoZXhwYW5zaW9uKCkgJiYgbmV4dExlYWZDaGlsZCgpICYmICFuZXh0TGVh
ZkNoaWxkKCktPmlzTGluZUJyZWFrKCkpID8gVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lv
biA6IFRleHRSdW46OkZvcmJpZFRyYWlsaW5nRXhwYW5zaW9uKTsKICAgICB9CiAKICAgICB2b2lk
IGJlaGF2ZXNMaWtlVGV4dCgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5oCmluZGV4IGY2MjAzNjZlODU0Y2Q3NjAxMjQwZjVmNTgzMWQw
ODM4YjM4MzczM2QuLmFlZjUxY2NmN2IzNmFmNjA5ZDVlYjlkNmFhMjVjZjkxYTA1MjU2YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKQEAgLTU0OSw2ICs1
NDksOCBAQCBwcml2YXRlOgogICAgIFJvb3RJbmxpbmVCb3gqIGNvbnN0cnVjdExpbmUoQmlkaVJ1
bkxpc3Q8QmlkaVJ1bj4mLCBjb25zdCBMaW5lSW5mbyYpOwogICAgIHZvaWQgc2V0TWFyZ2luc0Zv
clJ1YnlSdW4oQmlkaVJ1biosIFJlbmRlclJ1YnlSdW4mLCBSZW5kZXJPYmplY3QqLCBjb25zdCBM
aW5lSW5mbyYpOwogICAgIHZvaWQgY29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0Zvckxp
bmUoUm9vdElubGluZUJveCosIGNvbnN0IExpbmVJbmZvJiwgQmlkaVJ1biogZmlyc3RSdW4sIEJp
ZGlSdW4qIHRyYWlsaW5nU3BhY2VSdW4sIGJvb2wgcmVhY2hlZEVuZCwgR2x5cGhPdmVyZmxvd0Fu
ZEZhbGxiYWNrRm9udHNNYXAmLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmLCBXb3JkTWVhc3VyZW1l
bnRzJik7CisgICAgdm9pZCB1cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dChSZW5kZXJSdWJ5UnVu
JiBydWJ5UnVuLCBCaWRpUnVuJiByLCBjb25zdCBWZWN0b3I8dW5zaWduZWQsIDE2PiYgZXhwYW5z
aW9uT3Bwb3J0dW5pdGllcywgdW5zaWduZWQmIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQsIGZs
b2F0JiB0b3RhbExvZ2ljYWxXaWR0aCwgZmxvYXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBSZW5k
ZXJPYmplY3QqIHByZXZpb3VzT2JqZWN0LCBjb25zdCBMaW5lSW5mbyYgbGluZUluZm8sIHNpemVf
dCYgaSk7CisgICAgdm9pZCBjb21wdXRlRXhwYW5zaW9uRm9ySnVzdGlmaWVkVGV4dChCaWRpUnVu
KiBmaXJzdFJ1biwgQmlkaVJ1biogdHJhaWxpbmdTcGFjZVJ1biwgY29uc3QgVmVjdG9yPHVuc2ln
bmVkLCAxNj4mIGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMsIHVuc2lnbmVkIGV4cGFuc2lvbk9wcG9y
dHVuaXR5Q291bnQsIGZsb2F0IHRvdGFsTG9naWNhbFdpZHRoLCBmbG9hdCBhdmFpbGFibGVMb2dp
Y2FsV2lkdGgsIGNvbnN0IExpbmVJbmZvJiBsaW5lSW5mbyk7CiAgICAgQmlkaVJ1biogY29tcHV0
ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvclNlZ21lbnQoUm9vdElubGluZUJveCosIGNvbnN0
IExpbmVJbmZvJiwgRVRleHRBbGlnbiwgZmxvYXQmIGxvZ2ljYWxMZWZ0LAogICAgICAgICBmbG9h
dCYgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBCaWRpUnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogdHJh
aWxpbmdTcGFjZVJ1biwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hE
YXRhTWFwLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmLCBXb3JkTWVhc3VyZW1lbnRzJik7CiAgICAg
dm9pZCBjb21wdXRlQmxvY2tEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gq
LCBCaWRpUnVuKiwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmLCBWZXJ0aWNhbFBv
c2l0aW9uQ2FjaGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrTGluZUxheW91dC5jcHAKaW5kZXggZmMyYTlkZDM2NThkYTJhNzc4OTQyYjVkZGUzMzZlYjc3
NGE5YTBlZC4uY2NmYzg4ZDJhMWNiYTIxOTNiM2E3MjU0YzMzNTEyNjhmN2M3YzUyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAK
QEAgLTU0NSw3ICs1NDUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TG9naWNhbFdpZHRoRm9y
VGV4dFJ1bihSb290SW5saW5lQm94KiBsaW5lQm94LCBCaWRpUnVuKiBydQogICAgIH0KIH0KIAot
c3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZVJ1YnlGb3JKdXN0aWZpZWRUZXh0KFJlbmRlclJ1YnlS
dW4mIHJ1YnlSdW4sIEJpZGlSdW4mIHIsIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZCwgMTY+JiBleHBh
bnNpb25PcHBvcnR1bml0aWVzLCB1bnNpZ25lZCYgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCwg
ZmxvYXQmIHRvdGFsTG9naWNhbFdpZHRoLCBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIHNp
emVfdCYgaSkKK3ZvaWQgUmVuZGVyQmxvY2tGbG93Ojp1cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4
dChSZW5kZXJSdWJ5UnVuJiBydWJ5UnVuLCBCaWRpUnVuJiByLCBjb25zdCBWZWN0b3I8dW5zaWdu
ZWQsIDE2PiYgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywgdW5zaWduZWQmIGV4cGFuc2lvbk9wcG9y
dHVuaXR5Q291bnQsIGZsb2F0JiB0b3RhbExvZ2ljYWxXaWR0aCwgZmxvYXQgYXZhaWxhYmxlTG9n
aWNhbFdpZHRoLCBSZW5kZXJPYmplY3QqIHByZXZpb3VzT2JqZWN0LCBjb25zdCBMaW5lSW5mbyYg
bGluZUluZm8sIHNpemVfdCYgaSkKIHsKICAgICBpZiAoIXJ1YnlSdW4ucnVieUJhc2UoKSB8fCAh
cnVieVJ1bi5ydWJ5QmFzZSgpLT5maXJzdFJvb3RCb3goKSB8fCBydWJ5UnVuLnJ1YnlCYXNlKCkt
PmZpcnN0Um9vdEJveCgpLT5uZXh0Um9vdEJveCgpIHx8ICFyLnJlbmRlcmVyKCkuc3R5bGUoKS5j
b2xsYXBzZVdoaXRlU3BhY2UoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTY4LDI2ICs1NjgsNDkg
QEAgc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZVJ1YnlGb3JKdXN0aWZpZWRUZXh0KFJlbmRlclJ1
YnlSdW4mIHJ1YnlSdW4sIEJpZGlSdW4mIHIKIAogICAgIGlmICh0b3RhbE9wcG9ydHVuaXRpZXNJ
blJ1bikgewogICAgICAgICBBU1NFUlQoIXJ1YnlSdW4uaGFzT3ZlcnJpZGVXaWR0aCgpKTsKLSAg
ICAgICAgcnVieVJ1bi5zZXRPdmVycmlkZUxvZ2ljYWxDb250ZW50V2lkdGgocnVieVJ1bi5sb2dp
Y2FsV2lkdGgoKSArIHRvdGFsRXhwYW5zaW9uKTsKLSAgICAgICAgcnVieVJ1bi5zZXROZWVkc0xh
eW91dChNYXJrT25seVRoaXMpOwotICAgICAgICBydWJ5UnVuLmxheW91dEJsb2NrKHRydWUpOwot
ICAgICAgICBydWJ5UnVuLmNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKCk7Ci0gICAg
ICAgIHIuYm94KCktPnNldEV4cGFuc2lvbih0b3RhbEV4cGFuc2lvbik7CisgICAgICAgIGZsb2F0
IG5ld0Jhc2VXaWR0aCA9IHJvb3RCb3gubG9naWNhbFdpZHRoKCkgKyB0b3RhbEV4cGFuc2lvbjsK
KyAgICAgICAgZmxvYXQgY3VycmVudEF2YWlsYWJsZUJhc2VTcGFjZSA9IHJ1YnlSdW4ubG9naWNh
bFdpZHRoKCkgKyBtYXJnaW5TdGFydEZvckNoaWxkKHJ1YnlSdW4pICsgbWFyZ2luRW5kRm9yQ2hp
bGQocnVieVJ1bik7CisgICAgICAgIGlmIChuZXdCYXNlV2lkdGggPiBjdXJyZW50QXZhaWxhYmxl
QmFzZVNwYWNlKSB7CisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGV4cGFuZCB0aGUgcnVieSBi
YXNlIHRvIGFjY29tbW9kYXRlIHRoZSBleHBhbnNpb24uCisgICAgICAgICAgICBmbG9hdCBuZXdS
dWJ5UnVuV2lkdGggPSBzdGQ6Om1heChuZXdCYXNlV2lkdGgsIHN0YXRpY19jYXN0PGZsb2F0Pihy
dWJ5UnVuLmxvZ2ljYWxXaWR0aCgpKSk7CisgICAgICAgICAgICBydWJ5QmFzZS5zZXRJbml0aWFs
T2Zmc2V0KChuZXdSdWJ5UnVuV2lkdGggLSBuZXdCYXNlV2lkdGgpIC8gMik7CisgICAgICAgICAg
ICBydWJ5UnVuLnNldE92ZXJyaWRlTG9naWNhbENvbnRlbnRXaWR0aChuZXdSdWJ5UnVuV2lkdGgp
OworICAgICAgICAgICAgcnVieVJ1bi5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAg
ICAgICAgICAgcm9vdEJveC5tYXJrRGlydHkoKTsKKyAgICAgICAgICAgIGlmIChSZW5kZXJSdWJ5
VGV4dCogcnVieVRleHQgPSBydWJ5UnVuLnJ1YnlUZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoUm9vdElubGluZUJveCogdGV4dFJvb3RCb3ggPSBydWJ5VGV4dC0+Zmlyc3RSb290Qm94KCkp
CisgICAgICAgICAgICAgICAgICAgIHRleHRSb290Qm94LT5tYXJrRGlydHkoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHJ1YnlSdW4ubGF5b3V0QmxvY2sodHJ1ZSk7CisgICAgICAgICAg
ICBydWJ5UnVuLmNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKCk7CisgICAgICAgICAg
ICAvLyBFeHBhbmRpbmcgdGhlIGJhc2UgbWlnaHQgbWVhbiB0aGVyZSdzIGxlc3Mgb2YgYSBuZWVk
IGZvciBvdmVyaGFuZworICAgICAgICAgICAgc2V0TWFyZ2luc0ZvclJ1YnlSdW4oJnIsIHJ1YnlS
dW4sIHByZXZpb3VzT2JqZWN0LCBsaW5lSW5mbyk7CisgICAgICAgICAgICBpZiAocnVieUJhc2Uu
bGFzdExlYWZDaGlsZCgpICYmIGlzPFJlbmRlclRleHQ+KHJ1YnlCYXNlLmxhc3RMZWFmQ2hpbGQo
KSkgJiYgci5ib3goKSAmJiByLmJveCgpLT5uZXh0TGVhZkNoaWxkKCkgJiYgIXIuYm94KCktPm5l
eHRMZWFmQ2hpbGQoKS0+aXNMaW5lQnJlYWsoKSkKKyAgICAgICAgICAgICAgICBkb3duY2FzdDxS
ZW5kZXJUZXh0PihydWJ5QmFzZS5sYXN0TGVhZkNoaWxkKCkpLT5zZXRDb250ZW50SXNLbm93blRv
Rm9sbG93KHRydWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIGV4cGFu
c2lvbiBmaXRzIGNvbWZvcnRhYmx5IGluc2lkZSB0aGUgZXhpc3RpbmcgYmFzZS4KKyAgICAgICAg
ICAgIC8vIFdlIHN0aWxsIG5lZWQgdG8gcmVsYXlvdXQsIHRob3VnaCwgYmVjYXVzZSBSZW5kZXJS
dWJ5QmFzZTo6YWRqdXN0SW5saW5lRGlyZWN0aW9uTGluZUJvdW5kcygpIGhhcyB0byBiZSBjYWxs
ZWQgd2l0aCB0aGUgbmV3CisgICAgICAgICAgICAvLyBleHBhbnNpb24gaW5mb3JtYXRpb24uIExJ
VEhFUlVNCisgICAgICAgIH0KIAogICAgICAgICB0b3RhbExvZ2ljYWxXaWR0aCArPSB0b3RhbEV4
cGFuc2lvbjsKICAgICAgICAgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCAtPSB0b3RhbE9wcG9y
dHVuaXRpZXNJblJ1bjsKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBjb21wdXRlRXhw
YW5zaW9uRm9ySnVzdGlmaWVkVGV4dChCaWRpUnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogdHJhaWxp
bmdTcGFjZVJ1biwgY29uc3QgVmVjdG9yPHVuc2lnbmVkLCAxNj4mIGV4cGFuc2lvbk9wcG9ydHVu
aXRpZXMsIHVuc2lnbmVkIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQsIGZsb2F0IHRvdGFsTG9n
aWNhbFdpZHRoLCBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGgpCit2b2lkIFJlbmRlckJsb2Nr
Rmxvdzo6Y29tcHV0ZUV4cGFuc2lvbkZvckp1c3RpZmllZFRleHQoQmlkaVJ1biogZmlyc3RSdW4s
IEJpZGlSdW4qIHRyYWlsaW5nU3BhY2VSdW4sIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZCwgMTY+JiBl
eHBhbnNpb25PcHBvcnR1bml0aWVzLCB1bnNpZ25lZCBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50
LCBmbG9hdCB0b3RhbExvZ2ljYWxXaWR0aCwgZmxvYXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBj
b25zdCBMaW5lSW5mbyYgbGluZUluZm8pCiB7CiAgICAgaWYgKCFleHBhbnNpb25PcHBvcnR1bml0
eUNvdW50IHx8IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCA8PSB0b3RhbExvZ2ljYWxXaWR0aCkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51bGxw
dHI7CisKICAgICBzaXplX3QgaSA9IDA7CiAgICAgZm9yIChCaWRpUnVuKiBydW4gPSBmaXJzdFJ1
bjsgcnVuOyBydW4gPSBydW4tPm5leHQoKSkgewotICAgICAgICBpZiAoIXJ1bi0+Ym94KCkgfHwg
cnVuID09IHRyYWlsaW5nU3BhY2VSdW4pCisgICAgICAgIGlmICghcnVuLT5ib3goKSB8fCBydW4g
PT0gdHJhaWxpbmdTcGFjZVJ1bikgeworICAgICAgICAgICAgcHJldmlvdXNPYmplY3QgPSAmcnVu
LT5yZW5kZXJlcigpOwogICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIGlmIChpczxSZW5kZXJUZXh0PihydW4tPnJlbmRlcmVyKCkpKSB7CiAgICAgICAg
ICAgICB1bnNpZ25lZCBvcHBvcnR1bml0aWVzSW5SdW4gPSBleHBhbnNpb25PcHBvcnR1bml0aWVz
W2krK107CkBAIC02MDMsNyArNjI2LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvbXB1dGVFeHBh
bnNpb25Gb3JKdXN0aWZpZWRUZXh0KEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKgogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCAtPSBvcHBvcnR1
bml0aWVzSW5SdW47CiAgICAgICAgIH0gZWxzZSBpZiAoaXM8UmVuZGVyUnVieVJ1bj4ocnVuLT5y
ZW5kZXJlcigpKSkKLSAgICAgICAgICAgIHVwZGF0ZVJ1YnlGb3JKdXN0aWZpZWRUZXh0KGRvd25j
YXN0PFJlbmRlclJ1YnlSdW4+KHJ1bi0+cmVuZGVyZXIoKSksICpydW4sIGV4cGFuc2lvbk9wcG9y
dHVuaXRpZXMsIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQsIHRvdGFsTG9naWNhbFdpZHRoLCBh
dmFpbGFibGVMb2dpY2FsV2lkdGgsIGkpOworICAgICAgICAgICAgdXBkYXRlUnVieUZvckp1c3Rp
ZmllZFRleHQoZG93bmNhc3Q8UmVuZGVyUnVieVJ1bj4ocnVuLT5yZW5kZXJlcigpKSwgKnJ1biwg
ZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCwgdG90YWxM
b2dpY2FsV2lkdGgsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgcHJldmlvdXNPYmplY3QsIGxpbmVJ
bmZvLCBpKTsKKworICAgICAgICBwcmV2aW91c09iamVjdCA9ICZydW4tPnJlbmRlcmVyKCk7CiAK
ICAgICAgICAgaWYgKCFleHBhbnNpb25PcHBvcnR1bml0eUNvdW50KQogICAgICAgICAgICAgYnJl
YWs7CkBAIC03MDQsNyArNzI5LDcgQEAgQmlkaVJ1biogUmVuZGVyQmxvY2tGbG93Ojpjb21wdXRl
SW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yU2VnbWVudChSb290SW5saW5lQm8KICAgICBib29s
IG5lZWRzV29yZFNwYWNpbmcgPSBmYWxzZTsKICAgICBmbG9hdCB0b3RhbExvZ2ljYWxXaWR0aCA9
IGxpbmVCb3gtPmdldEZsb3dTcGFjaW5nTG9naWNhbFdpZHRoKCk7CiAgICAgdW5zaWduZWQgZXhw
YW5zaW9uT3Bwb3J0dW5pdHlDb3VudCA9IDA7Ci0gICAgYm9vbCBpc0FmdGVyRXhwYW5zaW9uID0g
dHJ1ZTsKKyAgICBib29sIGlzQWZ0ZXJFeHBhbnNpb24gPSBpczxSZW5kZXJSdWJ5QmFzZT4oKnRo
aXMpID8gZG93bmNhc3Q8UmVuZGVyUnVieUJhc2U+KCp0aGlzKS5pc0FmdGVyRXhwYW5zaW9uKCkg
OiB0cnVlOwogICAgIFZlY3Rvcjx1bnNpZ25lZCwgMTY+IGV4cGFuc2lvbk9wcG9ydHVuaXRpZXM7
CiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51bGxwdHI7CiAKQEAgLTcxNyw3
ICs3NDIsNyBAQCBCaWRpUnVuKiBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVEaXJlY3Rp
b25Qb3NpdGlvbnNGb3JTZWdtZW50KFJvb3RJbmxpbmVCbwogICAgICAgICB9CiAgICAgICAgIGlm
IChpczxSZW5kZXJUZXh0PihydW4tPnJlbmRlcmVyKCkpKSB7CiAgICAgICAgICAgICBhdXRvJiBy
ZW5kZXJUZXh0ID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4ocnVuLT5yZW5kZXJlcigpKTsKLSAgICAg
ICAgICAgIGlmICh0ZXh0QWxpZ24gPT0gSlVTVElGWSAmJiBydW4gIT0gdHJhaWxpbmdTcGFjZVJ1
bikgeworICAgICAgICAgICAgaWYgKHRleHRBbGlnbiA9PSBKVVNUSUZZICYmIHJ1biAhPSB0cmFp
bGluZ1NwYWNlUnVuICYmICghaXM8UmVuZGVyUnVieUJhc2U+KCp0aGlzKSB8fCBkb3duY2FzdDxS
ZW5kZXJSdWJ5QmFzZT4oKnRoaXMpLmlzSW5zaWRlTGluZSgpKSkgewogICAgICAgICAgICAgICAg
IGlmICghaXNBZnRlckV4cGFuc2lvbikKICAgICAgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW5s
aW5lVGV4dEJveD4oKnJ1bi0+Ym94KCkpLnNldENhbkhhdmVMZWFkaW5nRXhwYW5zaW9uKHRydWUp
OwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9wcG9ydHVuaXRpZXNJblJ1biA9IEZvbnQ6OmV4
cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQocmVuZGVyVGV4dC5zdHJpbmdWaWV3KHJ1bi0+bV9zdGFy
dCwgcnVuLT5tX3N0b3ApLCBydW4tPmJveCgpLT5kaXJlY3Rpb24oKSwgaXNBZnRlckV4cGFuc2lv
bik7CkBAIC03MzQsOSArNzU5LDExIEBAIEJpZGlSdW4qIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0
ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvclNlZ21lbnQoUm9vdElubGluZUJvCiAgICAgICAg
ICAgICBzZXRMb2dpY2FsV2lkdGhGb3JUZXh0UnVuKGxpbmVCb3gsIHJ1biwgJnJlbmRlclRleHQs
IHRvdGFsTG9naWNhbFdpZHRoLCBsaW5lSW5mbywgdGV4dEJveERhdGFNYXAsIHZlcnRpY2FsUG9z
aXRpb25DYWNoZSwgd29yZE1lYXN1cmVtZW50cyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBib29sIGVuY291bnRlcmVkSnVzdGlmaWVkUnVieSA9IGZhbHNlOwotICAgICAgICAgICAg
aWYgKGlzPFJlbmRlclJ1YnlSdW4+KHJ1bi0+cmVuZGVyZXIoKSkgJiYgdGV4dEFsaWduID09IEpV
U1RJRlkgJiYgcnVuICE9IHRyYWlsaW5nU3BhY2VSdW4gJiYgZG93bmNhc3Q8UmVuZGVyUnVieVJ1
bj4ocnVuLT5yZW5kZXJlcigpKS5ydWJ5QmFzZSgpKSB7CisgICAgICAgICAgICBpZiAoaXM8UmVu
ZGVyUnVieVJ1bj4ocnVuLT5yZW5kZXJlcigpKSAmJiB0ZXh0QWxpZ24gPT0gSlVTVElGWSAmJiBy
dW4gIT0gdHJhaWxpbmdTcGFjZVJ1biAmJiBkb3duY2FzdDxSZW5kZXJSdWJ5UnVuPihydW4tPnJl
bmRlcmVyKCkpLnJ1YnlCYXNlKCkgJiYgKCFpczxSZW5kZXJSdWJ5QmFzZT4oKnRoaXMpIHx8IGRv
d25jYXN0PFJlbmRlclJ1YnlCYXNlPigqdGhpcykuaXNJbnNpZGVMaW5lKCkpKSB7CiAgICAgICAg
ICAgICAgICAgYXV0byogcnVieUJhc2UgPSBkb3duY2FzdDxSZW5kZXJSdWJ5UnVuPihydW4tPnJl
bmRlcmVyKCkpLnJ1YnlCYXNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHJ1YnlCYXNlLT5maXJz
dFJvb3RCb3goKSAmJiAhcnVieUJhc2UtPmZpcnN0Um9vdEJveCgpLT5uZXh0Um9vdEJveCgpICYm
IHJ1bi0+cmVuZGVyZXIoKS5zdHlsZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgpKSB7CisgICAgICAg
ICAgICAgICAgICAgIHJ1YnlCYXNlLT5zZXRJc0luc2lkZUxpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgcnVieUJhc2UtPnNldElzQWZ0ZXJFeHBhbnNpb24oaXNBZnRlckV4cGFuc2lvbik7CiAg
ICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byogbGVhZkNoaWxkID0gcnVieUJhc2UtPmZpcnN0
Um9vdEJveCgpLT5maXJzdExlYWZDaGlsZCgpOyBsZWFmQ2hpbGQ7IGxlYWZDaGlsZCA9IGxlYWZD
aGlsZC0+bmV4dExlYWZDaGlsZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlz
PElubGluZVRleHRCb3g+KCpsZWFmQ2hpbGQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwpAQCAtNzY3LDE0ICs3OTQsMTQgQEAgQmlkaVJ1biogUmVuZGVyQmxvY2tGbG93
Ojpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yU2VnbWVudChSb290SW5saW5lQm8K
ICAgICAgICAgcHJldmlvdXNPYmplY3QgPSAmcnVuLT5yZW5kZXJlcigpOwogICAgIH0KIAotICAg
IGlmIChpc0FmdGVyRXhwYW5zaW9uICYmICFleHBhbnNpb25PcHBvcnR1bml0aWVzLmlzRW1wdHko
KSkgeworICAgIGlmIChpc0FmdGVyRXhwYW5zaW9uICYmICFleHBhbnNpb25PcHBvcnR1bml0aWVz
LmlzRW1wdHkoKSAmJiAoIWlzPFJlbmRlclJ1YnlCYXNlPigqdGhpcykgfHwgIWRvd25jYXN0PFJl
bmRlclJ1YnlCYXNlPigqdGhpcykuaXNJbnNpZGVMaW5lKCkpKSB7CiAgICAgICAgIGV4cGFuc2lv
bk9wcG9ydHVuaXRpZXMubGFzdCgpLS07CiAgICAgICAgIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291
bnQtLTsKICAgICB9CiAKICAgICB1cGRhdGVMb2dpY2FsV2lkdGhGb3JBbGlnbm1lbnQodGV4dEFs
aWduLCBsaW5lQm94LCB0cmFpbGluZ1NwYWNlUnVuLCBsb2dpY2FsTGVmdCwgdG90YWxMb2dpY2Fs
V2lkdGgsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCk7
CiAKLSAgICBjb21wdXRlRXhwYW5zaW9uRm9ySnVzdGlmaWVkVGV4dChmaXJzdFJ1biwgdHJhaWxp
bmdTcGFjZVJ1biwgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywgZXhwYW5zaW9uT3Bwb3J0dW5pdHlD
b3VudCwgdG90YWxMb2dpY2FsV2lkdGgsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCk7CisgICAgY29t
cHV0ZUV4cGFuc2lvbkZvckp1c3RpZmllZFRleHQoZmlyc3RSdW4sIHRyYWlsaW5nU3BhY2VSdW4s
IGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMsIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQsIHRvdGFs
TG9naWNhbFdpZHRoLCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGxpbmVJbmZvKTsKIAogICAgIHJl
dHVybiBydW47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UnVieUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNw
cAppbmRleCAzMTMyOTk4NTZkMWNlNmEzOGYxYmRhMTcxNGNiZjZlMjA0NzAzMzc0Li41MDA4OTY1
MTg1YjBhNTJmZTVkMTkxYWIzNGM0ZTM0NGNkOGJjMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKQEAgLTM4LDYgKzM4LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogUmVuZGVyUnVieUJhc2U6OlJlbmRlclJ1YnlCYXNlKERvY3VtZW50JiBkb2N1
bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiAgICAgOiBSZW5kZXJCbG9ja0Zsb3co
ZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCisgICAgLCBtX2luaXRpYWxPZmZzZXQoMCkKKyAg
ICAsIG1fc2V0SW5pdGlhbE9mZnNldChmYWxzZSkKKyAgICAsIG1faXNBZnRlckV4cGFuc2lvbih0
cnVlKQorICAgICwgbV9pc0luc2lkZUxpbmUoZmFsc2UpCiB7CiAgICAgc2V0SW5saW5lKGZhbHNl
KTsKIH0KQEAgLTE0MSw2ICsxNDUsMTIgQEAgRVRleHRBbGlnbiBSZW5kZXJSdWJ5QmFzZTo6dGV4
dEFsaWdubWVudEZvckxpbmUoYm9vbCAvKiBlbmRzV2l0aFNvZnRCcmVhayAqLykgY28KIAogdm9p
ZCBSZW5kZXJSdWJ5QmFzZTo6YWRqdXN0SW5saW5lRGlyZWN0aW9uTGluZUJvdW5kcyhpbnQgZXhw
YW5zaW9uT3Bwb3J0dW5pdHlDb3VudCwgZmxvYXQmIGxvZ2ljYWxMZWZ0LCBmbG9hdCYgbG9naWNh
bFdpZHRoKSBjb25zdAogeworICAgIGlmIChtX3NldEluaXRpYWxPZmZzZXQpIHsKKyAgICAgICAg
bG9naWNhbExlZnQgKz0gbV9pbml0aWFsT2Zmc2V0OworICAgICAgICBsb2dpY2FsV2lkdGggLT0g
MiAqIG1faW5pdGlhbE9mZnNldDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIExheW91
dFVuaXQgbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gcnVieVJ1bigpICYmIHJ1YnlSdW4oKS0+
aGFzT3ZlcnJpZGVXaWR0aCgpID8gcnVieVJ1bigpLT5vdmVycmlkZUxvZ2ljYWxDb250ZW50V2lk
dGgoKSA6IHRoaXMtPm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpOwogICAgIGlmIChtYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGggPj0gbG9naWNhbFdpZHRoKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oCmluZGV4IGZiNzViNjNjYjJmMzIz
M2ZjZGJkNGFmZWI1NmJlOGQ0NWVkNGExMTMuLmVlMjdiNTc1MTA2MTY5MWU5ZGMxMjBmMTY1MTUy
MzM5ZDM4YzNhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
dWJ5QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5o
CkBAIC00Niw2ICs0NiwyNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgUmVuZGVyUnVieVJ1biogcnVi
eVJ1bigpIGNvbnN0OwogCisgICAgdm9pZCBzZXRJc0FmdGVyRXhwYW5zaW9uKGJvb2wgaXNBZnRl
ckV4cGFuc2lvbikgeyBtX2lzQWZ0ZXJFeHBhbnNpb24gPSBpc0FmdGVyRXhwYW5zaW9uOyB9Cisg
ICAgYm9vbCBpc0FmdGVyRXhwYW5zaW9uKCkgeyByZXR1cm4gbV9pc0FmdGVyRXhwYW5zaW9uOyB9
CisKKyAgICB2b2lkIHNldElzSW5zaWRlTGluZSgpIHsgbV9pc0luc2lkZUxpbmUgPSB0cnVlOyB9
CisgICAgYm9vbCBpc0luc2lkZUxpbmUoKSB7IHJldHVybiBtX2lzSW5zaWRlTGluZTsgfQorCisg
ICAgdm9pZCBzZXRJbml0aWFsT2Zmc2V0KGZsb2F0IGluaXRpYWxPZmZzZXQpCisgICAgeworICAg
ICAgICBtX3NldEluaXRpYWxPZmZzZXQgPSB0cnVlOworICAgICAgICBtX2luaXRpYWxPZmZzZXQg
PSBpbml0aWFsT2Zmc2V0OworICAgIH0KKworICAgIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAg
ICAgbV9pbml0aWFsT2Zmc2V0ID0gMDsKKyAgICAgICAgbV9zZXRJbml0aWFsT2Zmc2V0ID0gZmFs
c2U7CisgICAgICAgIG1faXNBZnRlckV4cGFuc2lvbiA9IHRydWU7CisgICAgICAgIG1faXNJbnNp
ZGVMaW5lID0gZmFsc2U7CisgICAgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1J1
YnlCYXNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc0NoaWxkQWxsb3dlZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBSZW5kZXJTdHlsZSYp
IGNvbnN0IG92ZXJyaWRlOwpAQCAtNTksNiArNzksMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIEFs
bG93IFJlbmRlclJ1YnlSdW4gdG8gbWFuaXB1bGF0ZSB0aGUgY2hpbGRyZW4gd2l0aGluIHJ1Ynkg
YmFzZXMuCiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlclJ1YnlSdW47CisKKyAgICBmbG9hdCBtX2lu
aXRpYWxPZmZzZXQ7CisgICAgdW5zaWduZWQgbV9zZXRJbml0aWFsT2Zmc2V0IDogMTsKKyAgICB1
bnNpZ25lZCBtX2lzQWZ0ZXJFeHBhbnNpb24gOiAxOworICAgIHVuc2lnbmVkIG1faXNJbnNpZGVM
aW5lIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcAppbmRleCAyNWQ5MDBjNzRlOWEzYTI3NzM0MWExZTQ2
OGE1Mzc0ZmNjZWUwNjBlLi4zZGJkODkwNmFmNWY1MzBiYzE4MGM4NGU2Zjg2ZTdmNGUzNWQxZGRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCkBAIC0yMzAs
NiArMjMwLDkgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJSdWJ5UnVuOjpsYXlvdXRTcGVjaWFsRXhj
bHVkZWRDaGlsZChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAKIHZvaWQgUmVuZGVyUnVieVJ1bjo6
bGF5b3V0KCkKIHsKKyAgICBpZiAoUmVuZGVyUnVieUJhc2UqIGJhc2UgPSBydWJ5QmFzZSgpKQor
ICAgICAgICBiYXNlLT5yZXNldCgpOworCiAgICAgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXQoKTsK
ICAgICAKICAgICBSZW5kZXJSdWJ5VGV4dCogcnQgPSBydWJ5VGV4dCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDQwNDg0N2IyZmRmZjcwZThkNDJjYmM5ZmNh
ZDJhZjAwZTYxN2QwNjUuLjBiMjNiZjQxZGE5OTAxNmUwMDZiOGZlOTQ5ZWIyOWIyN2JkNGNlYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTE2NCw2ICsxNjQs
NyBAQCBpbmxpbmUgUmVuZGVyVGV4dDo6UmVuZGVyVGV4dChOb2RlJiBub2RlLCBjb25zdCBTdHJp
bmcmIHRleHQpCiAgICAgLCBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250
cyhmYWxzZSkKICAgICAsIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2woZmFsc2UpCiAgICAgLCBt
X29yaWdpbmFsVGV4dERpZmZlcnNGcm9tUmVuZGVyZWQoZmFsc2UpCisgICAgLCBtX2NvbnRlbnRJ
c0tub3duVG9Gb2xsb3coZmFsc2UpCiAjaWYgRU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCiAg
ICAgLCBtX2NhbmRpZGF0ZUNvbXB1dGVkVGV4dFNpemUoMCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmgKaW5kZXggZmZlZjkzZDA2NWE5ZjRhZDBkNjVlMjg5YmMwNTQ3
ODE4MTdhOTcyYi4uMDRjN2QyNTZmYWNkZGU0NjIwMTE2NGE3YjQzYzk1ZWIyOWU4YWEyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCkBAIC0xNjYsNiArMTY2LDkgQEAgcHVi
bGljOgogCiAgICAgTGF5b3V0VW5pdCB0b3BPZkZpcnN0VGV4dCgpIGNvbnN0OwogCisgICAgYm9v
bCBjb250ZW50SXNLbm93blRvRm9sbG93KCkgeyByZXR1cm4gbV9jb250ZW50SXNLbm93blRvRm9s
bG93OyB9CisgICAgdm9pZCBzZXRDb250ZW50SXNLbm93blRvRm9sbG93KGJvb2wgY29udGVudElz
S25vd25Ub0ZvbGxvdykgeyBtX2NvbnRlbnRJc0tub3duVG9Gb2xsb3cgPSBjb250ZW50SXNLbm93
blRvRm9sbG93OyB9CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoZmxvYXQgbGVhZFdpZHRoKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CkBAIC0yMTYsNiArMjE5LDcgQEAgcHJpdmF0ZToKICAg
ICBtdXRhYmxlIGJvb2wgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMg
OiAxOwogICAgIGJvb2wgbV91c2VCYWNrc2xhc2hBc1llblN5bWJvbCA6IDE7CiAgICAgYm9vbCBt
X29yaWdpbmFsVGV4dERpZmZlcnNGcm9tUmVuZGVyZWQgOiAxOworICAgIGJvb2wgbV9jb250ZW50
SXNLbm93blRvRm9sbG93IDogMTsKIAogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQog
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBwYXJ0IG9mIHRoZSB0ZXh0IHNp
emluZyBzdHJ1Y3R1cmVzIGluIERvY3VtZW50IGluc3RlYWQuIFRoYXQgd291bGQgc2F2ZSBzb21l
IG1lbW9yeS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243340</attachid>
            <date>2014-12-15 20:21:40 -0800</date>
            <delta_ts>2014-12-15 21:48:38 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-139618-20141215202228.patch</filename>
            <type>text/plain</type>
            <size>22878</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyYzVhYmU0ODlhOWFi
Y2IwOGMyZmNiYTk5NDQxZTc4MTNhY2VmNS4uYWY0ZDA0Y2MzOTljZDFiMTFhNTAzMmE1YTZiZTBm
MzMwOTVjN2E5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE0LTEyLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgUnVieSBkb2Vz
IG5vdCBwcmVzZXJ2ZSBleHBhbnNpb24gb3Bwb3J0dW5pdGllcyBmcm9tIGVuY2xvc2luZyBjb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3Jr
IGluIHByb2dyZXNzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JTZWdtZW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUnVieUJhc2U6OlJlbmRlclJ1YnlCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clJ1YnlCYXNlOjphZGp1c3RJbmxpbmVEaXJlY3Rpb25MaW5lQm91bmRzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVi
eVJ1bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5UnVuOjpsYXlvdXQpOgorCisy
MDE0LTEyLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKICAg
ICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjE3NzMwMQogCiAgICAgICAgICogaHRt
bC9Db2xvcklucHV0VHlwZS5jcHA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmgKaW5k
ZXggN2I3YmUzOGU3NGMwOTY3OGJkZWUyOTU5ZjU0OTVkNzYwNzU3NjI5NC4uMWY3MzY5YjI3OTA4
ZmI0OWU3NTk1YmQzMWRlOGZhNzhlNjI0NmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVCb3guaApAQCAtMjc3LDYgKzI3NywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZXhwYW5zaW9u
ID0gbmV3RXhwYW5zaW9uOwogICAgICAgICBtX2xvZ2ljYWxXaWR0aCArPSBtX2V4cGFuc2lvbjsK
ICAgICB9CisgICAgdm9pZCBzZXRFeHBhbnNpb25XaXRob3V0R3Jvd2luZyhmbG9hdCBuZXdFeHBh
bnNpb24pCisgICAgeworICAgICAgICBBU1NFUlQoIW1fZXhwYW5zaW9uKTsKKyAgICAgICAgbV9l
eHBhbnNpb24gPSBuZXdFeHBhbnNpb247CisgICAgfQorICAgIGZsb2F0IGV4cGFuc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9CiAKIHByaXZhdGU6CiAgICAgSW5saW5lQm94KiBt
X25leHQ7IC8vIFRoZSBuZXh0IGVsZW1lbnQgb24gdGhlIHNhbWUgbGluZSBhcyB1cy4KQEAgLTQw
OCw3ICs0MTQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRIYXNIeXBoZW4oYm9vbCBoYXNI
eXBoZW4pIHsgbV9iaXRmaWVsZHMuc2V0SGFzRWxsaXBzaXNCb3hPckh5cGhlbihoYXNIeXBoZW4p
OyB9ICAgIAogICAgIGJvb2wgY2FuSGF2ZUxlYWRpbmdFeHBhbnNpb24oKSBjb25zdCB7IHJldHVy
biBtX2JpdGZpZWxkcy5oYXNTZWxlY3RlZENoaWxkcmVuT3JDYW5IYXZlTGVhZGluZ0V4cGFuc2lv
bigpOyB9CiAgICAgdm9pZCBzZXRDYW5IYXZlTGVhZGluZ0V4cGFuc2lvbihib29sIGNhbkhhdmVM
ZWFkaW5nRXhwYW5zaW9uKSB7IG1fYml0ZmllbGRzLnNldEhhc1NlbGVjdGVkQ2hpbGRyZW5PckNh
bkhhdmVMZWFkaW5nRXhwYW5zaW9uKGNhbkhhdmVMZWFkaW5nRXhwYW5zaW9uKTsgfQotICAgIGZs
b2F0IGV4cGFuc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9CiAgICAgCiAgICAg
Ly8gRm9yIElubGluZUZsb3dCb3ggYW5kIElubGluZVRleHRCb3gKICAgICBib29sIGV4dHJhY3Rl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmV4dHJhY3RlZCgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKaW5kZXggNDA2MTYxMzUwYjcyNjRmMTRm
NTk0YWMxODYyZWM5MDRkNjk3NjI5MS4uODI1NDE0YTViNDBkYjczM2MxNWUzNmQxODliZDc2YjYy
YmJmZWQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcApA
QCAtMTc5LDYgKzE3OSwxNCBAQCB2b2lkIElubGluZUZsb3dCb3g6OnJlbW92ZUNoaWxkKElubGlu
ZUJveCogY2hpbGQpCiAgICAgaWYgKCFpc0RpcnR5KCkpCiAgICAgICAgIGRpcnR5TGluZUJveGVz
KCk7CiAKKyAgICBpZiAoY2hpbGQtPnByZXZMZWFmQ2hpbGQoKSAmJiBpczxJbmxpbmVUZXh0Qm94
PihjaGlsZC0+cHJldkxlYWZDaGlsZCgpKSkgeworICAgICAgICBpZiAoaXM8SW5saW5lVGV4dEJv
eD4oY2hpbGQpKQorICAgICAgICAgICAgZG93bmNhc3Q8SW5saW5lVGV4dEJveD4oY2hpbGQtPnBy
ZXZMZWFmQ2hpbGQoKSktPnJlbmRlcmVyKCkuc2V0Q29udGVudElzS25vd25Ub0ZvbGxvdyhkb3du
Y2FzdDxJbmxpbmVUZXh0Qm94PihjaGlsZCktPnJlbmRlcmVyKCkuY29udGVudElzS25vd25Ub0Zv
bGxvdygpKTsKKyAgICAgICAgLy8gRklYTUU6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSByZW1v
dmUgdGhlIGxhc3QgaW5saW5lIGJveCwgYW5kIGl0J3Mgbm90IGEgdGV4dCBib3guIElmIHdlJ3Jl
IHRyeWluZyB0byBzaGFyZQorICAgICAgICAvLyBleHBhbnNpb24gb3Bwb3J0dW5pdGVzIGJvdGgg
aW5zaWRlIGFuZCBvdXRzaWRlIGEgcmVwbGFjZWQgZWxlbWVudCAoc3VjaCBhcyBmb3IgcnVieSBi
YXNlcyksIHdlIG5lZWQgdG8gc2VhcmNoCisgICAgICAgIC8vIG91dHNpZGUgdGhlIGN1cnJlbnQg
aW5saW5lIGJveCB0cmVlIHRvIGRldGVybWluZSBpZiB0aGVyZSBpcyBjb250ZW50IHRoYXQgZm9s
bG93cyB0aGUgbmV3IGxhc3QgaW5saW5lIGl0ZW0uCisgICAgfQorCiAgICAgcm9vdCgpLmNoaWxk
UmVtb3ZlZChjaGlsZCk7CiAKICAgICBpZiAoY2hpbGQgPT0gbV9maXJzdENoaWxkKQpAQCAtMzcz
LDYgKzM4MSw3IEBAIGZsb2F0IElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbklubGluZURpcmVj
dGlvbihmbG9hdCBsb2dpY2FsTGVmdCwgYm9vbCYgbmVlZHNXCiAKIGZsb2F0IElubGluZUZsb3dC
b3g6OnBsYWNlQm94UmFuZ2VJbklubGluZURpcmVjdGlvbihJbmxpbmVCb3gqIGZpcnN0Q2hpbGQs
IElubGluZUJveCogbGFzdENoaWxkLCBmbG9hdCYgbG9naWNhbExlZnQsIGZsb2F0JiBtaW5Mb2dp
Y2FsTGVmdCwgZmxvYXQmIG1heExvZ2ljYWxSaWdodCwgYm9vbCYgbmVlZHNXb3JkU3BhY2luZykK
IHsKKyAgICBmbG9hdCB0b3RhbEV4cGFuc2lvbiA9IDA7CiAgICAgZm9yIChJbmxpbmVCb3gqIGNo
aWxkID0gZmlyc3RDaGlsZDsgY2hpbGQgJiYgY2hpbGQgIT0gbGFzdENoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0T25MaW5lKCkpIHsKICAgICAgICAgaWYgKGlzPFJlbmRlclRleHQ+KGNoaWxkLT5y
ZW5kZXJlcigpKSkgewogICAgICAgICAgICAgYXV0byYgdGV4dEJveCA9IGRvd25jYXN0PElubGlu
ZVRleHRCb3g+KCpjaGlsZCk7CkBAIC0zODYsNiArMzk1LDcgQEAgZmxvYXQgSW5saW5lRmxvd0Jv
eDo6cGxhY2VCb3hSYW5nZUluSW5saW5lRGlyZWN0aW9uKElubGluZUJveCogZmlyc3RDaGlsZCwg
SW5saW4KICAgICAgICAgICAgIGlmIChrbm93blRvSGF2ZU5vT3ZlcmZsb3coKSkKICAgICAgICAg
ICAgICAgICBtaW5Mb2dpY2FsTGVmdCA9IHN0ZDo6bWluKGxvZ2ljYWxMZWZ0LCBtaW5Mb2dpY2Fs
TGVmdCk7CiAgICAgICAgICAgICBsb2dpY2FsTGVmdCArPSB0ZXh0Qm94LmxvZ2ljYWxXaWR0aCgp
OworICAgICAgICAgICAgdG90YWxFeHBhbnNpb24gKz0gdGV4dEJveC5leHBhbnNpb24oKTsKICAg
ICAgICAgICAgIGlmIChrbm93blRvSGF2ZU5vT3ZlcmZsb3coKSkKICAgICAgICAgICAgICAgICBt
YXhMb2dpY2FsUmlnaHQgPSBzdGQ6Om1heChsb2dpY2FsTGVmdCwgbWF4TG9naWNhbFJpZ2h0KTsK
ICAgICAgICAgfSBlbHNlIHsKQEAgLTQwNSw2ICs0MTUsNyBAQCBmbG9hdCBJbmxpbmVGbG93Qm94
OjpwbGFjZUJveFJhbmdlSW5JbmxpbmVEaXJlY3Rpb24oSW5saW5lQm94KiBmaXJzdENoaWxkLCBJ
bmxpbgogICAgICAgICAgICAgICAgIGlmIChrbm93blRvSGF2ZU5vT3ZlcmZsb3coKSkKICAgICAg
ICAgICAgICAgICAgICAgbWluTG9naWNhbExlZnQgPSBzdGQ6Om1pbihsb2dpY2FsTGVmdCwgbWlu
TG9naWNhbExlZnQpOwogICAgICAgICAgICAgICAgIGxvZ2ljYWxMZWZ0ID0gZmxvdy5wbGFjZUJv
eGVzSW5JbmxpbmVEaXJlY3Rpb24obG9naWNhbExlZnQsIG5lZWRzV29yZFNwYWNpbmcpOworICAg
ICAgICAgICAgICAgIHRvdGFsRXhwYW5zaW9uICs9IGZsb3cuZXhwYW5zaW9uKCk7CiAgICAgICAg
ICAgICAgICAgaWYgKGtub3duVG9IYXZlTm9PdmVyZmxvdygpKQogICAgICAgICAgICAgICAgICAg
ICBtYXhMb2dpY2FsUmlnaHQgPSBzdGQ6Om1heChsb2dpY2FsTGVmdCwgbWF4TG9naWNhbFJpZ2h0
KTsKICAgICAgICAgICAgICAgICBsb2dpY2FsTGVmdCArPSBmbG93Lm1hcmdpbkxvZ2ljYWxSaWdo
dCgpOwpAQCAtNDI3LDYgKzQzOCw3IEBAIGZsb2F0IElubGluZUZsb3dCb3g6OnBsYWNlQm94UmFu
Z2VJbklubGluZURpcmVjdGlvbihJbmxpbmVCb3gqIGZpcnN0Q2hpbGQsIElubGluCiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CisgICAgc2V0RXhwYW5zaW9uV2l0aG91dEdyb3dpbmco
dG90YWxFeHBhbnNpb24pOwogICAgIHJldHVybiBsb2dpY2FsTGVmdDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKaW5kZXggOGU2MjIyNmVlYzk0NDljOTJjOWVk
MmNmOGQ1N2JlM2NhNmQ1ZWE4Yy4uZmNmMGFlNzE4NmUxZWMzOTRjMTRlNjdhY2ViZGNiMGQzMWRj
NTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCkBAIC0xNjMs
NyArMTYzLDcgQEAgcHJpdmF0ZToKICAgICBUZXh0UnVuOjpFeHBhbnNpb25CZWhhdmlvciBleHBh
bnNpb25CZWhhdmlvcigpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gKGNhbkhhdmVMZWFk
aW5nRXhwYW5zaW9uKCkgPyBUZXh0UnVuOjpBbGxvd0xlYWRpbmdFeHBhbnNpb24gOiBUZXh0UnVu
OjpGb3JiaWRMZWFkaW5nRXhwYW5zaW9uKQotICAgICAgICAgICAgfCAoZXhwYW5zaW9uKCkgJiYg
bmV4dExlYWZDaGlsZCgpICYmICFuZXh0TGVhZkNoaWxkKCktPmlzTGluZUJyZWFrKCkgPyBUZXh0
UnVuOjpBbGxvd1RyYWlsaW5nRXhwYW5zaW9uIDogVGV4dFJ1bjo6Rm9yYmlkVHJhaWxpbmdFeHBh
bnNpb24pOworICAgICAgICAgICAgfCAocmVuZGVyZXIoKS5jb250ZW50SXNLbm93blRvRm9sbG93
KCkgfHwgKGV4cGFuc2lvbigpICYmIG5leHRMZWFmQ2hpbGQoKSAmJiAhbmV4dExlYWZDaGlsZCgp
LT5pc0xpbmVCcmVhaygpKSA/IFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24gOiBUZXh0
UnVuOjpGb3JiaWRUcmFpbGluZ0V4cGFuc2lvbik7CiAgICAgfQogCiAgICAgdm9pZCBiZWhhdmVz
TGlrZVRleHQoKSBjb25zdCA9IGRlbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuaAppbmRleCBjNDA1MjUzMjQ4ZjliOWFkZGZkMTllYmNjYzVmNTcyYzM5MzRm
ZDgxLi4xOTc2NWUwMTUzMTAxYTBmNzE5MTIyYTQ5NDA1OTgwMzE1ZGZlZTk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCkBAIC01NDksNiArNTQ5LDggQEAg
cHJpdmF0ZToKICAgICBSb290SW5saW5lQm94KiBjb25zdHJ1Y3RMaW5lKEJpZGlSdW5MaXN0PEJp
ZGlSdW4+JiwgY29uc3QgTGluZUluZm8mKTsKICAgICB2b2lkIHNldE1hcmdpbnNGb3JSdWJ5UnVu
KEJpZGlSdW4qLCBSZW5kZXJSdWJ5UnVuJiwgUmVuZGVyT2JqZWN0KiwgY29uc3QgTGluZUluZm8m
KTsKICAgICB2b2lkIGNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJ
bmxpbmVCb3gqLCBjb25zdCBMaW5lSW5mbyYsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiB0
cmFpbGluZ1NwYWNlUnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFj
a0ZvbnRzTWFwJiwgVmVydGljYWxQb3NpdGlvbkNhY2hlJiwgV29yZE1lYXN1cmVtZW50cyYpOwor
ICAgIHZvaWQgdXBkYXRlUnVieUZvckp1c3RpZmllZFRleHQoUmVuZGVyUnVieVJ1biYsIEJpZGlS
dW4mLCBjb25zdCBWZWN0b3I8dW5zaWduZWQsIDE2PiYgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywg
dW5zaWduZWQmIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQsIGZsb2F0JiB0b3RhbExvZ2ljYWxX
aWR0aCwgZmxvYXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBSZW5kZXJPYmplY3QqIHByZXZpb3Vz
T2JqZWN0LCBjb25zdCBMaW5lSW5mbyYsIHNpemVfdCYgZXhwYW5zaW9uSW5kZXgpOworICAgIHZv
aWQgY29tcHV0ZUV4cGFuc2lvbkZvckp1c3RpZmllZFRleHQoQmlkaVJ1biogZmlyc3RSdW4sIEJp
ZGlSdW4qIHRyYWlsaW5nU3BhY2VSdW4sIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZCwgMTY+JiBleHBh
bnNpb25PcHBvcnR1bml0aWVzLCB1bnNpZ25lZCBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50LCBm
bG9hdCB0b3RhbExvZ2ljYWxXaWR0aCwgZmxvYXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBjb25z
dCBMaW5lSW5mbyYpOwogICAgIEJpZGlSdW4qIGNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlv
bnNGb3JTZWdtZW50KFJvb3RJbmxpbmVCb3gqLCBjb25zdCBMaW5lSW5mbyYsIEVUZXh0QWxpZ24s
IGZsb2F0JiBsb2dpY2FsTGVmdCwKICAgICAgICAgZmxvYXQmIGF2YWlsYWJsZUxvZ2ljYWxXaWR0
aCwgQmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4qIHRyYWlsaW5nU3BhY2VSdW4sIEdseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiB0ZXh0Qm94RGF0YU1hcCwgVmVydGljYWxQb3NpdGlv
bkNhY2hlJiwgV29yZE1lYXN1cmVtZW50cyYpOwogICAgIHZvaWQgY29tcHV0ZUJsb2NrRGlyZWN0
aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5lQm94KiwgQmlkaVJ1biosIEdseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwJiwgVmVydGljYWxQb3NpdGlvbkNhY2hlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4
IGZjMmE5ZGQzNjU4ZGEyYTc3ODk0MmI1ZGRlMzM2ZWI3NzRhOWEwZWQuLjExYjY0YjU1YzcyNWFh
MDgyYTJmNjQyZWUyMTI5M2NjODRiNmNlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC01NDUsNyArNTQ1LDcgQEAgc3Rh
dGljIGlubGluZSB2b2lkIHNldExvZ2ljYWxXaWR0aEZvclRleHRSdW4oUm9vdElubGluZUJveCog
bGluZUJveCwgQmlkaVJ1biogcnUKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCB1cGRh
dGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dChSZW5kZXJSdWJ5UnVuJiBydWJ5UnVuLCBCaWRpUnVuJiBy
LCBjb25zdCBWZWN0b3I8dW5zaWduZWQsIDE2PiYgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywgdW5z
aWduZWQmIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQsIGZsb2F0JiB0b3RhbExvZ2ljYWxXaWR0
aCwgZmxvYXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBzaXplX3QmIGkpCit2b2lkIFJlbmRlckJs
b2NrRmxvdzo6dXBkYXRlUnVieUZvckp1c3RpZmllZFRleHQoUmVuZGVyUnVieVJ1biYgcnVieVJ1
biwgQmlkaVJ1biYgciwgY29uc3QgVmVjdG9yPHVuc2lnbmVkLCAxNj4mIGV4cGFuc2lvbk9wcG9y
dHVuaXRpZXMsIHVuc2lnbmVkJiBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50LCBmbG9hdCYgdG90
YWxMb2dpY2FsV2lkdGgsIGZsb2F0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgUmVuZGVyT2JqZWN0
KiBwcmV2aW91c09iamVjdCwgY29uc3QgTGluZUluZm8mIGxpbmVJbmZvLCBzaXplX3QmIGkpCiB7
CiAgICAgaWYgKCFydWJ5UnVuLnJ1YnlCYXNlKCkgfHwgIXJ1YnlSdW4ucnVieUJhc2UoKS0+Zmly
c3RSb290Qm94KCkgfHwgcnVieVJ1bi5ydWJ5QmFzZSgpLT5maXJzdFJvb3RCb3goKS0+bmV4dFJv
b3RCb3goKSB8fCAhci5yZW5kZXJlcigpLnN0eWxlKCkuY29sbGFwc2VXaGl0ZVNwYWNlKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTU2OCwyNiArNTY4LDU2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1
cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dChSZW5kZXJSdWJ5UnVuJiBydWJ5UnVuLCBCaWRpUnVu
JiByCiAKICAgICBpZiAodG90YWxPcHBvcnR1bml0aWVzSW5SdW4pIHsKICAgICAgICAgQVNTRVJU
KCFydWJ5UnVuLmhhc092ZXJyaWRlV2lkdGgoKSk7Ci0gICAgICAgIHJ1YnlSdW4uc2V0T3ZlcnJp
ZGVMb2dpY2FsQ29udGVudFdpZHRoKHJ1YnlSdW4ubG9naWNhbFdpZHRoKCkgKyB0b3RhbEV4cGFu
c2lvbik7CisgICAgICAgIGZsb2F0IG5ld0Jhc2VXaWR0aCA9IHJvb3RCb3gubG9naWNhbFdpZHRo
KCkgLSByb290Qm94LmV4cGFuc2lvbigpICsgdG90YWxFeHBhbnNpb247CisgICAgICAgIGZsb2F0
IGN1cnJlbnRBdmFpbGFibGVCYXNlU3BhY2UgPSBydWJ5UnVuLmxvZ2ljYWxXaWR0aCgpICsgbWFy
Z2luU3RhcnRGb3JDaGlsZChydWJ5UnVuKSArIG1hcmdpbkVuZEZvckNoaWxkKHJ1YnlSdW4pOwor
ICAgICAgICBmbG9hdCBuZXdSdWJ5UnVuV2lkdGg7CisgICAgICAgIGlmIChuZXdCYXNlV2lkdGgg
PiBjdXJyZW50QXZhaWxhYmxlQmFzZVNwYWNlKSAvLyBXZSBuZWVkIHRvIGV4cGFuZCB0aGUgcnVi
eSBiYXNlIHRvIGFjY29tbW9kYXRlIHRoZSBleHBhbnNpb24uCisgICAgICAgICAgICBuZXdSdWJ5
UnVuV2lkdGggPSBzdGQ6Om1heChuZXdCYXNlV2lkdGgsIHN0YXRpY19jYXN0PGZsb2F0PihydWJ5
UnVuLmxvZ2ljYWxXaWR0aCgpKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gVGhl
IGV4cGFuc2lvbiBmaXRzIGNvbWZvcnRhYmx5IGluc2lkZSB0aGUgZXhpc3RpbmcgYmFzZS4KKyAg
ICAgICAgICAgIG5ld1J1YnlSdW5XaWR0aCA9IHJ1YnlSdW4ubG9naWNhbFdpZHRoKCk7CisgICAg
ICAgICAgICAvLyBXZSBzdGlsbCBuZWVkIHRvIHJlbGF5b3V0IGJlY2F1c2UgUmVuZGVyUnVieUJh
c2U6OmFkanVzdElubGluZURpcmVjdGlvbkxpbmVCb3VuZHMoKSBoYXMgdG8gYmUgY2FsbGVkIHdp
dGggdGhlIG5ldworICAgICAgICAgICAgLy8gZXhwYW5zaW9uIGluZm9ybWF0aW9uLgorICAgICAg
ICB9CisgICAgICAgIHJ1YnlCYXNlLnNldEluaXRpYWxPZmZzZXQoKG5ld1J1YnlSdW5XaWR0aCAt
IG5ld0Jhc2VXaWR0aCkgLyAyKTsKKyAgICAgICAgcnVieVJ1bi5zZXRPdmVycmlkZUxvZ2ljYWxD
b250ZW50V2lkdGgobmV3UnVieVJ1bldpZHRoKTsKICAgICAgICAgcnVieVJ1bi5zZXROZWVkc0xh
eW91dChNYXJrT25seVRoaXMpOworICAgICAgICByb290Qm94Lm1hcmtEaXJ0eSgpOworICAgICAg
ICBpZiAoUmVuZGVyUnVieVRleHQqIHJ1YnlUZXh0ID0gcnVieVJ1bi5ydWJ5VGV4dCgpKSB7Cisg
ICAgICAgICAgICBpZiAoUm9vdElubGluZUJveCogdGV4dFJvb3RCb3ggPSBydWJ5VGV4dC0+Zmly
c3RSb290Qm94KCkpCisgICAgICAgICAgICAgICAgdGV4dFJvb3RCb3gtPm1hcmtEaXJ0eSgpOwor
ICAgICAgICB9CiAgICAgICAgIHJ1YnlSdW4ubGF5b3V0QmxvY2sodHJ1ZSk7CiAgICAgICAgIHJ1
YnlSdW4uY2xlYXJPdmVycmlkZUxvZ2ljYWxDb250ZW50V2lkdGgoKTsKLSAgICAgICAgci5ib3go
KS0+c2V0RXhwYW5zaW9uKHRvdGFsRXhwYW5zaW9uKTsKKyAgICAgICAgc2V0TWFyZ2luc0ZvclJ1
YnlSdW4oJnIsIHJ1YnlSdW4sIHByZXZpb3VzT2JqZWN0LCBsaW5lSW5mbyk7IC8vIEV4cGFuZGlu
ZyB0aGUgYmFzZSBtaWdodCBtZWFuIHRoZXJlJ3MgbGVzcyBvZiBhIG5lZWQgZm9yIG92ZXJoYW5n
CisgICAgICAgIHIuYm94KCktPnNldEV4cGFuc2lvbihuZXdSdWJ5UnVuV2lkdGggLSByLmJveCgp
LT5sb2dpY2FsV2lkdGgoKSk7CisKKyAgICAgICAgLy8gVGhpcyByZWxheW91dCBjYXVzZWQgdGhl
IHNpemUgb2YgdGhlIFJlbmRlclJ1YnlUZXh0IGFuZCB0aGUgUmVuZGVyUnVieUJhc2UgdG8gY2hh
bmdlLCBkZXBlbmRlbnQgb24gdGhlIGxpbmUncyBjdXJyZW50IGV4cGFuc2lvbi4gTmV4dCB0aW1l
IHdlIHJlbGF5b3V0IHRoZQorICAgICAgICAvLyBSZW5kZXJSdWJ5UnVuLCBtYWtlIHN1cmUgdGhh
dCB3ZSByZWxheW91dCB0aGUgUmVuZGVyUnVieUJhc2UgYW5kIFJlbmRlclJ1YnlUZXh0IGFzIHdl
bGwuCisgICAgICAgIHJ1YnlCYXNlLnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAg
ICAgIGlmIChSZW5kZXJSdWJ5VGV4dCogcnVieVRleHQgPSBydWJ5UnVuLnJ1YnlUZXh0KCkpCisg
ICAgICAgICAgICBydWJ5VGV4dC0+c2V0TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAg
ICAgaWYgKHJ1YnlCYXNlLmxhc3RMZWFmQ2hpbGQoKSAmJiBpczxSZW5kZXJUZXh0PihydWJ5QmFz
ZS5sYXN0TGVhZkNoaWxkKCkpICYmIHIuYm94KCkgJiYgci5ib3goKS0+bmV4dExlYWZDaGlsZCgp
ICYmICFyLmJveCgpLT5uZXh0TGVhZkNoaWxkKCktPmlzTGluZUJyZWFrKCkpCisgICAgICAgICAg
ICBkb3duY2FzdDxSZW5kZXJUZXh0PihydWJ5QmFzZS5sYXN0TGVhZkNoaWxkKCkpLT5zZXRDb250
ZW50SXNLbm93blRvRm9sbG93KHRydWUpOwogCiAgICAgICAgIHRvdGFsTG9naWNhbFdpZHRoICs9
IHRvdGFsRXhwYW5zaW9uOwogICAgICAgICBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50IC09IHRv
dGFsT3Bwb3J0dW5pdGllc0luUnVuOwogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGNv
bXB1dGVFeHBhbnNpb25Gb3JKdXN0aWZpZWRUZXh0KEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVu
KiB0cmFpbGluZ1NwYWNlUnVuLCBjb25zdCBWZWN0b3I8dW5zaWduZWQsIDE2PiYgZXhwYW5zaW9u
T3Bwb3J0dW5pdGllcywgdW5zaWduZWQgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCwgZmxvYXQg
dG90YWxMb2dpY2FsV2lkdGgsIGZsb2F0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCkKK3ZvaWQgUmVu
ZGVyQmxvY2tGbG93Ojpjb21wdXRlRXhwYW5zaW9uRm9ySnVzdGlmaWVkVGV4dChCaWRpUnVuKiBm
aXJzdFJ1biwgQmlkaVJ1biogdHJhaWxpbmdTcGFjZVJ1biwgY29uc3QgVmVjdG9yPHVuc2lnbmVk
LCAxNj4mIGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMsIHVuc2lnbmVkIGV4cGFuc2lvbk9wcG9ydHVu
aXR5Q291bnQsIGZsb2F0IHRvdGFsTG9naWNhbFdpZHRoLCBmbG9hdCBhdmFpbGFibGVMb2dpY2Fs
V2lkdGgsIGNvbnN0IExpbmVJbmZvJiBsaW5lSW5mbykKIHsKICAgICBpZiAoIWV4cGFuc2lvbk9w
cG9ydHVuaXR5Q291bnQgfHwgYXZhaWxhYmxlTG9naWNhbFdpZHRoIDw9IHRvdGFsTG9naWNhbFdp
ZHRoKQogICAgICAgICByZXR1cm47CiAKKyAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzT2JqZWN0
ID0gbnVsbHB0cjsKKwogICAgIHNpemVfdCBpID0gMDsKICAgICBmb3IgKEJpZGlSdW4qIHJ1biA9
IGZpcnN0UnVuOyBydW47IHJ1biA9IHJ1bi0+bmV4dCgpKSB7Ci0gICAgICAgIGlmICghcnVuLT5i
b3goKSB8fCBydW4gPT0gdHJhaWxpbmdTcGFjZVJ1bikKKyAgICAgICAgaWYgKCFydW4tPmJveCgp
IHx8IHJ1biA9PSB0cmFpbGluZ1NwYWNlUnVuKSB7CisgICAgICAgICAgICBwcmV2aW91c09iamVj
dCA9ICZydW4tPnJlbmRlcmVyKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQog
ICAgICAgICAKICAgICAgICAgaWYgKGlzPFJlbmRlclRleHQ+KHJ1bi0+cmVuZGVyZXIoKSkpIHsK
ICAgICAgICAgICAgIHVuc2lnbmVkIG9wcG9ydHVuaXRpZXNJblJ1biA9IGV4cGFuc2lvbk9wcG9y
dHVuaXRpZXNbaSsrXTsKQEAgLTYwMyw3ICs2MzMsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29t
cHV0ZUV4cGFuc2lvbkZvckp1c3RpZmllZFRleHQoQmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4q
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50IC09
IG9wcG9ydHVuaXRpZXNJblJ1bjsKICAgICAgICAgfSBlbHNlIGlmIChpczxSZW5kZXJSdWJ5UnVu
PihydW4tPnJlbmRlcmVyKCkpKQotICAgICAgICAgICAgdXBkYXRlUnVieUZvckp1c3RpZmllZFRl
eHQoZG93bmNhc3Q8UmVuZGVyUnVieVJ1bj4ocnVuLT5yZW5kZXJlcigpKSwgKnJ1biwgZXhwYW5z
aW9uT3Bwb3J0dW5pdGllcywgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCwgdG90YWxMb2dpY2Fs
V2lkdGgsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgaSk7CisgICAgICAgICAgICB1cGRhdGVSdWJ5
Rm9ySnVzdGlmaWVkVGV4dChkb3duY2FzdDxSZW5kZXJSdWJ5UnVuPihydW4tPnJlbmRlcmVyKCkp
LCAqcnVuLCBleHBhbnNpb25PcHBvcnR1bml0aWVzLCBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50
LCB0b3RhbExvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBwcmV2aW91c09iamVj
dCwgbGluZUluZm8sIGkpOworCisgICAgICAgIHByZXZpb3VzT2JqZWN0ID0gJnJ1bi0+cmVuZGVy
ZXIoKTsKIAogICAgICAgICBpZiAoIWV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQpCiAgICAgICAg
ICAgICBicmVhazsKQEAgLTcwNCw3ICs3MzYsNyBAQCBCaWRpUnVuKiBSZW5kZXJCbG9ja0Zsb3c6
OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JTZWdtZW50KFJvb3RJbmxpbmVCbwog
ICAgIGJvb2wgbmVlZHNXb3JkU3BhY2luZyA9IGZhbHNlOwogICAgIGZsb2F0IHRvdGFsTG9naWNh
bFdpZHRoID0gbGluZUJveC0+Z2V0Rmxvd1NwYWNpbmdMb2dpY2FsV2lkdGgoKTsKICAgICB1bnNp
Z25lZCBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50ID0gMDsKLSAgICBib29sIGlzQWZ0ZXJFeHBh
bnNpb24gPSB0cnVlOworICAgIGJvb2wgaXNBZnRlckV4cGFuc2lvbiA9IGlzPFJlbmRlclJ1YnlC
YXNlPigqdGhpcykgPyBkb3duY2FzdDxSZW5kZXJSdWJ5QmFzZT4oKnRoaXMpLmlzQWZ0ZXJFeHBh
bnNpb24oKSA6IHRydWU7CiAgICAgVmVjdG9yPHVuc2lnbmVkLCAxNj4gZXhwYW5zaW9uT3Bwb3J0
dW5pdGllczsKICAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzT2JqZWN0ID0gbnVsbHB0cjsKIApA
QCAtNzM3LDYgKzc2OSw3IEBAIEJpZGlSdW4qIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUlubGlu
ZURpcmVjdGlvblBvc2l0aW9uc0ZvclNlZ21lbnQoUm9vdElubGluZUJvCiAgICAgICAgICAgICBp
ZiAoaXM8UmVuZGVyUnVieVJ1bj4ocnVuLT5yZW5kZXJlcigpKSAmJiB0ZXh0QWxpZ24gPT0gSlVT
VElGWSAmJiBydW4gIT0gdHJhaWxpbmdTcGFjZVJ1biAmJiBkb3duY2FzdDxSZW5kZXJSdWJ5UnVu
PihydW4tPnJlbmRlcmVyKCkpLnJ1YnlCYXNlKCkpIHsKICAgICAgICAgICAgICAgICBhdXRvKiBy
dWJ5QmFzZSA9IGRvd25jYXN0PFJlbmRlclJ1YnlSdW4+KHJ1bi0+cmVuZGVyZXIoKSkucnVieUJh
c2UoKTsKICAgICAgICAgICAgICAgICBpZiAocnVieUJhc2UtPmZpcnN0Um9vdEJveCgpICYmICFy
dWJ5QmFzZS0+Zmlyc3RSb290Qm94KCktPm5leHRSb290Qm94KCkgJiYgcnVuLT5yZW5kZXJlcigp
LnN0eWxlKCkuY29sbGFwc2VXaGl0ZVNwYWNlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVi
eUJhc2UtPnNldElzQWZ0ZXJFeHBhbnNpb24oaXNBZnRlckV4cGFuc2lvbik7CiAgICAgICAgICAg
ICAgICAgICAgIGZvciAoYXV0byogbGVhZkNoaWxkID0gcnVieUJhc2UtPmZpcnN0Um9vdEJveCgp
LT5maXJzdExlYWZDaGlsZCgpOyBsZWFmQ2hpbGQ7IGxlYWZDaGlsZCA9IGxlYWZDaGlsZC0+bmV4
dExlYWZDaGlsZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzPElubGluZVRl
eHRCb3g+KCpsZWFmQ2hpbGQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwpAQCAtNzY4LDEzICs4MDEsMjggQEAgQmlkaVJ1biogUmVuZGVyQmxvY2tGbG93Ojpjb21wdXRl
SW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yU2VnbWVudChSb290SW5saW5lQm8KICAgICB9CiAK
ICAgICBpZiAoaXNBZnRlckV4cGFuc2lvbiAmJiAhZXhwYW5zaW9uT3Bwb3J0dW5pdGllcy5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcy5sYXN0KCktLTsKLSAgICAg
ICAgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudC0tOworICAgICAgICBib29sIHNob3VsZFNoYXJl
RXhwYW5zaW9uc1dpdGhDb250YWluaW5nTGluZSA9IHRydWU7CisgICAgICAgIGlmIChpczxSZW5k
ZXJSdWJ5QmFzZT4oKnRoaXMpKSB7CisgICAgICAgICAgICBpZiAoUmVuZGVyUnVieVJ1biogcnVi
eVJ1biA9IGRvd25jYXN0PFJlbmRlclJ1YnlCYXNlPigqdGhpcykucnVieVJ1bigpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKFJlbmRlckVsZW1lbnQqIHJ1YnlFbGVtZW50ID0gcnVieVJ1bi0+cGFy
ZW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ1YnlFbGVtZW50LT5zdHlsZSgpLmRp
c3BsYXkoKSA9PSBJTkxJTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSZW5kZXJC
bG9jayogY29udGFpbmluZ0Jsb2NrID0gcnVieUVsZW1lbnQtPmNvbnRhaW5pbmdCbG9jaygpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+c3R5bGUo
KS50ZXh0QWxpZ24oKSA9PSBKVVNUSUZZKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaG91bGRTaGFyZUV4cGFuc2lvbnNXaXRoQ29udGFpbmluZ0xpbmUgPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc2hvdWxkU2hhcmVF
eHBhbnNpb25zV2l0aENvbnRhaW5pbmdMaW5lKSB7CisgICAgICAgICAgICBleHBhbnNpb25PcHBv
cnR1bml0aWVzLmxhc3QoKS0tOworICAgICAgICAgICAgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3Vu
dC0tOworICAgICAgICB9CiAgICAgfQogCiAgICAgdXBkYXRlTG9naWNhbFdpZHRoRm9yQWxpZ25t
ZW50KHRleHRBbGlnbiwgbGluZUJveCwgdHJhaWxpbmdTcGFjZVJ1biwgbG9naWNhbExlZnQsIHRv
dGFsTG9naWNhbFdpZHRoLCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGV4cGFuc2lvbk9wcG9ydHVu
aXR5Q291bnQpOwogCi0gICAgY29tcHV0ZUV4cGFuc2lvbkZvckp1c3RpZmllZFRleHQoZmlyc3RS
dW4sIHRyYWlsaW5nU3BhY2VSdW4sIGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMsIGV4cGFuc2lvbk9w
cG9ydHVuaXR5Q291bnQsIHRvdGFsTG9naWNhbFdpZHRoLCBhdmFpbGFibGVMb2dpY2FsV2lkdGgp
OworICAgIGNvbXB1dGVFeHBhbnNpb25Gb3JKdXN0aWZpZWRUZXh0KGZpcnN0UnVuLCB0cmFpbGlu
Z1NwYWNlUnVuLCBleHBhbnNpb25PcHBvcnR1bml0aWVzLCBleHBhbnNpb25PcHBvcnR1bml0eUNv
dW50LCB0b3RhbExvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBsaW5lSW5mbyk7
CiAKICAgICByZXR1cm4gcnVuOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJ1YnlCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
dWJ5QmFzZS5jcHAKaW5kZXggOWE3ZjhlMTgxNDcxNTUyMjRhZWYwODBjOGIwNTE3ZDk4NzEyZjBh
Mi4uMjE5NGMzMDg1NmU4MTQ4MTI1NTEzODE2MGI0MDMyZjc1NDdjZjc2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCkBAIC0zOCw2ICszOCw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyUnVieUJhc2U6OlJlbmRlclJ1YnlCYXNlKERvY3Vt
ZW50JiBkb2N1bWVudCwgUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQogICAgIDogUmVuZGVyQmxv
Y2tGbG93KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQorICAgICwgbV9pbml0aWFsT2Zmc2V0
KDApCisgICAgLCBtX2lzQWZ0ZXJFeHBhbnNpb24odHJ1ZSkKIHsKICAgICBzZXRJbmxpbmUoZmFs
c2UpOwogfQpAQCAtMTQxLDYgKzE0MywxMiBAQCBFVGV4dEFsaWduIFJlbmRlclJ1YnlCYXNlOjp0
ZXh0QWxpZ25tZW50Rm9yTGluZShib29sIC8qIGVuZHNXaXRoU29mdEJyZWFrICovKSBjbwogCiB2
b2lkIFJlbmRlclJ1YnlCYXNlOjphZGp1c3RJbmxpbmVEaXJlY3Rpb25MaW5lQm91bmRzKGludCBl
eHBhbnNpb25PcHBvcnR1bml0eUNvdW50LCBmbG9hdCYgbG9naWNhbExlZnQsIGZsb2F0JiBsb2dp
Y2FsV2lkdGgpIGNvbnN0CiB7CisgICAgaWYgKHJ1YnlSdW4oKS0+aGFzT3ZlcnJpZGVXaWR0aCgp
ICYmIGZpcnN0Um9vdEJveCgpICYmICFmaXJzdFJvb3RCb3goKS0+bmV4dFJvb3RCb3goKSkgewor
ICAgICAgICBsb2dpY2FsTGVmdCArPSBtX2luaXRpYWxPZmZzZXQ7CisgICAgICAgIGxvZ2ljYWxX
aWR0aCAtPSAyICogbV9pbml0aWFsT2Zmc2V0OworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgTGF5b3V0VW5pdCBtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBydWJ5UnVuKCkgJiYgcnVi
eVJ1bigpLT5oYXNPdmVycmlkZVdpZHRoKCkgPyBydWJ5UnVuKCktPm92ZXJyaWRlTG9naWNhbENv
bnRlbnRXaWR0aCgpIDogdGhpcy0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CiAgICAgaWYg
KG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA+PSBsb2dpY2FsV2lkdGgpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmgKaW5kZXggMmE2MmFm
NmU5NmJkNjdiYzkwNzM1MTY1MDllMWEwYWRkNjE3YjIxNy4uYjRjNzMwMGU5YTIyMzg1ZTMyZDll
ODYxNjA4ZDJkODY5MzU4NmExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJ1YnlCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlCYXNlLmgKQEAgLTQ2LDYgKzQ2LDE3IEBAIHB1YmxpYzoKICAgICAKICAgICBSZW5kZXJSdWJ5
UnVuKiBydWJ5UnVuKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldElzQWZ0ZXJFeHBhbnNpb24oYm9v
bCBpc0FmdGVyRXhwYW5zaW9uKSB7IG1faXNBZnRlckV4cGFuc2lvbiA9IGlzQWZ0ZXJFeHBhbnNp
b247IH0KKyAgICBib29sIGlzQWZ0ZXJFeHBhbnNpb24oKSB7IHJldHVybiBtX2lzQWZ0ZXJFeHBh
bnNpb247IH0KKworICAgIHZvaWQgc2V0SW5pdGlhbE9mZnNldChmbG9hdCBpbml0aWFsT2Zmc2V0
KSB7IG1faW5pdGlhbE9mZnNldCA9IGluaXRpYWxPZmZzZXQ7IH0KKworICAgIHZvaWQgcmVzZXQo
KQorICAgIHsKKyAgICAgICAgbV9pbml0aWFsT2Zmc2V0ID0gMDsKKyAgICAgICAgbV9pc0FmdGVy
RXhwYW5zaW9uID0gdHJ1ZTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlz
UnVieUJhc2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFJlbmRlclN0eWxl
JikgY29uc3Qgb3ZlcnJpZGU7CkBAIC01OSw2ICs3MCw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBB
bGxvdyBSZW5kZXJSdWJ5UnVuIHRvIG1hbmlwdWxhdGUgdGhlIGNoaWxkcmVuIHdpdGhpbiBydWJ5
IGJhc2VzLgogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJSdWJ5UnVuOworCisgICAgZmxvYXQgbV9p
bml0aWFsT2Zmc2V0OworICAgIHVuc2lnbmVkIG1faXNBZnRlckV4cGFuc2lvbiA6IDE7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UnVieVJ1bi5jcHAKaW5kZXggMjA1ZWI2MDk4NTVjOGEyYzdjMjNjNmUwYjJlYjc2MzdlMjU0YTNi
OS4uZWY0NWE3Zjg5NjJmMDg0MWZmMWQyYjYzMmEwYTczMTZlOWI4YThhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcApAQCAtMjMwLDYgKzIzMCw5IEBAIFJl
bmRlck9iamVjdCogUmVuZGVyUnVieVJ1bjo6bGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQoYm9v
bCByZWxheW91dENoaWxkcmVuKQogCiB2b2lkIFJlbmRlclJ1YnlSdW46OmxheW91dCgpCiB7Cisg
ICAgaWYgKFJlbmRlclJ1YnlCYXNlKiBiYXNlID0gcnVieUJhc2UoKSkKKyAgICAgICAgYmFzZS0+
cmVzZXQoKTsKKwogICAgIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0KCk7CiAgICAgCiAgICAgUmVu
ZGVyUnVieVRleHQqIHJ0ID0gcnVieVRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAppbmRleCA0MDQ4NDdiMmZkZmY3MGU4ZDQyY2JjOWZjYWQyYWYwMGU2MTdkMDY1
Li4wYjIzYmY0MWRhOTkwMTZlMDA2YjhmZTk0OWViMjliMjdiZDRjZWEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xNjQsNiArMTY0LDcgQEAgaW5saW5lIFJl
bmRlclRleHQ6OlJlbmRlclRleHQoTm9kZSYgbm9kZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQogICAg
ICwgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMoZmFsc2UpCiAgICAg
LCBtX3VzZUJhY2tzbGFzaEFzWWVuU3ltYm9sKGZhbHNlKQogICAgICwgbV9vcmlnaW5hbFRleHRE
aWZmZXJzRnJvbVJlbmRlcmVkKGZhbHNlKQorICAgICwgbV9jb250ZW50SXNLbm93blRvRm9sbG93
KGZhbHNlKQogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQogICAgICwgbV9jYW5kaWRh
dGVDb21wdXRlZFRleHRTaXplKDApCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5oCmluZGV4IGZmZWY5M2QwNjVhOWY0YWQwZDY1ZTI4OWJjMDU0NzgxODE3YTk3MmIuLjY1
OWIxYzEyNzRmZjM1NTM1YmI4NWJkNmEyN2IwMDFjNDljOWYxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaApAQCAtMTY2LDYgKzE2Niw5IEBAIHB1YmxpYzoKIAogICAgIExh
eW91dFVuaXQgdG9wT2ZGaXJzdFRleHQoKSBjb25zdDsKIAorICAgIGJvb2wgY29udGVudElzS25v
d25Ub0ZvbGxvdygpIHsgcmV0dXJuIG1fY29udGVudElzS25vd25Ub0ZvbGxvdzsgfQorICAgIHZv
aWQgc2V0Q29udGVudElzS25vd25Ub0ZvbGxvdyhib29sIGNvbnRlbnRJc0tub3duVG9Gb2xsb3cp
IHsgbV9jb250ZW50SXNLbm93blRvRm9sbG93ID0gY29udGVudElzS25vd25Ub0ZvbGxvdzsgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKGZsb2F0IGxlYWRXaWR0aCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgp
IG92ZXJyaWRlOwpAQCAtMjAxLDIxICsyMDQsMjIgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5vZGUo
KSBjb25zdCA9IGRlbGV0ZTsKIAogICAgIC8vIFdlIHB1dCB0aGUgYml0ZmllbGQgZmlyc3QgdG8g
bWluaW1pemUgcGFkZGluZyBvbiA2NC1iaXQuCi0gICAgYm9vbCBtX2hhc0JyZWFrYWJsZUNoYXIg
OiAxOyAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBjYW4gYmUgYnJva2VuIGludG8gbXVsdGlwbGUgbGlu
ZXMuCi0gICAgYm9vbCBtX2hhc0JyZWFrIDogMTsgLy8gV2hldGhlciBvciBub3Qgd2UgaGF2ZSBh
IGhhcmQgYnJlYWsgKGUuZy4sIDxwcmU+IHdpdGggJ1xuJykuCi0gICAgYm9vbCBtX2hhc1RhYiA6
IDE7IC8vIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYSB2YXJpYWJsZSB3aWR0aCB0YWIgY2hhcmFj
dGVyIChlLmcuLCA8cHJlPiB3aXRoICdcdCcpLgotICAgIGJvb2wgbV9oYXNCZWdpbldTIDogMTsg
Ly8gV2hldGhlciBvciBub3Qgd2UgYmVnaW4gd2l0aCBXUyAob25seSB0cnVlIGlmIHdlIGFyZW4n
dCBwcmUpCi0gICAgYm9vbCBtX2hhc0VuZFdTIDogMTsgLy8gV2hldGhlciBvciBub3Qgd2UgZW5k
IHdpdGggV1MgKG9ubHkgdHJ1ZSBpZiB3ZSBhcmVuJ3QgcHJlKQotICAgIGJvb2wgbV9saW5lc0Rp
cnR5IDogMTsgLy8gVGhpcyBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIHRleHQgcnVuIGhhcyBhbHJl
YWR5IGRpcnRpZWQgc3BlY2lmaWMKKyAgICB1bnNpZ25lZCBtX2hhc0JyZWFrYWJsZUNoYXIgOiAx
OyAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBjYW4gYmUgYnJva2VuIGludG8gbXVsdGlwbGUgbGluZXMu
CisgICAgdW5zaWduZWQgbV9oYXNCcmVhayA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUg
YSBoYXJkIGJyZWFrIChlLmcuLCA8cHJlPiB3aXRoICdcbicpLgorICAgIHVuc2lnbmVkIG1faGFz
VGFiIDogMTsgLy8gV2hldGhlciBvciBub3Qgd2UgaGF2ZSBhIHZhcmlhYmxlIHdpZHRoIHRhYiBj
aGFyYWN0ZXIgKGUuZy4sIDxwcmU+IHdpdGggJ1x0JykuCisgICAgdW5zaWduZWQgbV9oYXNCZWdp
bldTIDogMTsgLy8gV2hldGhlciBvciBub3Qgd2UgYmVnaW4gd2l0aCBXUyAob25seSB0cnVlIGlm
IHdlIGFyZW4ndCBwcmUpCisgICAgdW5zaWduZWQgbV9oYXNFbmRXUyA6IDE7IC8vIFdoZXRoZXIg
b3Igbm90IHdlIGVuZCB3aXRoIFdTIChvbmx5IHRydWUgaWYgd2UgYXJlbid0IHByZSkKKyAgICB1
bnNpZ25lZCBtX2xpbmVzRGlydHkgOiAxOyAvLyBUaGlzIGJpdCBpbmRpY2F0ZXMgdGhhdCB0aGUg
dGV4dCBydW4gaGFzIGFscmVhZHkgZGlydGllZCBzcGVjaWZpYwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gbGluZSBib3hlcywgYW5kIHRoaXMgaGludCB3aWxsIGVuYWJsZSBsYXlvdXRJ
bmxpbmVDaGlsZHJlbiB0byBhdm9pZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8ganVz
dCBkaXJ0eWluZyBldmVyeXRoaW5nIHdoZW4gY2hhcmFjdGVyIGRhdGEgaXMgbW9kaWZpZWQgKGUu
Zy4sIGFwcGVuZGVkL2luc2VydGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvciBy
ZW1vdmVkKS4KLSAgICBib29sIG1fY29udGFpbnNSZXZlcnNlZFRleHQgOiAxOwotICAgIGJvb2wg
bV9pc0FsbEFTQ0lJIDogMTsKLSAgICBib29sIG1fY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoIDog
MTsKLSAgICBtdXRhYmxlIGJvb2wgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNr
Rm9udHMgOiAxOwotICAgIGJvb2wgbV91c2VCYWNrc2xhc2hBc1llblN5bWJvbCA6IDE7Ci0gICAg
Ym9vbCBtX29yaWdpbmFsVGV4dERpZmZlcnNGcm9tUmVuZGVyZWQgOiAxOworICAgIHVuc2lnbmVk
IG1fY29udGFpbnNSZXZlcnNlZFRleHQgOiAxOworICAgIHVuc2lnbmVkIG1faXNBbGxBU0NJSSA6
IDE7CisgICAgdW5zaWduZWQgbV9jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGggOiAxOworICAgIG11
dGFibGUgdW5zaWduZWQgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dBbmROb0ZhbGxiYWNrRm9udHMg
OiAxOworICAgIHVuc2lnbmVkIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wgOiAxOworICAgIHVu
c2lnbmVkIG1fb3JpZ2luYWxUZXh0RGlmZmVyc0Zyb21SZW5kZXJlZCA6IDE7CisgICAgdW5zaWdu
ZWQgbV9jb250ZW50SXNLbm93blRvRm9sbG93IDogMTsKIAogI2lmIEVOQUJMRShJT1NfVEVYVF9B
VVRPU0laSU5HKQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBwYXJ0IG9m
IHRoZSB0ZXh0IHNpemluZyBzdHJ1Y3R1cmVzIGluIERvY3VtZW50IGluc3RlYWQuIFRoYXQgd291
bGQgc2F2ZSBzb21lIG1lbW9yeS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243348</attachid>
            <date>2014-12-15 21:48:39 -0800</date>
            <delta_ts>2014-12-16 11:28:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139618-20141215214928.patch</filename>
            <type>text/plain</type>
            <size>27579</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyYzVhYmU0ODlhOWFi
Y2IwOGMyZmNiYTk5NDQxZTc4MTNhY2VmNS4uNTJhODJhZDdkNDQ2ZDk2YTRiMzIxODRjN2U3YmU4
NjUxZjdlNWE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE0LTEyLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPGxpdGhlcnVtQGdtYWlsLmNvbT4KKworICAgICAgICBSdWJ5IGRvZXMg
bm90IHByZXNlcnZlIGV4cGFuc2lvbiBvcHBvcnR1bml0aWVzIGZyb20gZW5jbG9zaW5nIGNvbnRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTYx
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJl
IGlzIGN1cnJlbnRseSBubyBzaGFyaW5nIG9mIGV4cGFuc2lvbiBvcHBvcnR1bml0eSBpbmZvcm1h
dGlvbiBiZXR3ZWVuCisgICAgICAgIHJ1YnkgYmFzZXMgYW5kIHRoZSB0ZXh0IHN1cnJvdW5kaW5n
IHRoZSBydWJ5LiBUaGlzIHBhdGNoIGFkZHMgYSBiaXQgb24KKyAgICAgICAgUmVuZGVyVGV4dCwg
bV9jb250ZW50SXNLbm93blRvRm9sbG93LCB3aGljaCBhZmZlY3RzIGhvdyBleHBhbnNpb24KKyAg
ICAgICAgb3Bwb3J0dW5pdGllcyBhcmUgaGFuZGxlZCBhdCBwYWludC10aW1lLCBhcyB3ZWxsIGFz
IGEgYml0IG9uIFJlbmRlclJ1YnlCYXNlLAorICAgICAgICBtX2lzQWZ0ZXJFeHBhbnNpb24sIHdo
aWNoIGFmZmVjdHMgaG93IGV4cGFuc2lvbnMgYXJlIGNhbGN1bGF0ZWQgd2hlbiBsYXlpbmcKKyAg
ICAgICAgb3V0IGEgbGluZS4gVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBmaWVsZCB0byBSZW5kZXJS
dWJ5QmFzZSB3aGljaCByZXByZXNlbnRzCisgICAgICAgIHRoZSBiYXNlJ3Mgc3RhcnRpbmcgcG9z
aXRpb24gd2l0aGluIGEgcnVieS4gVGhpcyBmaWVsZCBpcyBuZWNlc3NhcnkgYmVjYXVzZQorICAg
ICAgICBhbiBleHBhbnNpb24gZnJvbSBhIGxpbmUgbWlnaHQgb2NjdXIgYXQgdGhlIHZlcnkgYmVn
aW5uaW5nIG9mIGEgcnVieSBiYXNlLAorICAgICAgICBzbyB3ZSBoYXZlIHRvIHJlbWVtYmVyIHNv
bWUgc3RhdGUgZnJvbSBleHBhbnNpb24gdGltZSB0byBSZW5kZXJSdWJ5QmFzZQorICAgICAgICBs
YXlvdXQgdGltZS4KKworICAgICAgICBBZGRlZCBtb3JlIHRlc3RzIHRvIGZhc3QvcnVieS9ydWJ5
LWp1c3RpZmljYXRpb24uaHRtbC4KKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVCb3guaDoK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6c2V0RXhwYW5zaW9uV2l0aG91dEdyb3dpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94OjpleHBhbnNpb24pOgorICAgICAgICAqIHJl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dC
b3g6OnJlbW92ZUNoaWxkKTogS2VlcCB0aGUgYml0IG9uIElubGluZVRleHRCb3ggdXAgdG8KKyAg
ICAgICAgZGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNlQm94UmFu
Z2VJbklubGluZURpcmVjdGlvbik6IFNldCBleHBhbnNpb24KKyAgICAgICAgaW5mb3JtYXRpb24g
aW4gSW5saW5lRmxvd0JveGVzIHNvIHRoZSB0b3RhbCBleHBhbnNpb24gZm9yIGEgd2hvbGUgbGlu
ZQorICAgICAgICBpcyBoZWxkIGluIHRoZSBSb290SW5saW5lQm94J3MgZXhwYW5zaW9uLgorICAg
ICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVUZXh0Qm94OjpleHBhbnNpb25CZWhhdmlvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojp1cGRhdGVSdWJ5Rm9ySnVz
dGlmaWVkVGV4dCk6CisgICAgICAgIHVwZGF0ZVJ1YnlGb3JKdXN0aWZpZWRUZXh0KCkgaGFkIGEg
YnVuY2ggb2YgcHJvYmxlbXMgd2l0aCBpdC4gRmlyc3Qgb2YgYWxsLAorICAgICAgICBpdCBkaWRu
J3QgYWN0dWFsbHkgc2V0IHRoZSBJbmxpbmVCb3hlcyBhcyBkaXJ0eSwgc28gdGhlIHNlY29uZCBs
YXlvdXQgcGFzcworICAgICAgICBzb21ldGltZXMgd291bGRuJ3QgcGVyZm9ybSBhbnkgdXBkYXRl
cy4gU2Vjb25kYXJpbHksIGl0IGRpZG4ndCB0YWtlCisgICAgICAgIG92ZXJoYW5ncyBpbnRvIGFj
Y291bnQuIFRoaXJkbHksIGl0IGRpZG4ndCBtYXJrIHRoZSBydWJ5IGJhc2UgYW5kIHRleHQgYXMK
KyAgICAgICAgbmVlZGluZyBsYXlvdXQgc28gdGhhdCBzdWJzZXF1ZW50IGxheW91dHMgd291bGQg
YWN0dWFsbHkgdHJhdmVyc2UgaW50byB0aGVtLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2tGbG93Ojpjb21wdXRlRXhwYW5zaW9uRm9ySnVzdGlmaWVkVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JT
ZWdtZW50KToKKyAgICAgICAgVGhpcyBuZXN0ZWQgaWYgdHJpYW5nbGUgaXMgc3VwZXIgbmFzdHks
IGJ1dCBJJ20gbm90IHN1cmUgb2YgYSBiZXR0ZXIgd2F5IHRvCisgICAgICAgIHdyaXRlIGl0Lgor
ICAgICAgICAoV2ViQ29yZTo6dXBkYXRlUnVieUZvckp1c3RpZmllZFRleHQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUV4cGFuc2lvbkZvckp1c3RpZmllZFRleHQpOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVieUJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUnVieUJhc2U6OmFkanVzdElubGluZURpcmVjdGlvbkxpbmVCb3VuZHMpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJSdWJ5UnVuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlSdW46OmxheW91
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dDo6UmVuZGVyVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRl
eHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbnRlbnRJc0tub3duVG9Gb2xs
b3cpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0Q29udGVudElzS25vd25Ub0Zv
bGxvdyk6CisKIDIwMTQtMTItMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMTc3MzAxCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmgKaW5kZXggN2I3YmUzOGU3NGMwOTY3OGJkZWUyOTU5
ZjU0OTVkNzYwNzU3NjI5NC4uMWY3MzY5YjI3OTA4ZmI0OWU3NTk1YmQzMWRlOGZhNzhlNjI0NmY0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guaApAQCAtMjc3LDYgKzI3NywxMiBA
QCBwdWJsaWM6CiAgICAgICAgIG1fZXhwYW5zaW9uID0gbmV3RXhwYW5zaW9uOwogICAgICAgICBt
X2xvZ2ljYWxXaWR0aCArPSBtX2V4cGFuc2lvbjsKICAgICB9CisgICAgdm9pZCBzZXRFeHBhbnNp
b25XaXRob3V0R3Jvd2luZyhmbG9hdCBuZXdFeHBhbnNpb24pCisgICAgeworICAgICAgICBBU1NF
UlQoIW1fZXhwYW5zaW9uKTsKKyAgICAgICAgbV9leHBhbnNpb24gPSBuZXdFeHBhbnNpb247Cisg
ICAgfQorICAgIGZsb2F0IGV4cGFuc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9
CiAKIHByaXZhdGU6CiAgICAgSW5saW5lQm94KiBtX25leHQ7IC8vIFRoZSBuZXh0IGVsZW1lbnQg
b24gdGhlIHNhbWUgbGluZSBhcyB1cy4KQEAgLTQwOCw3ICs0MTQsNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBzZXRIYXNIeXBoZW4oYm9vbCBoYXNIeXBoZW4pIHsgbV9iaXRmaWVsZHMuc2V0SGFz
RWxsaXBzaXNCb3hPckh5cGhlbihoYXNIeXBoZW4pOyB9ICAgIAogICAgIGJvb2wgY2FuSGF2ZUxl
YWRpbmdFeHBhbnNpb24oKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5oYXNTZWxlY3RlZENo
aWxkcmVuT3JDYW5IYXZlTGVhZGluZ0V4cGFuc2lvbigpOyB9CiAgICAgdm9pZCBzZXRDYW5IYXZl
TGVhZGluZ0V4cGFuc2lvbihib29sIGNhbkhhdmVMZWFkaW5nRXhwYW5zaW9uKSB7IG1fYml0Zmll
bGRzLnNldEhhc1NlbGVjdGVkQ2hpbGRyZW5PckNhbkhhdmVMZWFkaW5nRXhwYW5zaW9uKGNhbkhh
dmVMZWFkaW5nRXhwYW5zaW9uKTsgfQotICAgIGZsb2F0IGV4cGFuc2lvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZXhwYW5zaW9uOyB9CiAgICAgCiAgICAgLy8gRm9yIElubGluZUZsb3dCb3ggYW5kIElu
bGluZVRleHRCb3gKICAgICBib29sIGV4dHJhY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0Zmll
bGRzLmV4dHJhY3RlZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0Jv
eC5jcHAKaW5kZXggNDA2MTYxMzUwYjcyNjRmMTRmNTk0YWMxODYyZWM5MDRkNjk3NjI5MS4uODI1
NDE0YTViNDBkYjczM2MxNWUzNmQxODliZDc2YjYyYmJmZWQwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcApAQCAtMTc5LDYgKzE3OSwxNCBAQCB2b2lkIElu
bGluZUZsb3dCb3g6OnJlbW92ZUNoaWxkKElubGluZUJveCogY2hpbGQpCiAgICAgaWYgKCFpc0Rp
cnR5KCkpCiAgICAgICAgIGRpcnR5TGluZUJveGVzKCk7CiAKKyAgICBpZiAoY2hpbGQtPnByZXZM
ZWFmQ2hpbGQoKSAmJiBpczxJbmxpbmVUZXh0Qm94PihjaGlsZC0+cHJldkxlYWZDaGlsZCgpKSkg
eworICAgICAgICBpZiAoaXM8SW5saW5lVGV4dEJveD4oY2hpbGQpKQorICAgICAgICAgICAgZG93
bmNhc3Q8SW5saW5lVGV4dEJveD4oY2hpbGQtPnByZXZMZWFmQ2hpbGQoKSktPnJlbmRlcmVyKCku
c2V0Q29udGVudElzS25vd25Ub0ZvbGxvdyhkb3duY2FzdDxJbmxpbmVUZXh0Qm94PihjaGlsZCkt
PnJlbmRlcmVyKCkuY29udGVudElzS25vd25Ub0ZvbGxvdygpKTsKKyAgICAgICAgLy8gRklYTUU6
IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSByZW1vdmUgdGhlIGxhc3QgaW5saW5lIGJveCwgYW5k
IGl0J3Mgbm90IGEgdGV4dCBib3guIElmIHdlJ3JlIHRyeWluZyB0byBzaGFyZQorICAgICAgICAv
LyBleHBhbnNpb24gb3Bwb3J0dW5pdGVzIGJvdGggaW5zaWRlIGFuZCBvdXRzaWRlIGEgcmVwbGFj
ZWQgZWxlbWVudCAoc3VjaCBhcyBmb3IgcnVieSBiYXNlcyksIHdlIG5lZWQgdG8gc2VhcmNoCisg
ICAgICAgIC8vIG91dHNpZGUgdGhlIGN1cnJlbnQgaW5saW5lIGJveCB0cmVlIHRvIGRldGVybWlu
ZSBpZiB0aGVyZSBpcyBjb250ZW50IHRoYXQgZm9sbG93cyB0aGUgbmV3IGxhc3QgaW5saW5lIGl0
ZW0uCisgICAgfQorCiAgICAgcm9vdCgpLmNoaWxkUmVtb3ZlZChjaGlsZCk7CiAKICAgICBpZiAo
Y2hpbGQgPT0gbV9maXJzdENoaWxkKQpAQCAtMzczLDYgKzM4MSw3IEBAIGZsb2F0IElubGluZUZs
b3dCb3g6OnBsYWNlQm94ZXNJbklubGluZURpcmVjdGlvbihmbG9hdCBsb2dpY2FsTGVmdCwgYm9v
bCYgbmVlZHNXCiAKIGZsb2F0IElubGluZUZsb3dCb3g6OnBsYWNlQm94UmFuZ2VJbklubGluZURp
cmVjdGlvbihJbmxpbmVCb3gqIGZpcnN0Q2hpbGQsIElubGluZUJveCogbGFzdENoaWxkLCBmbG9h
dCYgbG9naWNhbExlZnQsIGZsb2F0JiBtaW5Mb2dpY2FsTGVmdCwgZmxvYXQmIG1heExvZ2ljYWxS
aWdodCwgYm9vbCYgbmVlZHNXb3JkU3BhY2luZykKIHsKKyAgICBmbG9hdCB0b3RhbEV4cGFuc2lv
biA9IDA7CiAgICAgZm9yIChJbmxpbmVCb3gqIGNoaWxkID0gZmlyc3RDaGlsZDsgY2hpbGQgJiYg
Y2hpbGQgIT0gbGFzdENoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0T25MaW5lKCkpIHsKICAgICAg
ICAgaWYgKGlzPFJlbmRlclRleHQ+KGNoaWxkLT5yZW5kZXJlcigpKSkgewogICAgICAgICAgICAg
YXV0byYgdGV4dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KCpjaGlsZCk7CkBAIC0zODYs
NiArMzk1LDcgQEAgZmxvYXQgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hSYW5nZUluSW5saW5lRGly
ZWN0aW9uKElubGluZUJveCogZmlyc3RDaGlsZCwgSW5saW4KICAgICAgICAgICAgIGlmIChrbm93
blRvSGF2ZU5vT3ZlcmZsb3coKSkKICAgICAgICAgICAgICAgICBtaW5Mb2dpY2FsTGVmdCA9IHN0
ZDo6bWluKGxvZ2ljYWxMZWZ0LCBtaW5Mb2dpY2FsTGVmdCk7CiAgICAgICAgICAgICBsb2dpY2Fs
TGVmdCArPSB0ZXh0Qm94LmxvZ2ljYWxXaWR0aCgpOworICAgICAgICAgICAgdG90YWxFeHBhbnNp
b24gKz0gdGV4dEJveC5leHBhbnNpb24oKTsKICAgICAgICAgICAgIGlmIChrbm93blRvSGF2ZU5v
T3ZlcmZsb3coKSkKICAgICAgICAgICAgICAgICBtYXhMb2dpY2FsUmlnaHQgPSBzdGQ6Om1heChs
b2dpY2FsTGVmdCwgbWF4TG9naWNhbFJpZ2h0KTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTQwNSw2
ICs0MTUsNyBAQCBmbG9hdCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveFJhbmdlSW5JbmxpbmVEaXJl
Y3Rpb24oSW5saW5lQm94KiBmaXJzdENoaWxkLCBJbmxpbgogICAgICAgICAgICAgICAgIGlmIChr
bm93blRvSGF2ZU5vT3ZlcmZsb3coKSkKICAgICAgICAgICAgICAgICAgICAgbWluTG9naWNhbExl
ZnQgPSBzdGQ6Om1pbihsb2dpY2FsTGVmdCwgbWluTG9naWNhbExlZnQpOwogICAgICAgICAgICAg
ICAgIGxvZ2ljYWxMZWZ0ID0gZmxvdy5wbGFjZUJveGVzSW5JbmxpbmVEaXJlY3Rpb24obG9naWNh
bExlZnQsIG5lZWRzV29yZFNwYWNpbmcpOworICAgICAgICAgICAgICAgIHRvdGFsRXhwYW5zaW9u
ICs9IGZsb3cuZXhwYW5zaW9uKCk7CiAgICAgICAgICAgICAgICAgaWYgKGtub3duVG9IYXZlTm9P
dmVyZmxvdygpKQogICAgICAgICAgICAgICAgICAgICBtYXhMb2dpY2FsUmlnaHQgPSBzdGQ6Om1h
eChsb2dpY2FsTGVmdCwgbWF4TG9naWNhbFJpZ2h0KTsKICAgICAgICAgICAgICAgICBsb2dpY2Fs
TGVmdCArPSBmbG93Lm1hcmdpbkxvZ2ljYWxSaWdodCgpOwpAQCAtNDI3LDYgKzQzOCw3IEBAIGZs
b2F0IElubGluZUZsb3dCb3g6OnBsYWNlQm94UmFuZ2VJbklubGluZURpcmVjdGlvbihJbmxpbmVC
b3gqIGZpcnN0Q2hpbGQsIElubGluCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Cisg
ICAgc2V0RXhwYW5zaW9uV2l0aG91dEdyb3dpbmcodG90YWxFeHBhbnNpb24pOwogICAgIHJldHVy
biBsb2dpY2FsTGVmdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmgKaW5kZXggOGU2MjIyNmVlYzk0NDljOTJjOWVkMmNmOGQ1N2JlM2NhNmQ1ZWE4Yy4uZmNmMGFl
NzE4NmUxZWMzOTRjMTRlNjdhY2ViZGNiMGQzMWRjNTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5oCkBAIC0xNjMsNyArMTYzLDcgQEAgcHJpdmF0ZToKICAgICBU
ZXh0UnVuOjpFeHBhbnNpb25CZWhhdmlvciBleHBhbnNpb25CZWhhdmlvcigpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gKGNhbkhhdmVMZWFkaW5nRXhwYW5zaW9uKCkgPyBUZXh0UnVuOjpB
bGxvd0xlYWRpbmdFeHBhbnNpb24gOiBUZXh0UnVuOjpGb3JiaWRMZWFkaW5nRXhwYW5zaW9uKQot
ICAgICAgICAgICAgfCAoZXhwYW5zaW9uKCkgJiYgbmV4dExlYWZDaGlsZCgpICYmICFuZXh0TGVh
ZkNoaWxkKCktPmlzTGluZUJyZWFrKCkgPyBUZXh0UnVuOjpBbGxvd1RyYWlsaW5nRXhwYW5zaW9u
IDogVGV4dFJ1bjo6Rm9yYmlkVHJhaWxpbmdFeHBhbnNpb24pOworICAgICAgICAgICAgfCAocmVu
ZGVyZXIoKS5jb250ZW50SXNLbm93blRvRm9sbG93KCkgfHwgKGV4cGFuc2lvbigpICYmIG5leHRM
ZWFmQ2hpbGQoKSAmJiAhbmV4dExlYWZDaGlsZCgpLT5pc0xpbmVCcmVhaygpKSA/IFRleHRSdW46
OkFsbG93VHJhaWxpbmdFeHBhbnNpb24gOiBUZXh0UnVuOjpGb3JiaWRUcmFpbGluZ0V4cGFuc2lv
bik7CiAgICAgfQogCiAgICAgdm9pZCBiZWhhdmVzTGlrZVRleHQoKSBjb25zdCA9IGRlbGV0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAppbmRleCBjNDA1MjUz
MjQ4ZjliOWFkZGZkMTllYmNjYzVmNTcyYzM5MzRmZDgxLi4xOTc2NWUwMTUzMTAxYTBmNzE5MTIy
YTQ5NDA1OTgwMzE1ZGZlZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5oCkBAIC01NDksNiArNTQ5LDggQEAgcHJpdmF0ZToKICAgICBSb290SW5saW5lQm94
KiBjb25zdHJ1Y3RMaW5lKEJpZGlSdW5MaXN0PEJpZGlSdW4+JiwgY29uc3QgTGluZUluZm8mKTsK
ICAgICB2b2lkIHNldE1hcmdpbnNGb3JSdWJ5UnVuKEJpZGlSdW4qLCBSZW5kZXJSdWJ5UnVuJiwg
UmVuZGVyT2JqZWN0KiwgY29uc3QgTGluZUluZm8mKTsKICAgICB2b2lkIGNvbXB1dGVJbmxpbmVE
aXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gqLCBjb25zdCBMaW5lSW5mbyYs
IEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiB0cmFpbGluZ1NwYWNlUnVuLCBib29sIHJlYWNo
ZWRFbmQsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiwgVmVydGljYWxQb3NpdGlv
bkNhY2hlJiwgV29yZE1lYXN1cmVtZW50cyYpOworICAgIHZvaWQgdXBkYXRlUnVieUZvckp1c3Rp
ZmllZFRleHQoUmVuZGVyUnVieVJ1biYsIEJpZGlSdW4mLCBjb25zdCBWZWN0b3I8dW5zaWduZWQs
IDE2PiYgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywgdW5zaWduZWQmIGV4cGFuc2lvbk9wcG9ydHVu
aXR5Q291bnQsIGZsb2F0JiB0b3RhbExvZ2ljYWxXaWR0aCwgZmxvYXQgYXZhaWxhYmxlTG9naWNh
bFdpZHRoLCBSZW5kZXJPYmplY3QqIHByZXZpb3VzT2JqZWN0LCBjb25zdCBMaW5lSW5mbyYsIHNp
emVfdCYgZXhwYW5zaW9uSW5kZXgpOworICAgIHZvaWQgY29tcHV0ZUV4cGFuc2lvbkZvckp1c3Rp
ZmllZFRleHQoQmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4qIHRyYWlsaW5nU3BhY2VSdW4sIGNv
bnN0IFZlY3Rvcjx1bnNpZ25lZCwgMTY+JiBleHBhbnNpb25PcHBvcnR1bml0aWVzLCB1bnNpZ25l
ZCBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50LCBmbG9hdCB0b3RhbExvZ2ljYWxXaWR0aCwgZmxv
YXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBjb25zdCBMaW5lSW5mbyYpOwogICAgIEJpZGlSdW4q
IGNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JTZWdtZW50KFJvb3RJbmxpbmVCb3gq
LCBjb25zdCBMaW5lSW5mbyYsIEVUZXh0QWxpZ24sIGZsb2F0JiBsb2dpY2FsTGVmdCwKICAgICAg
ICAgZmxvYXQmIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgQmlkaVJ1biogZmlyc3RSdW4sIEJpZGlS
dW4qIHRyYWlsaW5nU3BhY2VSdW4sIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiB0
ZXh0Qm94RGF0YU1hcCwgVmVydGljYWxQb3NpdGlvbkNhY2hlJiwgV29yZE1lYXN1cmVtZW50cyYp
OwogICAgIHZvaWQgY29tcHV0ZUJsb2NrRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5s
aW5lQm94KiwgQmlkaVJ1biosIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiwgVmVy
dGljYWxQb3NpdGlvbkNhY2hlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IGZjMmE5ZGQzNjU4ZGEyYTc3ODk0MmI1ZGRl
MzM2ZWI3NzRhOWEwZWQuLjdmOGI4NTZhYmVmZGIwYTgzNjQ5ZTU2YTIzN2E5ZGUwMmFmZDU1ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCkBAIC01NDUsNyArNTQ1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldExvZ2ljYWxX
aWR0aEZvclRleHRSdW4oUm9vdElubGluZUJveCogbGluZUJveCwgQmlkaVJ1biogcnUKICAgICB9
CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dChSZW5k
ZXJSdWJ5UnVuJiBydWJ5UnVuLCBCaWRpUnVuJiByLCBjb25zdCBWZWN0b3I8dW5zaWduZWQsIDE2
PiYgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywgdW5zaWduZWQmIGV4cGFuc2lvbk9wcG9ydHVuaXR5
Q291bnQsIGZsb2F0JiB0b3RhbExvZ2ljYWxXaWR0aCwgZmxvYXQgYXZhaWxhYmxlTG9naWNhbFdp
ZHRoLCBzaXplX3QmIGkpCit2b2lkIFJlbmRlckJsb2NrRmxvdzo6dXBkYXRlUnVieUZvckp1c3Rp
ZmllZFRleHQoUmVuZGVyUnVieVJ1biYgcnVieVJ1biwgQmlkaVJ1biYgciwgY29uc3QgVmVjdG9y
PHVuc2lnbmVkLCAxNj4mIGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMsIHVuc2lnbmVkJiBleHBhbnNp
b25PcHBvcnR1bml0eUNvdW50LCBmbG9hdCYgdG90YWxMb2dpY2FsV2lkdGgsIGZsb2F0IGF2YWls
YWJsZUxvZ2ljYWxXaWR0aCwgUmVuZGVyT2JqZWN0KiBwcmV2aW91c09iamVjdCwgY29uc3QgTGlu
ZUluZm8mIGxpbmVJbmZvLCBzaXplX3QmIGkpCiB7CiAgICAgaWYgKCFydWJ5UnVuLnJ1YnlCYXNl
KCkgfHwgIXJ1YnlSdW4ucnVieUJhc2UoKS0+Zmlyc3RSb290Qm94KCkgfHwgcnVieVJ1bi5ydWJ5
QmFzZSgpLT5maXJzdFJvb3RCb3goKS0+bmV4dFJvb3RCb3goKSB8fCAhci5yZW5kZXJlcigpLnN0
eWxlKCkuY29sbGFwc2VXaGl0ZVNwYWNlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU2OCwyNiAr
NTY4LDQ3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVSdWJ5Rm9ySnVzdGlmaWVkVGV4dChS
ZW5kZXJSdWJ5UnVuJiBydWJ5UnVuLCBCaWRpUnVuJiByCiAKICAgICBpZiAodG90YWxPcHBvcnR1
bml0aWVzSW5SdW4pIHsKICAgICAgICAgQVNTRVJUKCFydWJ5UnVuLmhhc092ZXJyaWRlV2lkdGgo
KSk7Ci0gICAgICAgIHJ1YnlSdW4uc2V0T3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKHJ1YnlS
dW4ubG9naWNhbFdpZHRoKCkgKyB0b3RhbEV4cGFuc2lvbik7CisgICAgICAgIGZsb2F0IG5ld0Jh
c2VXaWR0aCA9IHJ1YnlSdW4ubG9naWNhbFdpZHRoKCkgKyB0b3RhbEV4cGFuc2lvbiArIG1hcmdp
blN0YXJ0Rm9yQ2hpbGQocnVieVJ1bikgKyBtYXJnaW5FbmRGb3JDaGlsZChydWJ5UnVuKTsKKyAg
ICAgICAgZmxvYXQgbmV3UnVieVJ1bldpZHRoID0gcnVieVJ1bi5sb2dpY2FsV2lkdGgoKSArIHRv
dGFsRXhwYW5zaW9uOworICAgICAgICBydWJ5QmFzZS5zZXRJbml0aWFsT2Zmc2V0KChuZXdSdWJ5
UnVuV2lkdGggLSBuZXdCYXNlV2lkdGgpIC8gMik7CisgICAgICAgIHJ1YnlSdW4uc2V0T3ZlcnJp
ZGVMb2dpY2FsQ29udGVudFdpZHRoKG5ld1J1YnlSdW5XaWR0aCk7CiAgICAgICAgIHJ1YnlSdW4u
c2V0TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgcm9vdEJveC5tYXJrRGlydHko
KTsKKyAgICAgICAgaWYgKFJlbmRlclJ1YnlUZXh0KiBydWJ5VGV4dCA9IHJ1YnlSdW4ucnVieVRl
eHQoKSkgeworICAgICAgICAgICAgaWYgKFJvb3RJbmxpbmVCb3gqIHRleHRSb290Qm94ID0gcnVi
eVRleHQtPmZpcnN0Um9vdEJveCgpKQorICAgICAgICAgICAgICAgIHRleHRSb290Qm94LT5tYXJr
RGlydHkoKTsKKyAgICAgICAgfQogICAgICAgICBydWJ5UnVuLmxheW91dEJsb2NrKHRydWUpOwog
ICAgICAgICBydWJ5UnVuLmNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKCk7Ci0gICAg
ICAgIHIuYm94KCktPnNldEV4cGFuc2lvbih0b3RhbEV4cGFuc2lvbik7CisgICAgICAgIHNldE1h
cmdpbnNGb3JSdWJ5UnVuKCZyLCBydWJ5UnVuLCBwcmV2aW91c09iamVjdCwgbGluZUluZm8pOyAv
LyBFeHBhbmRpbmcgdGhlIGJhc2UgbWlnaHQgbWVhbiB0aGVyZSdzIGxlc3Mgb2YgYSBuZWVkIGZv
ciBvdmVyaGFuZworICAgICAgICByLmJveCgpLT5zZXRFeHBhbnNpb24obmV3UnVieVJ1bldpZHRo
IC0gci5ib3goKS0+bG9naWNhbFdpZHRoKCkpOworCisgICAgICAgIC8vIFRoaXMgcmVsYXlvdXQg
Y2F1c2VkIHRoZSBzaXplIG9mIHRoZSBSZW5kZXJSdWJ5VGV4dCBhbmQgdGhlIFJlbmRlclJ1YnlC
YXNlIHRvIGNoYW5nZSwgZGVwZW5kZW50IG9uIHRoZSBsaW5lJ3MgY3VycmVudCBleHBhbnNpb24u
IE5leHQgdGltZSB3ZSByZWxheW91dCB0aGUKKyAgICAgICAgLy8gUmVuZGVyUnVieVJ1biwgbWFr
ZSBzdXJlIHRoYXQgd2UgcmVsYXlvdXQgdGhlIFJlbmRlclJ1YnlCYXNlIGFuZCBSZW5kZXJSdWJ5
VGV4dCBhcyB3ZWxsLgorICAgICAgICBydWJ5QmFzZS5zZXROZWVkc0xheW91dChNYXJrT25seVRo
aXMpOworICAgICAgICBpZiAoUmVuZGVyUnVieVRleHQqIHJ1YnlUZXh0ID0gcnVieVJ1bi5ydWJ5
VGV4dCgpKQorICAgICAgICAgICAgcnVieVRleHQtPnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7CisgICAgICAgIGlmIChydWJ5QmFzZS5sYXN0TGVhZkNoaWxkKCkgJiYgaXM8UmVuZGVyVGV4
dD4ocnVieUJhc2UubGFzdExlYWZDaGlsZCgpKSAmJiByLmJveCgpICYmIHIuYm94KCktPm5leHRM
ZWFmQ2hpbGQoKSAmJiAhci5ib3goKS0+bmV4dExlYWZDaGlsZCgpLT5pc0xpbmVCcmVhaygpKQor
ICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyVGV4dD4ocnVieUJhc2UubGFzdExlYWZDaGlsZCgp
KS0+c2V0Q29udGVudElzS25vd25Ub0ZvbGxvdyh0cnVlKTsKIAogICAgICAgICB0b3RhbExvZ2lj
YWxXaWR0aCArPSB0b3RhbEV4cGFuc2lvbjsKICAgICAgICAgZXhwYW5zaW9uT3Bwb3J0dW5pdHlD
b3VudCAtPSB0b3RhbE9wcG9ydHVuaXRpZXNJblJ1bjsKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxp
bmUgdm9pZCBjb21wdXRlRXhwYW5zaW9uRm9ySnVzdGlmaWVkVGV4dChCaWRpUnVuKiBmaXJzdFJ1
biwgQmlkaVJ1biogdHJhaWxpbmdTcGFjZVJ1biwgY29uc3QgVmVjdG9yPHVuc2lnbmVkLCAxNj4m
IGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMsIHVuc2lnbmVkIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291
bnQsIGZsb2F0IHRvdGFsTG9naWNhbFdpZHRoLCBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGgp
Cit2b2lkIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZUV4cGFuc2lvbkZvckp1c3RpZmllZFRleHQo
QmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4qIHRyYWlsaW5nU3BhY2VSdW4sIGNvbnN0IFZlY3Rv
cjx1bnNpZ25lZCwgMTY+JiBleHBhbnNpb25PcHBvcnR1bml0aWVzLCB1bnNpZ25lZCBleHBhbnNp
b25PcHBvcnR1bml0eUNvdW50LCBmbG9hdCB0b3RhbExvZ2ljYWxXaWR0aCwgZmxvYXQgYXZhaWxh
YmxlTG9naWNhbFdpZHRoLCBjb25zdCBMaW5lSW5mbyYgbGluZUluZm8pCiB7CiAgICAgaWYgKCFl
eHBhbnNpb25PcHBvcnR1bml0eUNvdW50IHx8IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCA8PSB0b3Rh
bExvZ2ljYWxXaWR0aCkKICAgICAgICAgcmV0dXJuOwogCisgICAgUmVuZGVyT2JqZWN0KiBwcmV2
aW91c09iamVjdCA9IG51bGxwdHI7CisKICAgICBzaXplX3QgaSA9IDA7CiAgICAgZm9yIChCaWRp
UnVuKiBydW4gPSBmaXJzdFJ1bjsgcnVuOyBydW4gPSBydW4tPm5leHQoKSkgewotICAgICAgICBp
ZiAoIXJ1bi0+Ym94KCkgfHwgcnVuID09IHRyYWlsaW5nU3BhY2VSdW4pCisgICAgICAgIGlmICgh
cnVuLT5ib3goKSB8fCBydW4gPT0gdHJhaWxpbmdTcGFjZVJ1bikgeworICAgICAgICAgICAgcHJl
dmlvdXNPYmplY3QgPSAmcnVuLT5yZW5kZXJlcigpOwogICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmIChpczxSZW5kZXJUZXh0PihydW4tPnJlbmRl
cmVyKCkpKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBvcHBvcnR1bml0aWVzSW5SdW4gPSBleHBh
bnNpb25PcHBvcnR1bml0aWVzW2krK107CkBAIC02MDMsNyArNjI0LDkgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIGNvbXB1dGVFeHBhbnNpb25Gb3JKdXN0aWZpZWRUZXh0KEJpZGlSdW4qIGZpcnN0UnVu
LCBCaWRpUnVuKgogICAgICAgICAgICAgfQogICAgICAgICAgICAgZXhwYW5zaW9uT3Bwb3J0dW5p
dHlDb3VudCAtPSBvcHBvcnR1bml0aWVzSW5SdW47CiAgICAgICAgIH0gZWxzZSBpZiAoaXM8UmVu
ZGVyUnVieVJ1bj4ocnVuLT5yZW5kZXJlcigpKSkKLSAgICAgICAgICAgIHVwZGF0ZVJ1YnlGb3JK
dXN0aWZpZWRUZXh0KGRvd25jYXN0PFJlbmRlclJ1YnlSdW4+KHJ1bi0+cmVuZGVyZXIoKSksICpy
dW4sIGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMsIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQsIHRv
dGFsTG9naWNhbFdpZHRoLCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGkpOworICAgICAgICAgICAg
dXBkYXRlUnVieUZvckp1c3RpZmllZFRleHQoZG93bmNhc3Q8UmVuZGVyUnVieVJ1bj4ocnVuLT5y
ZW5kZXJlcigpKSwgKnJ1biwgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywgZXhwYW5zaW9uT3Bwb3J0
dW5pdHlDb3VudCwgdG90YWxMb2dpY2FsV2lkdGgsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgcHJl
dmlvdXNPYmplY3QsIGxpbmVJbmZvLCBpKTsKKworICAgICAgICBwcmV2aW91c09iamVjdCA9ICZy
dW4tPnJlbmRlcmVyKCk7CiAKICAgICAgICAgaWYgKCFleHBhbnNpb25PcHBvcnR1bml0eUNvdW50
KQogICAgICAgICAgICAgYnJlYWs7CkBAIC03MDQsNyArNzI3LDcgQEAgQmlkaVJ1biogUmVuZGVy
QmxvY2tGbG93Ojpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yU2VnbWVudChSb290
SW5saW5lQm8KICAgICBib29sIG5lZWRzV29yZFNwYWNpbmcgPSBmYWxzZTsKICAgICBmbG9hdCB0
b3RhbExvZ2ljYWxXaWR0aCA9IGxpbmVCb3gtPmdldEZsb3dTcGFjaW5nTG9naWNhbFdpZHRoKCk7
CiAgICAgdW5zaWduZWQgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCA9IDA7Ci0gICAgYm9vbCBp
c0FmdGVyRXhwYW5zaW9uID0gdHJ1ZTsKKyAgICBib29sIGlzQWZ0ZXJFeHBhbnNpb24gPSBpczxS
ZW5kZXJSdWJ5QmFzZT4oKnRoaXMpID8gZG93bmNhc3Q8UmVuZGVyUnVieUJhc2U+KCp0aGlzKS5p
c0FmdGVyRXhwYW5zaW9uKCkgOiB0cnVlOwogICAgIFZlY3Rvcjx1bnNpZ25lZCwgMTY+IGV4cGFu
c2lvbk9wcG9ydHVuaXRpZXM7CiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51
bGxwdHI7CiAKQEAgLTczNyw2ICs3NjAsNyBAQCBCaWRpUnVuKiBSZW5kZXJCbG9ja0Zsb3c6OmNv
bXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JTZWdtZW50KFJvb3RJbmxpbmVCbwogICAg
ICAgICAgICAgaWYgKGlzPFJlbmRlclJ1YnlSdW4+KHJ1bi0+cmVuZGVyZXIoKSkgJiYgdGV4dEFs
aWduID09IEpVU1RJRlkgJiYgcnVuICE9IHRyYWlsaW5nU3BhY2VSdW4gJiYgZG93bmNhc3Q8UmVu
ZGVyUnVieVJ1bj4ocnVuLT5yZW5kZXJlcigpKS5ydWJ5QmFzZSgpKSB7CiAgICAgICAgICAgICAg
ICAgYXV0byogcnVieUJhc2UgPSBkb3duY2FzdDxSZW5kZXJSdWJ5UnVuPihydW4tPnJlbmRlcmVy
KCkpLnJ1YnlCYXNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHJ1YnlCYXNlLT5maXJzdFJvb3RC
b3goKSAmJiAhcnVieUJhc2UtPmZpcnN0Um9vdEJveCgpLT5uZXh0Um9vdEJveCgpICYmIHJ1bi0+
cmVuZGVyZXIoKS5zdHlsZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgpKSB7CisgICAgICAgICAgICAg
ICAgICAgIHJ1YnlCYXNlLT5zZXRJc0FmdGVyRXhwYW5zaW9uKGlzQWZ0ZXJFeHBhbnNpb24pOwog
ICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8qIGxlYWZDaGlsZCA9IHJ1YnlCYXNlLT5maXJz
dFJvb3RCb3goKS0+Zmlyc3RMZWFmQ2hpbGQoKTsgbGVhZkNoaWxkOyBsZWFmQ2hpbGQgPSBsZWFm
Q2hpbGQtPm5leHRMZWFmQ2hpbGQoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFp
czxJbmxpbmVUZXh0Qm94PigqbGVhZkNoaWxkKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTc2OCwxMyArNzkyLDI4IEBAIEJpZGlSdW4qIFJlbmRlckJsb2NrRmxv
dzo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvclNlZ21lbnQoUm9vdElubGluZUJv
CiAgICAgfQogCiAgICAgaWYgKGlzQWZ0ZXJFeHBhbnNpb24gJiYgIWV4cGFuc2lvbk9wcG9ydHVu
aXRpZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGV4cGFuc2lvbk9wcG9ydHVuaXRpZXMubGFzdCgp
LS07Ci0gICAgICAgIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQtLTsKKyAgICAgICAgYm9vbCBz
aG91bGRTaGFyZUV4cGFuc2lvbnNXaXRoQ29udGFpbmluZ0xpbmUgPSB0cnVlOworICAgICAgICBp
ZiAoaXM8UmVuZGVyUnVieUJhc2U+KCp0aGlzKSkgeworICAgICAgICAgICAgaWYgKFJlbmRlclJ1
YnlSdW4qIHJ1YnlSdW4gPSBkb3duY2FzdDxSZW5kZXJSdWJ5QmFzZT4oKnRoaXMpLnJ1YnlSdW4o
KSkgeworICAgICAgICAgICAgICAgIGlmIChSZW5kZXJFbGVtZW50KiBydWJ5RWxlbWVudCA9IHJ1
YnlSdW4tPnBhcmVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChydWJ5RWxlbWVudC0+
c3R5bGUoKS5kaXNwbGF5KCkgPT0gSU5MSU5FKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoUmVuZGVyQmxvY2sqIGNvbnRhaW5pbmdCbG9jayA9IHJ1YnlFbGVtZW50LT5jb250YWluaW5n
QmxvY2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5nQmxv
Y2stPnN0eWxlKCkudGV4dEFsaWduKCkgPT0gSlVTVElGWSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkU2hhcmVFeHBhbnNpb25zV2l0aENvbnRhaW5pbmdMaW5lID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNo
b3VsZFNoYXJlRXhwYW5zaW9uc1dpdGhDb250YWluaW5nTGluZSkgeworICAgICAgICAgICAgZXhw
YW5zaW9uT3Bwb3J0dW5pdGllcy5sYXN0KCktLTsKKyAgICAgICAgICAgIGV4cGFuc2lvbk9wcG9y
dHVuaXR5Q291bnQtLTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHVwZGF0ZUxvZ2ljYWxXaWR0
aEZvckFsaWdubWVudCh0ZXh0QWxpZ24sIGxpbmVCb3gsIHRyYWlsaW5nU3BhY2VSdW4sIGxvZ2lj
YWxMZWZ0LCB0b3RhbExvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBleHBhbnNp
b25PcHBvcnR1bml0eUNvdW50KTsKIAotICAgIGNvbXB1dGVFeHBhbnNpb25Gb3JKdXN0aWZpZWRU
ZXh0KGZpcnN0UnVuLCB0cmFpbGluZ1NwYWNlUnVuLCBleHBhbnNpb25PcHBvcnR1bml0aWVzLCBl
eHBhbnNpb25PcHBvcnR1bml0eUNvdW50LCB0b3RhbExvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlTG9n
aWNhbFdpZHRoKTsKKyAgICBjb21wdXRlRXhwYW5zaW9uRm9ySnVzdGlmaWVkVGV4dChmaXJzdFJ1
biwgdHJhaWxpbmdTcGFjZVJ1biwgZXhwYW5zaW9uT3Bwb3J0dW5pdGllcywgZXhwYW5zaW9uT3Bw
b3J0dW5pdHlDb3VudCwgdG90YWxMb2dpY2FsV2lkdGgsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwg
bGluZUluZm8pOwogCiAgICAgcmV0dXJuIHJ1bjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuY3BwCmluZGV4IDlhN2Y4ZTE4MTQ3MTU1MjI0YWVmMDgwYzhiMDUx
N2Q5ODcxMmYwYTIuLjIxOTRjMzA4NTZlODE0ODEyNTUxMzgxNjBiNDAzMmY3NTQ3Y2Y3NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcApAQCAtMzgsNiAr
MzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclJ1YnlCYXNlOjpSZW5kZXJSdWJ5
QmFzZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKICAgICA6
IFJlbmRlckJsb2NrRmxvdyhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKKyAgICAsIG1faW5p
dGlhbE9mZnNldCgwKQorICAgICwgbV9pc0FmdGVyRXhwYW5zaW9uKHRydWUpCiB7CiAgICAgc2V0
SW5saW5lKGZhbHNlKTsKIH0KQEAgLTE0MSw2ICsxNDMsMTIgQEAgRVRleHRBbGlnbiBSZW5kZXJS
dWJ5QmFzZTo6dGV4dEFsaWdubWVudEZvckxpbmUoYm9vbCAvKiBlbmRzV2l0aFNvZnRCcmVhayAq
LykgY28KIAogdm9pZCBSZW5kZXJSdWJ5QmFzZTo6YWRqdXN0SW5saW5lRGlyZWN0aW9uTGluZUJv
dW5kcyhpbnQgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCwgZmxvYXQmIGxvZ2ljYWxMZWZ0LCBm
bG9hdCYgbG9naWNhbFdpZHRoKSBjb25zdAogeworICAgIGlmIChydWJ5UnVuKCktPmhhc092ZXJy
aWRlV2lkdGgoKSAmJiBmaXJzdFJvb3RCb3goKSAmJiAhZmlyc3RSb290Qm94KCktPm5leHRSb290
Qm94KCkpIHsKKyAgICAgICAgbG9naWNhbExlZnQgKz0gbV9pbml0aWFsT2Zmc2V0OworICAgICAg
ICBsb2dpY2FsV2lkdGggLT0gMiAqIG1faW5pdGlhbE9mZnNldDsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIExheW91dFVuaXQgbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gcnVieVJ1
bigpICYmIHJ1YnlSdW4oKS0+aGFzT3ZlcnJpZGVXaWR0aCgpID8gcnVieVJ1bigpLT5vdmVycmlk
ZUxvZ2ljYWxDb250ZW50V2lkdGgoKSA6IHRoaXMtPm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgp
OwogICAgIGlmIChtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPj0gbG9naWNhbFdpZHRoKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UnVieUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oCmlu
ZGV4IDJhNjJhZjZlOTZiZDY3YmM5MDczNTE2NTA5ZTFhMGFkZDYxN2IyMTcuLmI0YzczMDBlOWEy
MjM4NWUzMmQ5ZTg2MTYwOGQyZDg2OTM1ODZhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSdWJ5QmFzZS5oCkBAIC00Niw2ICs0NiwxNyBAQCBwdWJsaWM6CiAgICAgCiAgICAg
UmVuZGVyUnVieVJ1biogcnVieVJ1bigpIGNvbnN0OwogCisgICAgdm9pZCBzZXRJc0FmdGVyRXhw
YW5zaW9uKGJvb2wgaXNBZnRlckV4cGFuc2lvbikgeyBtX2lzQWZ0ZXJFeHBhbnNpb24gPSBpc0Fm
dGVyRXhwYW5zaW9uOyB9CisgICAgYm9vbCBpc0FmdGVyRXhwYW5zaW9uKCkgeyByZXR1cm4gbV9p
c0FmdGVyRXhwYW5zaW9uOyB9CisKKyAgICB2b2lkIHNldEluaXRpYWxPZmZzZXQoZmxvYXQgaW5p
dGlhbE9mZnNldCkgeyBtX2luaXRpYWxPZmZzZXQgPSBpbml0aWFsT2Zmc2V0OyB9CisKKyAgICB2
b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1faW5pdGlhbE9mZnNldCA9IDA7CisgICAgICAg
IG1faXNBZnRlckV4cGFuc2lvbiA9IHRydWU7CisgICAgfQorCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBpc1J1YnlCYXNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBS
ZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNTksNiArNzAsOSBAQCBwcml2YXRlOgog
CiAgICAgLy8gQWxsb3cgUmVuZGVyUnVieVJ1biB0byBtYW5pcHVsYXRlIHRoZSBjaGlsZHJlbiB3
aXRoaW4gcnVieSBiYXNlcy4KICAgICBmcmllbmQgY2xhc3MgUmVuZGVyUnVieVJ1bjsKKworICAg
IGZsb2F0IG1faW5pdGlhbE9mZnNldDsKKyAgICB1bnNpZ25lZCBtX2lzQWZ0ZXJFeHBhbnNpb24g
OiAxOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJ1YnlSdW4uY3BwCmluZGV4IDIwNWViNjA5ODU1YzhhMmM3YzIzYzZlMGIyZWI3
NjM3ZTI1NGEzYjkuLmVmNDVhN2Y4OTYyZjA4NDFmZjFkMmI2MzJhMGE3MzE2ZTliOGE4YWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAKQEAgLTIzMCw2ICsy
MzAsOSBAQCBSZW5kZXJPYmplY3QqIFJlbmRlclJ1YnlSdW46OmxheW91dFNwZWNpYWxFeGNsdWRl
ZENoaWxkKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKIAogdm9pZCBSZW5kZXJSdWJ5UnVuOjpsYXlv
dXQoKQogeworICAgIGlmIChSZW5kZXJSdWJ5QmFzZSogYmFzZSA9IHJ1YnlCYXNlKCkpCisgICAg
ICAgIGJhc2UtPnJlc2V0KCk7CisKICAgICBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dCgpOwogICAg
IAogICAgIFJlbmRlclJ1YnlUZXh0KiBydCA9IHJ1YnlUZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggNDA0ODQ3YjJmZGZmNzBlOGQ0MmNiYzlmY2FkMmFm
MDBlNjE3ZDA2NS4uMGIyM2JmNDFkYTk5MDE2ZTAwNmI4ZmU5NDllYjI5YjI3YmQ0Y2VhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTY0LDYgKzE2NCw3IEBA
IGlubGluZSBSZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5vZGUmIG5vZGUsIGNvbnN0IFN0cmluZyYg
dGV4dCkKICAgICAsIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzKGZh
bHNlKQogICAgICwgbV91c2VCYWNrc2xhc2hBc1llblN5bWJvbChmYWxzZSkKICAgICAsIG1fb3Jp
Z2luYWxUZXh0RGlmZmVyc0Zyb21SZW5kZXJlZChmYWxzZSkKKyAgICAsIG1fY29udGVudElzS25v
d25Ub0ZvbGxvdyhmYWxzZSkKICNpZiBFTkFCTEUoSU9TX1RFWFRfQVVUT1NJWklORykKICAgICAs
IG1fY2FuZGlkYXRlQ29tcHV0ZWRUZXh0U2l6ZSgwKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuaAppbmRleCBmZmVmOTNkMDY1YTlmNGFkMGQ2NWUyODliYzA1NDc4MTgx
N2E5NzJiLi42NTliMWMxMjc0ZmYzNTUzNWJiODViZDZhMjdiMDAxYzQ5YzlmMWIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKQEAgLTE2Niw2ICsxNjYsOSBAQCBwdWJsaWM6
CiAKICAgICBMYXlvdXRVbml0IHRvcE9mRmlyc3RUZXh0KCkgY29uc3Q7CiAKKyAgICBib29sIGNv
bnRlbnRJc0tub3duVG9Gb2xsb3coKSB7IHJldHVybiBtX2NvbnRlbnRJc0tub3duVG9Gb2xsb3c7
IH0KKyAgICB2b2lkIHNldENvbnRlbnRJc0tub3duVG9Gb2xsb3coYm9vbCBjb250ZW50SXNLbm93
blRvRm9sbG93KSB7IG1fY29udGVudElzS25vd25Ub0ZvbGxvdyA9IGNvbnRlbnRJc0tub3duVG9G
b2xsb3c7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocyhmbG9hdCBsZWFkV2lkdGgpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKQEAgLTIwMSwyMSArMjA0LDIyIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBub2RlKCkgY29uc3QgPSBkZWxldGU7CiAKICAgICAvLyBXZSBwdXQgdGhlIGJpdGZpZWxk
IGZpcnN0IHRvIG1pbmltaXplIHBhZGRpbmcgb24gNjQtYml0LgotICAgIGJvb2wgbV9oYXNCcmVh
a2FibGVDaGFyIDogMTsgLy8gV2hldGhlciBvciBub3Qgd2UgY2FuIGJlIGJyb2tlbiBpbnRvIG11
bHRpcGxlIGxpbmVzLgotICAgIGJvb2wgbV9oYXNCcmVhayA6IDE7IC8vIFdoZXRoZXIgb3Igbm90
IHdlIGhhdmUgYSBoYXJkIGJyZWFrIChlLmcuLCA8cHJlPiB3aXRoICdcbicpLgotICAgIGJvb2wg
bV9oYXNUYWIgOiAxOyAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBoYXZlIGEgdmFyaWFibGUgd2lkdGgg
dGFiIGNoYXJhY3RlciAoZS5nLiwgPHByZT4gd2l0aCAnXHQnKS4KLSAgICBib29sIG1faGFzQmVn
aW5XUyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IHdlIGJlZ2luIHdpdGggV1MgKG9ubHkgdHJ1ZSBp
ZiB3ZSBhcmVuJ3QgcHJlKQotICAgIGJvb2wgbV9oYXNFbmRXUyA6IDE7IC8vIFdoZXRoZXIgb3Ig
bm90IHdlIGVuZCB3aXRoIFdTIChvbmx5IHRydWUgaWYgd2UgYXJlbid0IHByZSkKLSAgICBib29s
IG1fbGluZXNEaXJ0eSA6IDE7IC8vIFRoaXMgYml0IGluZGljYXRlcyB0aGF0IHRoZSB0ZXh0IHJ1
biBoYXMgYWxyZWFkeSBkaXJ0aWVkIHNwZWNpZmljCisgICAgdW5zaWduZWQgbV9oYXNCcmVha2Fi
bGVDaGFyIDogMTsgLy8gV2hldGhlciBvciBub3Qgd2UgY2FuIGJlIGJyb2tlbiBpbnRvIG11bHRp
cGxlIGxpbmVzLgorICAgIHVuc2lnbmVkIG1faGFzQnJlYWsgOiAxOyAvLyBXaGV0aGVyIG9yIG5v
dCB3ZSBoYXZlIGEgaGFyZCBicmVhayAoZS5nLiwgPHByZT4gd2l0aCAnXG4nKS4KKyAgICB1bnNp
Z25lZCBtX2hhc1RhYiA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYSB2YXJpYWJsZSB3
aWR0aCB0YWIgY2hhcmFjdGVyIChlLmcuLCA8cHJlPiB3aXRoICdcdCcpLgorICAgIHVuc2lnbmVk
IG1faGFzQmVnaW5XUyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IHdlIGJlZ2luIHdpdGggV1MgKG9u
bHkgdHJ1ZSBpZiB3ZSBhcmVuJ3QgcHJlKQorICAgIHVuc2lnbmVkIG1faGFzRW5kV1MgOiAxOyAv
LyBXaGV0aGVyIG9yIG5vdCB3ZSBlbmQgd2l0aCBXUyAob25seSB0cnVlIGlmIHdlIGFyZW4ndCBw
cmUpCisgICAgdW5zaWduZWQgbV9saW5lc0RpcnR5IDogMTsgLy8gVGhpcyBiaXQgaW5kaWNhdGVz
IHRoYXQgdGhlIHRleHQgcnVuIGhhcyBhbHJlYWR5IGRpcnRpZWQgc3BlY2lmaWMKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIGxpbmUgYm94ZXMsIGFuZCB0aGlzIGhpbnQgd2lsbCBlbmFi
bGUgbGF5b3V0SW5saW5lQ2hpbGRyZW4gdG8gYXZvaWQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIGp1c3QgZGlydHlpbmcgZXZlcnl0aGluZyB3aGVuIGNoYXJhY3RlciBkYXRhIGlzIG1v
ZGlmaWVkIChlLmcuLCBhcHBlbmRlZC9pbnNlcnRlZAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gb3IgcmVtb3ZlZCkuCi0gICAgYm9vbCBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0IDogMTsK
LSAgICBib29sIG1faXNBbGxBU0NJSSA6IDE7Ci0gICAgYm9vbCBtX2NhblVzZVNpbXBsZUZvbnRD
b2RlUGF0aCA6IDE7Ci0gICAgbXV0YWJsZSBib29sIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5k
Tm9GYWxsYmFja0ZvbnRzIDogMTsKLSAgICBib29sIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wg
OiAxOwotICAgIGJvb2wgbV9vcmlnaW5hbFRleHREaWZmZXJzRnJvbVJlbmRlcmVkIDogMTsKKyAg
ICB1bnNpZ25lZCBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0IDogMTsKKyAgICB1bnNpZ25lZCBtX2lz
QWxsQVNDSUkgOiAxOworICAgIHVuc2lnbmVkIG1fY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoIDog
MTsKKyAgICBtdXRhYmxlIHVuc2lnbmVkIG1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxs
YmFja0ZvbnRzIDogMTsKKyAgICB1bnNpZ25lZCBtX3VzZUJhY2tzbGFzaEFzWWVuU3ltYm9sIDog
MTsKKyAgICB1bnNpZ25lZCBtX29yaWdpbmFsVGV4dERpZmZlcnNGcm9tUmVuZGVyZWQgOiAxOwor
ICAgIHVuc2lnbmVkIG1fY29udGVudElzS25vd25Ub0ZvbGxvdyA6IDE7CiAKICNpZiBFTkFCTEUo
SU9TX1RFWFRfQVVUT1NJWklORykKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkg
YmUgcGFydCBvZiB0aGUgdGV4dCBzaXppbmcgc3RydWN0dXJlcyBpbiBEb2N1bWVudCBpbnN0ZWFk
LiBUaGF0IHdvdWxkIHNhdmUgc29tZSBtZW1vcnkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWY0NWY4YjgxNWYwYmNmNjlh
ODE5YzEzODVhOTYwM2VmNTZjODhkYi4uYTU5NGM4MDViMjQxNjY3ZDQ5ZGYzOWUzMmU2MWUwZTVk
NDQzMjYyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEyLTE1ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPGxpdGhlcnVtQGdtYWlsLmNvbT4KKworICAgICAgICBSdWJ5IGRvZXMgbm90IHByZXNl
cnZlIGV4cGFuc2lvbiBvcHBvcnR1bml0aWVzIGZyb20gZW5jbG9zaW5nIGNvbnRleHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTYxOAorCisgICAg
ICAgIFVwZGF0aW5nIHRlc3QgZm9yIG5ldyBleHBhbnNpb24gbG9naWMuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1qdXN0
aWZpY2F0aW9uLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9ydWJ5L3J1YnktanVzdGlm
aWNhdGlvbi5odG1sOgorCiAyMDE0LTEyLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgRGVsZXRlIE5vdGF0aW9uIGJlY2F1c2Ugd2UgZG9uJ3Qg
dXNlIGl0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1qdXN0aWZpY2F0
aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1qdXN0aWZpY2F0
aW9uLWV4cGVjdGVkLmh0bWwKaW5kZXggODQ0YWJlZjdlNGIzZDRjZmRkNDJkOTdmZTE3ZjJkMTRk
ZDEwMThlNC4uNmE0MWM5MWQ2ZTgwNmEyYWI5ZWY4ZTY2Yzg5NWM3NGUwZDhjZjgyYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktanVzdGlmaWNhdGlvbi1leHBlY3RlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWp1c3RpZmljYXRpb24tZXhwZWN0
ZWQuaHRtbApAQCAtOSw2ICs5LDEyIEBAIGFiY2RlZmcgYWJjZGVmZyBhYmNkZWZnIG1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tCiA8ZGl2Pgog
YWJjZGVmZyA8cnVieT5hYmNkZWZnPHJ0PjxzcGFuIHN0eWxlPSJjb2xvcjogdHJhbnNwYXJlbnQ7
Ij5hPC9zcGFuPjwvcnVieT4gYWJjZGVmZyBtbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0KIDwvZGl2PgorPGRpdj4KK2FiY2RlZmcg
PHJ1Ynk+YTxydD48c3BhbiBzdHlsZT0iY29sb3I6IHRyYW5zcGFyZW50OyI+YTwvc3Bhbj48L3J1
Ynk+IGFiY2RlZmcgbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tCis8L2Rpdj4KKzxkaXY+CithPHNwYW4gc3R5bGU9ImJhY2tncm91
bmQ6IGdyZWVuOyI+JiN4Njg1Yzs8L3NwYW4+YiBtbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0KKzwvZGl2PgogPC9kaXY+CiA8ZGl2
IHN0eWxlPSJmb250LWZhbWlseTogQWhlbTsgZm9udC1zaXplOiAxNnB4OyI+CiA8cnVieT5hYmNk
ZWZnJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7YWJjZGVmZzxydD5hPC9y
dWJ5PiBtbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1qdXN0aWZpY2F0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1qdXN0aWZpY2F0aW9uLmh0bWwKaW5kZXggOGEw
ZDMyMjRjOTFlNDA0M2Y4NjJlMjIzNGY2ZTgxNDMwNjg5MzNjZC4uZmI4ZWU5MWExZjM4ZTUwYjYx
MDk3OTI5NjU2N2JjYjczOWE3ZTlmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5
L3J1YnktanVzdGlmaWNhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5
LWp1c3RpZmljYXRpb24uaHRtbApAQCAtOSw2ICs5LDEyIEBAIFRoaXMgdGVzdCBtYWtlcyBzdXJl
IHRoYXQgcnVieSBpbnNpZGUgdGV4dC1hbGlnbjoganVzdGlmeSBoYXMgaXRzIGNvbnRlbnRzIGp1
c3RpCiA8ZGl2PgogPHJ1Ynk+YWJjZGVmZyBhYmNkZWZnPHJ0PjxzcGFuIHN0eWxlPSJjb2xvcjog
dHJhbnNwYXJlbnQ7Ij5hPC9zcGFuPjwvcnVieT4gYWJjZGVmZyBtbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0KIDwvZGl2PgorPGRp
dj4KK2FiY2RlZmcgPHJ1Ynk+YTxydD48c3BhbiBzdHlsZT0iY29sb3I6IHRyYW5zcGFyZW50OyI+
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE8L3NwYW4+PC9ydWJ5PiBhYmNkZWZnIG1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbQorPC9k
aXY+Cis8ZGl2PgorYTxydWJ5PjxyYiBzdHlsZT0iYmFja2dyb3VuZDogZ3JlZW47Ij4mI3g2ODVj
OzwvcmI+PHJ0PiA8L3J1Ynk+YiBtbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0KKzwvZGl2PgogPGRpdiBzdHlsZT0iZm9udC1mYW1p
bHk6IEFoZW07Ij4KIDxydWJ5PmFiY2RlZmcgYWJjZGVmZzxydD5hPC9ydWJ5PiBtbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tCiA8L2Rpdj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>