<?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>43632</bug_id>
          
          <creation_ts>2010-08-06 11:43:39 -0700</creation_ts>
          <short_desc>Make AX Code use more specific RenderObject subclass types</short_desc>
          <delta_ts>2011-01-22 19:52:11 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>43348</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261375</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 11:43:39 -0700</bug_when>
    <thetext>Make AX Code use more specific RenderObject subclass types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261378</commentid>
    <comment_count>1</comment_count>
      <attachid>63747</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 11:53:40 -0700</bug_when>
    <thetext>Created attachment 63747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261379</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 11:54:21 -0700</bug_when>
    <thetext>This is preparatory work for bug 43348.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261390</commentid>
    <comment_count>3</comment_count>
      <attachid>63747</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-06 12:09:13 -0700</bug_when>
    <thetext>Comment on attachment 63747
Patch

this looks ok to me
r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261522</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 15:20:56 -0700</bug_when>
    <thetext>Committed r64874: &lt;http://trac.webkit.org/changeset/64874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261546</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-06 16:09:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64874 might have broken Qt Windows 32-bit Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/64874
http://trac.webkit.org/changeset/64875</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63747</attachid>
            <date>2010-08-06 11:53:40 -0700</date>
            <delta_ts>2011-01-22 19:52:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43632-20100806115339.patch</filename>
            <type>text/plain</type>
            <size>31810</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzliNmUzNjAyZjM2NDI4MWM3YzRiMGFlYmFkMzcyNTJkYmU3YTlkZC4uZDc0YWI4ZGVhYThlNWIx
NDg4N2FjNjE1M2FhOTc2ODQ3N2Q4OGVjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAxMC0wOC0wNiAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSBBWCBDb2RlIHVzZSBtb3JlIHNwZWNpZmljIFJlbmRl
ck9iamVjdCBzdWJjbGFzcyB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDM2MzIKKworICAgICAgICBObyBmdW5jdGlvbmFsIGNoYW5nZSwgdGh1
cyBubyB0ZXN0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpub2RlSGFzUm9sZSk6CisgICAgICAgICAtIE1ha2UgdGhpcyB0
YWtlIGEgU3RyaW5nIGluc3RlYWQgb2YgQXRvbWljU3RyaW5nLCB0byBhdm9pZAorICAgICAgICAg
ICB0aHJhc2hpbmcgdGhlIGF0b21pYyBzdHJpbmcgaGFzaC4KKyAgICAgICAgICAgSXQgd291bGQg
YmUgYmV0dGVyIHRvIHRha2UgYSBjb25zdCBjaGFyKiBoZXJlLCBleGNlcHQKKyAgICAgICAgICAg
b25lIGNhbGxlciBwYXNzZXMgbnVsbEF0b20uCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9t
UmVuZGVyZXIpOgorICAgICAgICAgLSBTcGxpdCB0aGlzIG91dCBmcm9tIGdldE9yQ3JlYXRlIHRv
IG1ha2UgaXQgc2ltcGxlci4KKyAgICAgICAgIC0gTm8gbG9uZ2VyIG5lZWRzIHRvIGRlYWwgd2l0
aCBzZXR0aW5nIGEgInJlc3VsdCIKKyAgICAgICAgICAgcG9pbnRlciBhbmQgY2FuIGluc3RlYWQg
anVzdCByZXR1cm4uCisgICAgICAgICAtIEkndmUgYWxzbyBtYWRlIHRoaXMgZnVuY3Rpb24gdXNl
IFJlbmRlckJveE1vZGVsT2JqZWN0KgorICAgICAgICAgICB3aGVyZSBhcHByb3ByaWF0ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eUltYWdlTWFwTGluazo6QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluayk6CisgICAgICAgICAt
IEZpeCBzdHlsZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OkFjY2Vzc2li
aWxpdHlNZW51TGlzdCk6CisgICAgICAgICAtIFVzZSBhIG1vcmUgc3BlY2lmaWMgdHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6cmVuZGVyZXIpOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHA6CisgICAgICAgICAtIE5lZWQgUmVu
ZGVyTWVudUxpc3QuaCBzaW5jZSByZW5kZXJlcigpIGlzIGEgUmVuZGVyTWVudUxpc3QqCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlbmRlckxpc3RJdGVtQ29udGFpbmVyRm9yTm9kZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlckJveE1vZGVsT2JqZWN0KToKKyAgICAg
ICAgIC0gTmV3IGhlbHBlciBmdW5jdGlvbiwgc2ltaWxhciB0byBOb2RlOjpyZW5kZXJCb3hNb2Rl
bE9iamVjdCgpCisgICAgICAgIChXZWJDb3JlOjppc0lubGluZVdpdGhDb250aW51YXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNOYXRpdmVJbWFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0F0dGFj
aG1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNN
dWx0aVNlbGVjdGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNSZWFkT25seSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc0ZpZWxkc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmFjdGlvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp3aWRnZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BY2Nlc3NpYmls
aXR5SGl0VGVzdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpyZW5kZXJPYmplY3RJc09ic2VydmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6bXNhYVJvbGVGb3JSZW5kZXJlcik6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRh
YmxlOjppc1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6CisgICAgICAgICAtIFJlbW92ZSB1bm5l
ZWRlZCAidXNpbmcgbmFtZXNwYWNlIHN0ZCIuCisKIDIwMTAtMDgtMDQgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggNzUwYzYxMWZkZjdiY2Iz
Y2Q3NDk4ZDhlZWM2NTE5NDAxM2NmOWYyNy4uOTA3YmIxNTU1NzA3OTEwNTA0NmVmOTNlYWI4ODNl
MTZmNWNhMGJkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAt
NTksOCArNTksMTMgQEAKICNlbmRpZgogI2luY2x1ZGUgIklucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJM
aXN0Qm94LmgiCisjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKKyNpbmNsdWRlICJSZW5kZXJU
YWJsZS5oIgorI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgorI2luY2x1ZGUgIlJlbmRlclRh
YmxlUm93LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRlICJSZW5kZXJT
bGlkZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgpAQCAtMTYwLDgwICsxNjUsODcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmpl
Y3RDYWNoZTo6Z2V0KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgCiAgICAgcmV0dXJuIG9i
ajsKIH0KLSAgICAKLWJvb2wgQVhPYmplY3RDYWNoZTo6bm9kZUhhc1JvbGUoTm9kZSogbm9kZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiByb2xlKQorCisvLyBGSVhNRTogVGhpcyBwcm9iYWJseSBiZWxv
bmdzIG9uIE5vZGUuCisvLyBGSVhNRTogVGhpcyBzaG91bGQgdGFrZSBhIGNvbnN0IGNoYXIqLCBi
dXQgb25lIGNhbGxlciBwYXNzZXMgbnVsbEF0b20uCitib29sIG5vZGVIYXNSb2xlKE5vZGUqIG5v
ZGUsIGNvbnN0IFN0cmluZyYgcm9sZSkKIHsKICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzRWxl
bWVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgcmV0dXJuIGVx
dWFsSWdub3JpbmdDYXNlKHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+Z2V0QXR0cmlidXRl
KHJvbGVBdHRyKSwgcm9sZSk7CiB9CiAKLUFjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2Fj
aGU6OmdldE9yQ3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitzdGF0aWMgUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKIHsKLSAgICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1cm4gMDsKLSAgICAK
LSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXQocmVuZGVyZXIpOworICAgIC8vIEZJ
WE1FOiBIb3cgY291bGQgcmVuZGVyZXItPm5vZGUoKSBldmVyIG5vdCBiZSBhbiBFbGVtZW50Pwor
ICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOworCisgICAgLy8gSWYgdGhlIG5vZGUg
aXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdHMgYQor
ICAgIC8vIHVsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBhIGxpc3QgaWYgYXJpYSBzYXlz
IG90aGVyd2lzZSkuCisgICAgaWYgKG5vZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAibGlzdCIp
IHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3RvcnkiKSkKKyAgICAgICAgICAgICAgICAgICAg
ICB8fCAobm9kZUhhc1JvbGUobm9kZSwgbnVsbEF0b20pICYmIChub2RlLT5oYXNUYWdOYW1lKHVs
VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFn
KSkpKSkKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVhdGUocmVuZGVyZXIp
OworCisgICAgLy8gYXJpYSB0YWJsZXMKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWQi
KSB8fCBub2RlSGFzUm9sZShub2RlLCAidHJlZWdyaWQiKSkKKyAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlBUklBR3JpZDo6Y3JlYXRlKHJlbmRlcmVyKTsKKyAgICBpZiAobm9kZUhhc1JvbGUo
bm9kZSwgInJvdyIpKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93Ojpj
cmVhdGUocmVuZGVyZXIpOworICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8
fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIikgfHwgbm9kZUhhc1JvbGUobm9kZSwg
InJvd2hlYWRlciIpKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6
Y3JlYXRlKHJlbmRlcmVyKTsKIAotICAgIGlmICghb2JqKSB7Ci0gICAgICAgIE5vZGUqIG5vZGUg
PSByZW5kZXJlci0+bm9kZSgpOwotICAgICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4g
bmV3T2JqID0gMDsKLSAgICAgICAgaWYgKHJlbmRlcmVyLT5pc0xpc3RCb3goKSkKLSAgICAgICAg
ICAgIG5ld09iaiA9IEFjY2Vzc2liaWxpdHlMaXN0Qm94OjpjcmVhdGUocmVuZGVyZXIpOwotICAg
ICAgICBlbHNlIGlmIChyZW5kZXJlci0+aXNNZW51TGlzdCgpKQotICAgICAgICAgICAgbmV3T2Jq
ID0gQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpjcmVhdGUocmVuZGVyZXIpOworI2lmIEVOQUJMRShW
SURFTykKKyAgICAvLyBtZWRpYSBjb250cm9scworICAgIGlmIChub2RlICYmIG5vZGUtPmlzTWVk
aWFDb250cm9sRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU1lZGlhQ29u
dHJvbDo6Y3JlYXRlKHJlbmRlcmVyKTsKKyNlbmRpZgogCi0gICAgICAgIC8vIElmIHRoZSBub2Rl
IGlzIGFyaWEgcm9sZT0ibGlzdCIgb3IgdGhlIGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXRzIGEg
dWwvb2wvZGwgdHlwZSAoaXQgc2hvdWxkbid0IGJlIGEgbGlzdCBpZiBhcmlhIHNheXMgb3RoZXJ3
aXNlKS4gCi0gICAgICAgIGVsc2UgaWYgKG5vZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAibGlz
dCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3RvcnkiKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKSAmJiAobm9kZS0+aGFzVGFn
TmFtZSh1bFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShvbFRhZykgfHwgbm9kZS0+aGFzVGFnTmFt
ZShkbFRhZykpKSkpCi0gICAgICAgICAgICBuZXdPYmogPSBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3Jl
YXRlKHJlbmRlcmVyKTsKLSAgICAgICAgCi0gICAgICAgIC8vIGFyaWEgdGFibGVzCi0gICAgICAg
IGVsc2UgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkIikgfHwgbm9kZUhhc1JvbGUobm9kZSwg
InRyZWVncmlkIikpCi0gICAgICAgICAgICBuZXdPYmogPSBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6
OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgICAgIGVsc2UgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJy
b3ciKSkKLSAgICAgICAgICAgIG5ld09iaiA9IEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6Y3Jl
YXRlKHJlbmRlcmVyKTsKLSAgICAgICAgZWxzZSBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWRj
ZWxsIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNvbHVtbmhlYWRlciIpIHx8IG5vZGVIYXNSb2xl
KG5vZGUsICJyb3doZWFkZXIiKSkKLSAgICAgICAgICAgIG5ld09iaiA9IEFjY2Vzc2liaWxpdHlB
UklBR3JpZENlbGw6OmNyZWF0ZShyZW5kZXJlcik7CisgICAgaWYgKHJlbmRlcmVyLT5pc0JveE1v
ZGVsT2JqZWN0KCkpIHsKKyAgICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNzc0JveCA9IHRv
UmVuZGVyQm94TW9kZWxPYmplY3QocmVuZGVyZXIpOworICAgICAgICBpZiAoY3NzQm94LT5pc0xp
c3RCb3goKSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6Y3JlYXRl
KHRvUmVuZGVyTGlzdEJveChjc3NCb3gpKTsKKyAgICAgICAgaWYgKGNzc0JveC0+aXNNZW51TGlz
dCgpKQorICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlNZW51TGlzdDo6Y3JlYXRlKHRv
UmVuZGVyTWVudUxpc3QoY3NzQm94KSk7CiAKICAgICAgICAgLy8gc3RhbmRhcmQgdGFibGVzCi0g
ICAgICAgIGVsc2UgaWYgKHJlbmRlcmVyLT5pc1RhYmxlKCkpCi0gICAgICAgICAgICBuZXdPYmog
PSBBY2Nlc3NpYmlsaXR5VGFibGU6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgICAgIGVsc2UgaWYg
KHJlbmRlcmVyLT5pc1RhYmxlUm93KCkpCi0gICAgICAgICAgICBuZXdPYmogPSBBY2Nlc3NpYmls
aXR5VGFibGVSb3c6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgICAgIGVsc2UgaWYgKHJlbmRlcmVy
LT5pc1RhYmxlQ2VsbCgpKQotICAgICAgICAgICAgbmV3T2JqID0gQWNjZXNzaWJpbGl0eVRhYmxl
Q2VsbDo6Y3JlYXRlKHJlbmRlcmVyKTsKLQotI2lmIEVOQUJMRShWSURFTykKLSAgICAgICAgLy8g
bWVkaWEgY29udHJvbHMKLSAgICAgICAgZWxzZSBpZiAocmVuZGVyZXItPm5vZGUoKSAmJiByZW5k
ZXJlci0+bm9kZSgpLT5pc01lZGlhQ29udHJvbEVsZW1lbnQoKSkKLSAgICAgICAgICAgIG5ld09i
aiA9IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNyZWF0ZShyZW5kZXJlcik7Ci0jZW5kaWYK
KyAgICAgICAgaWYgKGNzc0JveC0+aXNUYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlUYWJsZTo6Y3JlYXRlKHRvUmVuZGVyVGFibGUoY3NzQm94KSk7CisgICAgICAgIGlm
IChjc3NCb3gtPmlzVGFibGVSb3coKSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
VGFibGVSb3c6OmNyZWF0ZSh0b1JlbmRlclRhYmxlUm93KGNzc0JveCkpOworICAgICAgICBpZiAo
Y3NzQm94LT5pc1RhYmxlQ2VsbCgpKQorICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlU
YWJsZUNlbGw6OmNyZWF0ZSh0b1JlbmRlclRhYmxlQ2VsbChjc3NCb3gpKTsKIAogI2lmIEVOQUJM
RShQUk9HUkVTU19UQUcpCiAgICAgICAgIC8vIHByb2dyZXNzIGJhcgotICAgICAgICBlbHNlIGlm
IChyZW5kZXJlci0+aXNQcm9ncmVzcygpKQotICAgICAgICAgICAgbmV3T2JqID0gQWNjZXNzaWJp
bGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVhdGUodG9SZW5kZXJQcm9ncmVzcyhyZW5kZXJlcikp
OworICAgICAgICBpZiAoY3NzQm94LT5pc1Byb2dyZXNzKCkpCisgICAgICAgICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVhdGUodG9SZW5kZXJQcm9ncmVzcyhj
c3NCb3gpKTsKICNlbmRpZgogCiAgICAgICAgIC8vIGlucHV0IHR5cGU9cmFuZ2UKLSAgICAgICAg
ZWxzZSBpZiAocmVuZGVyZXItPmlzU2xpZGVyKCkpCi0gICAgICAgICAgICBuZXdPYmogPSBBY2Nl
c3NpYmlsaXR5U2xpZGVyOjpjcmVhdGUocmVuZGVyZXIpOwotCi0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIG5ld09iaiA9IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNyZWF0ZShyZW5kZXJl
cik7Ci0gICAgICAgIAotICAgICAgICBvYmogPSBuZXdPYmouZ2V0KCk7Ci0gICAgICAgIAotICAg
ICAgICBnZXRBWElEKG9iaik7Ci0gICAgICAgIAotICAgICAgICBtX3JlbmRlck9iamVjdE1hcHBp
bmcuc2V0KHJlbmRlcmVyLCBvYmotPmF4T2JqZWN0SUQoKSk7Ci0gICAgICAgIG1fb2JqZWN0cy5z
ZXQob2JqLT5heE9iamVjdElEKCksIG9iaik7ICAgIAotICAgICAgICBhdHRhY2hXcmFwcGVyKG9i
aik7CisgICAgICAgIGlmIChjc3NCb3gtPmlzU2xpZGVyKCkpCisgICAgICAgICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eVNsaWRlcjo6Y3JlYXRlKHRvUmVuZGVyU2xpZGVyKGNzc0JveCkpOwogICAg
IH0KLSAgICAKLSAgICByZXR1cm4gb2JqOworCisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmNyZWF0ZShyZW5kZXJlcik7Cit9CisKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCit7CisgICAg
aWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqID0gZ2V0KHJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIG9iajsKKworICAg
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBuZXdPYmogPSBjcmVhdGVGcm9tUmVuZGVyZXIo
cmVuZGVyZXIpOworCisgICAgZ2V0QVhJRChuZXdPYmouZ2V0KCkpOworCisgICAgbV9yZW5kZXJP
YmplY3RNYXBwaW5nLnNldChyZW5kZXJlciwgbmV3T2JqLT5heE9iamVjdElEKCkpOworICAgIG1f
b2JqZWN0cy5zZXQobmV3T2JqLT5heE9iamVjdElEKCksIG5ld09iaik7CisgICAgYXR0YWNoV3Jh
cHBlcihuZXdPYmouZ2V0KCkpOworICAgIHJldHVybiBuZXdPYmouZ2V0KCk7CiB9CiAKIEFjY2Vz
c2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKEFjY2Vzc2liaWxpdHlS
b2xlIHJvbGUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBmNGY3YjNk
NDUzZTEzODY0ZDI0ZWQyNTBlNmU5Yzk5ZGZjOGFjZTc5Li42ZGE2ODQyOTdkMWI4NTA0MDNmYmJm
MjZlZDViNDZlMzY4ZmRjZWRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
QEAgLTEyNCw4ICsxMjQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKFJl
bmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIGJvb2wgcG9zdFRvRWxl
bWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgYm9vbCBub2RlSGFz
Um9sZShOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiByb2xlKTsKLQogcHJvdGVjdGVkOgogICAg
IHZvaWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5v
dGlmaWNhdGlvbik7CiAKQEAgLTE0Niw2ICsxNDQsOCBAQCBwcml2YXRlOgogICAgIEFYSUQgZ2V0
QVhJRChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiB9OwogCitib29sIG5vZGVIYXNSb2xlKE5vZGUq
LCBjb25zdCBTdHJpbmcmIHJvbGUpOworCiAjaWYgIUhBVkUoQUNDRVNTSUJJTElUWSkKIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKFJlbmRl
ck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXJpYVJvbGVD
aGFuZ2VkKFJlbmRlck9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwCmluZGV4IDkyNGJhMjFhN2Y4NDUzOTRhMDk2
ZWJkNDA2ZjlmNmU0ODY0OWY1ZjguLjliNzc0MDBkMmNiYTRmYjg5OTJiZDNhZTliMjVmMjhkYTJj
NjNkOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUlt
YWdlTWFwTGluay5jcHAKQEAgLTMzLDE4ICszMywxNSBAQAogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKKyNpbmNsdWRlICJSZW5kZXJCb3hNb2RlbE9iamVjdC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogCiBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5r
KCkKLSAgICA6IG1fYXJlYUVsZW1lbnQoMCksIAotICAgICAgbV9tYXBFbGVtZW50KDApCisgICAg
OiBtX2FyZWFFbGVtZW50KDApCisgICAgLCBtX21hcEVsZW1lbnQoMCkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgYi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAppbmRleCAwNWNk
Zjk3N2ZiZTIxMmYzMzQ0NTBiMTA4ZmFkYWI1ZWJjMzYwMjExLi5iZGU0Y2Q0NGRhNDFjMDEzYTZj
NTQwNGU4MTBlZThjZjRjMDk3ZjM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0LmNwcApAQCAtMzIsMTAgKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Qo
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK0FjY2Vzc2liaWxpdHlNZW51TGlzdDo6QWNjZXNzaWJp
bGl0eU1lbnVMaXN0KFJlbmRlck1lbnVMaXN0KiByZW5kZXJlcikKICAgICA6IEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCiB7Ci0gICAgQVNTRVJUX0FSRyhyZW5kZXJlciwgcmVu
ZGVyZXItPmlzTWVudUxpc3QoKSk7Cit9CisKK1JlbmRlck1lbnVMaXN0KiBBY2Nlc3NpYmlsaXR5
TWVudUxpc3Q6OnJlbmRlcmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9SZW5kZXJNZW51TGlz
dChBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5kZXJlcigpKTsKIH0KIAogYm9vbCBBY2Nl
c3NpYmlsaXR5TWVudUxpc3Q6OnByZXNzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaAppbmRleCAzNzY5NThmYjRmY2E2YTg0ZGEzNDkyYjA1
YjljYWEyNmMwNTAxZGRiLi40MDgyZjBhZDlmMzU3YjdhOTUyZjc2YzI0ZmY0MjI1MDU3ODQxOTU3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0
LmgKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCkBA
IC0zMywxNiArMzMsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0OwogY2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA7CiBjbGFzcyBIVE1M
T3B0aW9uRWxlbWVudDsKK2NsYXNzIFJlbmRlck1lbnVMaXN0OwogCiBjbGFzcyBBY2Nlc3NpYmls
aXR5TWVudUxpc3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU1lbnVMaXN0PiBjcmVhdGUoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlN
ZW51TGlzdChyZW5kZXJlcikpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eU1lbnVMaXN0PiBjcmVhdGUoUmVuZGVyTWVudUxpc3QqIHJlbmRlcmVyKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0KHJlbmRlcmVyKSk7IH0KIAogICAgIHZpcnR1
YWwgYm9vbCBpc0NvbGxhcHNlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwcmVzcygpIGNv
bnN0OwogCisgICAgUmVuZGVyTWVudUxpc3QqIHJlbmRlcmVyKCkgY29uc3Q7CisKIHByaXZhdGU6
Ci0gICAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0KFJlbmRlck9iamVjdCopOworICAgIEFjY2Vzc2li
aWxpdHlNZW51TGlzdChSZW5kZXJNZW51TGlzdCopOwogCiAgICAgdmlydHVhbCBib29sIGlzTWVu
dUxpc3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBQb3BVcEJ1dHRvblJvbGU7IH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5j
cHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3Bw
CmluZGV4IDQ4YzJmYWJiMmY1ODgxNmJmMzk4YTZlOWVlYmVkM2FlYWE1NGQ3ZmMuLjUxNWUwMmYy
MWFiNDA2NDZhNGUwOWIzOTZhYjJhNWFjMmYzNjdmNDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKKysrIGIvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcApAQCAtMzEsNyArMzEs
NyBAQAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCi0jaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKaW5kZXggMzBmYmEzMTkyZjRiY2JhZTgwZTU3ZWFiZjgzNDVjMWM4OGRlYTQ3ZC4uNGIy
MjMzNTRmYWVjNjk3MWJkNTlmZjM4NTZiMzMxMzA5NmY2YjQwZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtNDE2LDE0ICs0MTYsMTEgQEAg
c3RhdGljIGJvb2wgcmVwbGFjZWROb2RlTmVlZHNDaGFyYWN0ZXIoTm9kZSogcmVwbGFjZWROb2Rl
KQogLy8gRmluZHMgYSBSZW5kZXJMaXN0SXRlbSBwYXJlbnQgZ2l2ZSBhIG5vZGUuCiBzdGF0aWMg
UmVuZGVyTGlzdEl0ZW0qIHJlbmRlckxpc3RJdGVtQ29udGFpbmVyRm9yTm9kZShOb2RlKiBub2Rl
KQogewotICAgIGZvciAoTm9kZSogc3RyaW5nTm9kZSA9IG5vZGU7IHN0cmluZ05vZGU7IHN0cmlu
Z05vZGUgPSBzdHJpbmdOb2RlLT5wYXJlbnQoKSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIHJl
bmRlck9iamVjdCA9IHN0cmluZ05vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmICghcmVuZGVy
T2JqZWN0IHx8ICFyZW5kZXJPYmplY3QtPmlzTGlzdEl0ZW0oKSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHRvUmVuZGVyTGlzdEl0ZW0ocmVuZGVyT2Jq
ZWN0KTsKKyAgICBmb3IgKDsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudCgpKSB7CisgICAgICAg
IFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlckJveE1vZGVsT2Jq
ZWN0KCk7CisgICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNMaXN0SXRlbSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRvUmVuZGVyTGlzdEl0ZW0ocmVuZGVyZXIpOwogICAgIH0KLSAg
ICAKICAgICByZXR1cm4gMDsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBhNWUxY2MzMDIxN2U0NzIwZDg2
ZDJmYTY4NGM4Y2NiMjE4ZmZjMjZjLi45MjY3NDEwYWU0M2U0MDYwYTUwZDU3YjEyNWQ0NGU1Mzc4
YzgyMjU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCkBAIC0xMjAsOCArMTIwLDE5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6ZGV0YWNoKCkKICAgICBtX3JlbmRlcmVyID0gMDsgICAgCiB9CiAKLXN0YXRp
YyBpbmxpbmUgYm9vbCBpc0lubGluZVdpdGhDb250aW51YXRpb24oUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKK1JlbmRlckJveE1vZGVsT2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpy
ZW5kZXJCb3hNb2RlbE9iamVjdCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3JlbmRlcmVyIHx8ICFt
X3JlbmRlcmVyLT5pc0JveE1vZGVsT2JqZWN0KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fcmVuZGVyZXIpOworfQorCitzdGF0aWMgaW5s
aW5lIGJvb2wgaXNJbmxpbmVXaXRoQ29udGludWF0aW9uKFJlbmRlck9iamVjdCogb2JqZWN0KQor
eworICAgIGlmICghb2JqZWN0LT5pc0JveE1vZGVsT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHRvUmVuZGVyQm94
TW9kZWxPYmplY3Qob2JqZWN0KTsKICAgICBpZiAoIXJlbmRlcmVyLT5pc1JlbmRlcklubGluZSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTQyOSw3ICs0NDAsNyBAQCBib29sIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzVGV4dENvbnRyb2woKSBjb25zdAogCiBib29sIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzTmF0aXZlSW1hZ2UoKSBjb25zdAogewotICAgIHJldHVy
biBtX3JlbmRlcmVyLT5pc0ltYWdlKCk7CisgICAgcmV0dXJuIG1fcmVuZGVyZXItPmlzQm94TW9k
ZWxPYmplY3QoKSAmJiB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fcmVuZGVyZXIpLT5pc0ltYWdl
KCk7CiB9ICAgIAogICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0ltYWdl
KCkgY29uc3QKQEAgLTQzOSwxMiArNDUwLDEyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNJbWFnZSgpIGNvbnN0CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
aXNBdHRhY2htZW50KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcmVuZGVyZXIpCisgICAgUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlbmRlcmVyID0gcmVuZGVyQm94TW9kZWxPYmplY3QoKTsKKyAgICBp
ZiAocmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICAvLyBXaWRnZXRz
IGFyZSB0aGUgcmVwbGFjZWQgZWxlbWVudHMgdGhhdCB3ZSByZXByZXNlbnQgdG8gQVggYXMgYXR0
YWNobWVudHMKLSAgICBib29sIGlzV2lkZ2V0ID0gbV9yZW5kZXJlciAmJiBtX3JlbmRlcmVyLT5p
c1dpZGdldCgpOwotICAgIEFTU0VSVCghaXNXaWRnZXQgfHwgKG1fcmVuZGVyZXItPmlzUmVwbGFj
ZWQoKSAmJiAhaXNJbWFnZSgpKSk7CisgICAgYm9vbCBpc1dpZGdldCA9IHJlbmRlcmVyLT5pc1dp
ZGdldCgpOworICAgIEFTU0VSVCghaXNXaWRnZXQgfHwgKHJlbmRlcmVyLT5pc1JlcGxhY2VkKCkg
JiYgIWlzSW1hZ2UoKSkpOwogICAgIHJldHVybiBpc1dpZGdldCAmJiBhcmlhUm9sZUF0dHJpYnV0
ZSgpID09IFVua25vd25Sb2xlOwogfQogCkBAIC02MDMsNyArNjE0LDcgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0CiAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKGFyaWFNdWx0aVNlbGVjdGFibGUsICJmYWxzZSIpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKCFtX3JlbmRlcmVyLT5pc0xpc3RCb3goKSkKKyAg
ICBpZiAoIW1fcmVuZGVyZXItPmlzQm94TW9kZWxPYmplY3QoKSB8fCAhdG9SZW5kZXJCb3hNb2Rl
bE9iamVjdChtX3JlbmRlcmVyKS0+aXNMaXN0Qm94KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICByZXR1cm4gbV9yZW5kZXJlci0+bm9kZSgpICYmIHN0YXRpY19jYXN0PEhUTUxTZWxlY3RF
bGVtZW50Kj4obV9yZW5kZXJlci0+bm9kZSgpKS0+bXVsdGlwbGUoKTsKIH0KQEAgLTYyOCwxMSAr
NjM5LDE0IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNSZWFkT25seSgpIGNv
bnN0CiAgICAgICAgIHJldHVybiAhZnJhbWUtPmlzQ29udGVudEVkaXRhYmxlKCk7CiAgICAgfQog
Ci0gICAgaWYgKG1fcmVuZGVyZXItPmlzVGV4dEZpZWxkKCkpCi0gICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9yZW5kZXJlci0+bm9kZSgpKS0+cmVhZE9ubHko
KTsKLSAgICBpZiAobV9yZW5kZXJlci0+aXNUZXh0QXJlYSgpKQotICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KG1fcmVuZGVyZXItPm5vZGUoKSktPnJlYWRP
bmx5KCk7Ci0gICAgCisgICAgaWYgKG1fcmVuZGVyZXItPmlzQm94TW9kZWxPYmplY3QoKSkgewor
ICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogYm94ID0gdG9SZW5kZXJCb3hNb2RlbE9iamVj
dChtX3JlbmRlcmVyKTsKKyAgICAgICAgaWYgKGJveC0+aXNUZXh0RmllbGQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oYm94LT5ub2RlKCkpLT5y
ZWFkT25seSgpOworICAgICAgICBpZiAoYm94LT5pc1RleHRBcmVhKCkpCisgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGJveC0+bm9kZSgpKS0+cmVh
ZE9ubHkoKTsKKyAgICB9CisKICAgICByZXR1cm4gIW1fcmVuZGVyZXItPm5vZGUoKSB8fCAhbV9y
ZW5kZXJlci0+bm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpOwogfQogCkBAIC02OTksMTAgKzcx
MywxMCBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQ29udHJvbCgpIGNvbnN0
CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNGaWVsZHNldCgpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3JlbmRlcmVyKQorICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJl
ciA9IHJlbmRlckJveE1vZGVsT2JqZWN0KCk7CisgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJldHVybiBtX3JlbmRlcmVyLT5pc0ZpZWxkc2V0KCk7
CisgICAgcmV0dXJuIHJlbmRlcmVyLT5pc0ZpZWxkc2V0KCk7CiB9CiAgIAogYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc0dyb3VwKCkgY29uc3QKQEAgLTc4OSw3ICs4MDMsNyBAQCBF
bGVtZW50KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY3Rpb25FbGVtZW50KCkgY29uc3QK
ICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKGJ1dHRvblRhZykpCiAgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpOwogICAgIH0KLSAgICAgICAg
ICAgIAorCiAgICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQogICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG1fcmVuZGVyZXItPm5vZGUoKSk7CiAgICAgICAgICAgICAKQEAg
LTc5OSw3ICs4MTMsNyBAQCBFbGVtZW50KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY3Rp
b25FbGVtZW50KCkgY29uc3QKICAgICBpZiAoaXNJbWFnZUJ1dHRvbigpKQogICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1fcmVuZGVyZXItPm5vZGUoKSk7CiAgICAgCi0gICAg
aWYgKG1fcmVuZGVyZXItPmlzTWVudUxpc3QoKSkKKyAgICBpZiAobV9yZW5kZXJlci0+aXNCb3hN
b2RlbE9iamVjdCgpICYmIHRvUmVuZGVyQm94TW9kZWxPYmplY3QobV9yZW5kZXJlciktPmlzTWVu
dUxpc3QoKSkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX3JlbmRlcmVy
LT5ub2RlKCkpOwogCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOwpA
QCAtMTA0OSw3ICsxMDYzLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0
cmluZ1ZhbHVlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIgfHwgaXNQYXNzd29yZEZp
ZWxkKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAKKworICAgIFJlbmRlckJveE1v
ZGVsT2JqZWN0KiBjc3NCb3ggPSByZW5kZXJCb3hNb2RlbE9iamVjdCgpOworCiAgICAgaWYgKGFy
aWFSb2xlQXR0cmlidXRlKCkgPT0gU3RhdGljVGV4dFJvbGUpIHsKICAgICAgICAgU3RyaW5nIHN0
YXRpY1RleHQgPSB0ZXh0KCk7CiAgICAgICAgIGlmICghc3RhdGljVGV4dC5sZW5ndGgoKSkKQEAg
LTEwNjAsNyArMTA3Niw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJp
bmdWYWx1ZSgpIGNvbnN0CiAgICAgaWYgKG1fcmVuZGVyZXItPmlzVGV4dCgpKQogICAgICAgICBy
ZXR1cm4gdGV4dFVuZGVyRWxlbWVudCgpOwogICAgIAotICAgIGlmIChtX3JlbmRlcmVyLT5pc01l
bnVMaXN0KCkpIHsKKyAgICBpZiAoY3NzQm94ICYmIGNzc0JveC0+aXNNZW51TGlzdCgpKSB7CiAg
ICAgICAgIC8vIFJlbmRlck1lbnVMaXN0IHdpbGwgZ28gc3RyYWlnaHQgdG8gdGhlIHRleHQoKSBv
ZiBpdHMgc2VsZWN0ZWQgaXRlbS4KICAgICAgICAgLy8gVGhpcyBoYXMgdG8gYmUgb3ZlcnJpZGVu
IGluIHRoZSBjYXNlIHdoZXJlIHRoZSBzZWxlY3RlZCBpdGVtIGhhcyBhbiBhcmlhIGxhYmVsCiAg
ICAgICAgIFNlbGVjdEVsZW1lbnQqIHNlbGVjdE5vZGUgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8RWxlbWVudCo+KG1fcmVuZGVyZXItPm5vZGUoKSkpOwpAQCAtMTA4Miw3ICsxMDk4LDcg
QEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QK
ICAgICBpZiAobV9yZW5kZXJlci0+aXNMaXN0TWFya2VyKCkpCiAgICAgICAgIHJldHVybiB0b1Jl
bmRlckxpc3RNYXJrZXIobV9yZW5kZXJlciktPnRleHQoKTsKICAgICAKLSAgICBpZiAobV9yZW5k
ZXJlci0+aXNSZW5kZXJCdXR0b24oKSkKKyAgICBpZiAoY3NzQm94ICYmIGNzc0JveC0+aXNSZW5k
ZXJCdXR0b24oKSkKICAgICAgICAgcmV0dXJuIHRvUmVuZGVyQnV0dG9uKG1fcmVuZGVyZXIpLT50
ZXh0KCk7CiAKICAgICBpZiAoaXNXZWJBcmVhKCkpIHsKQEAgLTE3MDEsMTMgKzE3MTcsMTMgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QKICAgICAvLyBBbiBBUklBIHRyZWUgY2FuIG9ubHkgaGF2ZSB0cmVlIGl0ZW1zIGFuZCBz
dGF0aWMgdGV4dCBhcyBjaGlsZHJlbi4KICAgICBpZiAoIWlzQWxsb3dlZENoaWxkT2ZUcmVlKCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIAorCiAgICAgLy8gaWdub3JlIHBvcHVwIG1lbnUg
aXRlbXMgYmVjYXVzZSBBcHBLaXQgZG9lcwogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBwYXJlbnQg
PSBtX3JlbmRlcmVyLT5wYXJlbnQoKTsgcGFyZW50OyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudCgp
KSB7Ci0gICAgICAgIGlmIChwYXJlbnQtPmlzTWVudUxpc3QoKSkKKyAgICAgICAgaWYgKHBhcmVu
dC0+aXNCb3hNb2RlbE9iamVjdCgpICYmIHRvUmVuZGVyQm94TW9kZWxPYmplY3QocGFyZW50KS0+
aXNNZW51TGlzdCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIAorCiAg
ICAgLy8gZmluZCBvdXQgaWYgdGhpcyBlbGVtZW50IGlzIGluc2lkZSBvZiBhIGxhYmVsIGVsZW1l
bnQuCiAgICAgLy8gaWYgc28sIGl0IG1heSBiZSBpZ25vcmVkIGJlY2F1c2UgaXQncyB0aGUgbGFi
ZWwgZm9yIGEgY2hlY2tib3ggb3IgcmFkaW8gYnV0dG9uCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogY29udHJvbE9iamVjdCA9IGNvcnJlc3BvbmRpbmdDb250cm9sRm9yTGFiZWxFbGVtZW50KCk7
CkBAIC0yMTgyLDIwICsyMTk4LDI0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2V0U2VsZWN0ZWRSb3dzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgc2VsCiAgICAgCiB2
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIGlmICghbV9yZW5kZXJlcikKKyAgICBpZiAoIW1fcmVuZGVyZXIgfHwgIW1f
cmVuZGVyZXItPm5vZGUoKSB8fCAhbV9yZW5kZXJlci0+bm9kZSgpLT5pc0VsZW1lbnROb2RlKCkp
CiAgICAgICAgIHJldHVybjsKLSAgICAKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG1fcmVuZGVyZXItPm5vZGUoKSk7CisKKyAgICBpZiAocm9sZVZhbHVlKCkg
PT0gU2xpZGVyUm9sZSkKKyAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKGFyaWFfdmFsdWVu
b3dBdHRyLCBzdHJpbmcpOworCisgICAgaWYgKCFtX3JlbmRlcmVyLT5pc0JveE1vZGVsT2JqZWN0
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVuZGVyZXIg
PSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fcmVuZGVyZXIpOworCiAgICAgLy8gRklYTUU6IERv
IHdlIHdhbnQgdG8gZG8gYW55dGhpbmcgaGVyZSBmb3IgQVJJQSB0ZXh0Ym94ZXM/Ci0gICAgaWYg
KG1fcmVuZGVyZXItPmlzVGV4dEZpZWxkKCkpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9yZW5kZXJlci0+bm9kZSgp
KTsKLSAgICAgICAgaW5wdXQtPnNldFZhbHVlKHN0cmluZyk7Ci0gICAgfSBlbHNlIGlmIChtX3Jl
bmRlcmVyLT5pc1RleHRBcmVhKCkpIHsKLSAgICAgICAgSFRNTFRleHRBcmVhRWxlbWVudCogdGV4
dEFyZWEgPSBzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4obV9yZW5kZXJlci0+bm9k
ZSgpKTsKLSAgICAgICAgdGV4dEFyZWEtPnNldFZhbHVlKHN0cmluZyk7Ci0gICAgfSBlbHNlIGlm
IChyb2xlVmFsdWUoKSA9PSBTbGlkZXJSb2xlKSB7Ci0gICAgICAgIE5vZGUqIGVsZW1lbnQgPSBt
X3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPmlzRWxl
bWVudE5vZGUoKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihlbGVtZW50KS0+
c2V0QXR0cmlidXRlKGFyaWFfdmFsdWVub3dBdHRyLCBzdHJpbmcpOworICAgIGlmIChyZW5kZXJl
ci0+aXNUZXh0RmllbGQoKSkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBub3Qgc2FmZSEg
IE90aGVyIGVsZW1lbnRzIGNvdWxkIGhhdmUgYSBUZXh0RmllbGQgcmVuZGVyZXIuCisgICAgICAg
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KS0+c2V0VmFsdWUoc3RyaW5n
KTsKKyAgICB9IGVsc2UgaWYgKHJlbmRlcmVyLT5pc1RleHRBcmVhKCkpIHsKKyAgICAgICAgLy8g
RklYTUU6IFRoaXMgaXMgbm90IHNhZmUhICBPdGhlciBlbGVtZW50cyBjb3VsZCBoYXZlIGEgVGV4
dEFyZWEgcmVuZGVyZXIuCisgICAgICAgIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQq
PihlbGVtZW50KS0+c2V0VmFsdWUoc3RyaW5nKTsKICAgICB9CiB9CiAKQEAgLTIyNTUsNyArMjI3
NSw3IEBAIEZyYW1lVmlldyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dG9wRG9jdW1lbnRG
cmFtZVZpZXcoKSBjb25zdAogCiBXaWRnZXQqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Ondp
ZGdldCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3JlbmRlcmVyLT5pc1dpZGdldCgpKQorICAgIGlm
ICghbV9yZW5kZXJlci0+aXNCb3hNb2RlbE9iamVjdCgpIHx8ICF0b1JlbmRlckJveE1vZGVsT2Jq
ZWN0KG1fcmVuZGVyZXIpLT5pc1dpZGdldCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1
cm4gdG9SZW5kZXJXaWRnZXQobV9yZW5kZXJlciktPndpZGdldCgpOwogfQpAQCAtMjUxNiwxMiAr
MjUzNiwxMiBAQCBWaXNpYmxlUG9zaXRpb24gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dmlz
aWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbgogICAgICAgICAgICAgcmV0dXJuIFZp
c2libGVQb3NpdGlvbigpOwogICAgICAgICAKICAgICAgICAgcG9pbnRSZXN1bHQgPSByZXN1bHQu
bG9jYWxQb2ludCgpOwotICAgICAgICAKKwogICAgICAgICAvLyBkb25lIGlmIGhpdCBzb21ldGhp
bmcgb3RoZXIgdGhhbiBhIHdpZGdldAotICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0g
aW5uZXJOb2RlLT5yZW5kZXJlcigpOworICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVu
ZGVyZXIgPSBpbm5lck5vZGUtPnJlbmRlckJveE1vZGVsT2JqZWN0KCk7CiAgICAgICAgIGlmICgh
cmVuZGVyZXItPmlzV2lkZ2V0KCkpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgCisKICAg
ICAgICAgLy8gZGVzY2VuZCBpbnRvIHdpZGdldCAoRlJBTUUsIElGUkFNRSwgT0JKRUNULi4uKQog
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKS0+d2lkZ2V0
KCk7CiAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCkBAIC0y
NzA2LDEzICsyNzI2LDEzIEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmRvQWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50CiAgICAgCiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogcmVzdWx0ID0gb2JqLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hl
KCktPmdldE9yQ3JlYXRlKG9iaik7CiAKLSAgICBpZiAob2JqLT5pc0xpc3RCb3goKSkgeworICAg
IGlmIChvYmotPmlzQm94TW9kZWxPYmplY3QoKSAmJiB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG9i
aiktPmlzTGlzdEJveCgpKSB7CiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgY2hpbGRyZW4gYXJl
IGluaXRpYWxpemVkIHNvIHRoYXQgaGl0IHRlc3RpbmcgZmluZHMgdGhlIHJpZ2h0IGVsZW1lbnQu
CiAgICAgICAgIEFjY2Vzc2liaWxpdHlMaXN0Qm94KiBsaXN0Qm94ID0gc3RhdGljX2Nhc3Q8QWNj
ZXNzaWJpbGl0eUxpc3RCb3gqPihyZXN1bHQpOwogICAgICAgICBsaXN0Qm94LT51cGRhdGVDaGls
ZHJlbklmTmVjZXNzYXJ5KCk7CiAgICAgICAgIHJldHVybiBsaXN0Qm94LT5kb0FjY2Vzc2liaWxp
dHlIaXRUZXN0KHBvaW50KTsKICAgICB9Ci0gICAgICAgIAorCiAgICAgaWYgKHJlc3VsdC0+YWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpKSB7CiAgICAgICAgIC8vIElmIHRoaXMgZWxlbWVudCBpcyB0
aGUgbGFiZWwgb2YgYSBjb250cm9sLCBhIGhpdCB0ZXN0IHNob3VsZCByZXR1cm4gdGhlIGNvbnRy
b2wuCiAgICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvbnRyb2xPYmplY3QgPSByZXN1bHQt
PmNvcnJlc3BvbmRpbmdDb250cm9sRm9yTGFiZWxFbGVtZW50KCk7CkBAIC0yODcwLDEzICsyODkw
LDEyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVuZGVyT2JqZWN0SXNPYnNl
cnZhYmxlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IAogICAgIC8vIEFYIGNsaWVudHMgd2lsbCBsaXN0ZW4gZm9yIEFYU2VsZWN0ZWRDaGlsZHJlbkNo
YW5nZWQgb24gbGlzdGJveGVzLgotICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RD
YWNoZSgpOwogICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOwotICAgIGlmIChyZW5k
ZXJlci0+aXNMaXN0Qm94KCkgfHwgY2FjaGUtPm5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Ym94Iikp
CisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Ym94IikgfHwgKHJlbmRlcmVyLT5pc0Jv
eE1vZGVsT2JqZWN0KCkgJiYgdG9SZW5kZXJCb3hNb2RlbE9iamVjdChyZW5kZXJlciktPmlzTGlz
dEJveCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCisKICAgICAvLyBUZXh0Ym94ZXMg
c2hvdWxkIHNlbmQgb3V0IG5vdGlmaWNhdGlvbnMuCi0gICAgaWYgKGNhY2hlLT5ub2RlSGFzUm9s
ZShub2RlLCAidGV4dGJveCIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidGV4dGJveCIp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0yOTUw
LDEzICsyOTY5LDE1IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBh
cmlhUm9sZSA9IGFyaWFSb2xlQXR0cmlidXRlKCk7CiAgICAgaWYgKGFyaWFSb2xlICE9IFVua25v
d25Sb2xlKQogICAgICAgICByZXR1cm4gYXJpYVJvbGU7Ci0gICAgCisKKyAgICBSZW5kZXJCb3hN
b2RlbE9iamVjdCogY3NzQm94ID0gcmVuZGVyQm94TW9kZWxPYmplY3QoKTsKKwogICAgIGlmIChu
b2RlICYmIG5vZGUtPmlzTGluaygpKSB7Ci0gICAgICAgIGlmIChtX3JlbmRlcmVyLT5pc0ltYWdl
KCkpCisgICAgICAgIGlmIChjc3NCb3ggJiYgY3NzQm94LT5pc0ltYWdlKCkpCiAgICAgICAgICAg
ICByZXR1cm4gSW1hZ2VNYXBSb2xlOwogICAgICAgICByZXR1cm4gV2ViQ29yZUxpbmtSb2xlOwog
ICAgIH0KLSAgICBpZiAobV9yZW5kZXJlci0+aXNMaXN0SXRlbSgpKQorICAgIGlmIChjc3NCb3gg
JiYgY3NzQm94LT5pc0xpc3RJdGVtKCkpCiAgICAgICAgIHJldHVybiBMaXN0SXRlbVJvbGU7CiAg
ICAgaWYgKG1fcmVuZGVyZXItPmlzTGlzdE1hcmtlcigpKQogICAgICAgICByZXR1cm4gTGlzdE1h
cmtlclJvbGU7CkBAIC0yOTY0LDIzICsyOTg1LDIzIEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKICAgICAg
ICAgcmV0dXJuIEJ1dHRvblJvbGU7CiAgICAgaWYgKG1fcmVuZGVyZXItPmlzVGV4dCgpKQogICAg
ICAgICByZXR1cm4gU3RhdGljVGV4dFJvbGU7Ci0gICAgaWYgKG1fcmVuZGVyZXItPmlzSW1hZ2Uo
KSkgeworICAgIGlmIChjc3NCb3ggJiYgY3NzQm94LT5pc0ltYWdlKCkpIHsKICAgICAgICAgaWYg
KG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCiAgICAgICAgICAgICByZXR1cm4g
QnV0dG9uUm9sZTsKICAgICAgICAgcmV0dXJuIEltYWdlUm9sZTsKICAgICB9CiAgICAgaWYgKG5v
ZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShjYW52YXNUYWcpKQogICAgICAgICByZXR1cm4gSW1hZ2VS
b2xlOwotICAgIAotICAgIGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlclZpZXcoKSkKKworICAgIGlm
IChjc3NCb3ggJiYgY3NzQm94LT5pc1JlbmRlclZpZXcoKSkKICAgICAgICAgcmV0dXJuIFdlYkFy
ZWFSb2xlOwogICAgIAotICAgIGlmIChtX3JlbmRlcmVyLT5pc1RleHRGaWVsZCgpKQorICAgIGlm
IChjc3NCb3ggJiYgY3NzQm94LT5pc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4gVGV4dEZp
ZWxkUm9sZTsKICAgICAKLSAgICBpZiAobV9yZW5kZXJlci0+aXNUZXh0QXJlYSgpKQorICAgIGlm
IChjc3NCb3ggJiYgY3NzQm94LT5pc1RleHRBcmVhKCkpCiAgICAgICAgIHJldHVybiBUZXh0QXJl
YVJvbGU7Ci0gICAgCisKICAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFn
KSkgewogICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihub2RlKTsKICAgICAgICAgaWYgKGlucHV0LT5pbnB1dFR5cGUoKSA9PSBI
VE1MSW5wdXRFbGVtZW50OjpDSEVDS0JPWCkKQEAgLTI5OTcsNyArMzAxOCw3IEBAIEFjY2Vzc2li
aWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKCkKICAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkpCiAgICAgICAgIHJldHVybiBC
dXR0b25Sb2xlOwogICAgIAotICAgIGlmIChtX3JlbmRlcmVyLT5pc01lbnVMaXN0KCkpCisgICAg
aWYgKGNzc0JveCAmJiBjc3NCb3gtPmlzTWVudUxpc3QoKSkKICAgICAgICAgcmV0dXJuIFBvcFVw
QnV0dG9uUm9sZTsKICAgICAKICAgICBpZiAoaGVhZGluZ0xldmVsKCkpCkBAIC0zMjg3LDggKzMz
MDgsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKCkKICAg
ICB9CiAgICAgCiAgICAgLy8gZm9yIGEgUmVuZGVySW1hZ2UsIGFkZCB0aGUgPGFyZWE+IGVsZW1l
bnRzIGFzIGluZGl2aWR1YWwgYWNjZXNzaWJpbGl0eSBvYmplY3RzCi0gICAgaWYgKG1fcmVuZGVy
ZXItPmlzUmVuZGVySW1hZ2UoKSkgewotICAgICAgICBIVE1MTWFwRWxlbWVudCogbWFwID0gdG9S
ZW5kZXJJbWFnZShtX3JlbmRlcmVyKS0+aW1hZ2VNYXAoKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9i
amVjdCogY3NzQm94ID0gcmVuZGVyQm94TW9kZWxPYmplY3QoKTsKKyAgICBpZiAoY3NzQm94ICYm
IGNzc0JveC0+aXNSZW5kZXJJbWFnZSgpKSB7CisgICAgICAgIEhUTUxNYXBFbGVtZW50KiBtYXAg
PSB0b1JlbmRlckltYWdlKGNzc0JveCktPmltYWdlTWFwKCk7CiAgICAgICAgIGlmIChtYXApIHsK
ICAgICAgICAgICAgIGZvciAoTm9kZSogY3VycmVudCA9IG1hcC0+Zmlyc3RDaGlsZCgpOyBjdXJy
ZW50OyBjdXJyZW50ID0gY3VycmVudC0+dHJhdmVyc2VOZXh0Tm9kZShtYXApKSB7CiAKQEAgLTM2
MDUsNyArMzYyNyw3IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5Um9sZSBtc2FhUm9sZUZvclJlbmRl
cmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgaWYgKHJlbmRlcmVyLT5pc1Rl
eHQoKSkKICAgICAgICAgcmV0dXJuIEVkaXRhYmxlVGV4dFJvbGU7CiAKLSAgICBpZiAocmVuZGVy
ZXItPmlzTGlzdEl0ZW0oKSkKKyAgICBpZiAocmVuZGVyZXItPmlzQm94TW9kZWxPYmplY3QoKSAm
JiB0b1JlbmRlckJveE1vZGVsT2JqZWN0KHJlbmRlcmVyKS0+aXNMaXN0SXRlbSgpKQogICAgICAg
ICByZXR1cm4gTGlzdEl0ZW1Sb2xlOwogCiAgICAgcmV0dXJuIFVua25vd25Sb2xlOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBi
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXgg
NTI2NjRhNWJlYzRjMjk0MWU4YTY1MmFiMTFiNGE2NGU5YzQ1YjM5Mi4uY2VmYWE5NDhlYmI4YWJj
NjUxYTYwZTBhNjFlMmQyN2Q3ODlmNDJmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0xLDMgKzEsNCBAQAorCiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBA
IC0zMCw3ICszMSw2IEBACiAjZGVmaW5lIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3RfaAogCiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2
NSw2ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRSZW5kZXJlcihSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKSB7IG1fcmVuZGVyZXIgPSByZW5kZXJlcjsgfQogICAgIFJlbmRlck9i
amVjdCogcmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmVyOyB9CisgICAgUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlbmRlckJveE1vZGVsT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVh
bCBOb2RlKiBub2RlKCkgY29uc3Q7CiAKICAgICBSZW5kZXJWaWV3KiB0b3BSZW5kZXJlcigpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZS5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAppbmRl
eCAwNGVjYWMzM2UwNDUwZTU0YzI4OGM1NmJhZjg4Zjc5YjUwZDNkNTcyLi43ZjdiNmYyZDExODll
MTNmODZkZGZjYTYxNjFmZjBlOWI5Mjc1NWQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlLmNwcApAQCAtNDMsOCArNDMsNiBAQAogI2luY2x1ZGUgIlJlbmRl
clRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlU2VjdGlvbi5oIgogCi11c2luZyBu
YW1lc3BhY2Ugc3RkOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CkBAIC03NSw3ICs3Myw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlOjppc1Rh
YmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKQogICAgIC8vIDx0YWJsZT4gc2hvdWxk
IGJlIGV4cG9zZWQgYXMgYW4gQVhUYWJsZS4gVGhlIGdvYWwKICAgICAvLyBpcyB0byBvbmx5IHNo
b3cgImRhdGEiIHRhYmxlcwogICAgIAotICAgIGlmICghbV9yZW5kZXJlciB8fCAhbV9yZW5kZXJl
ci0+aXNUYWJsZSgpKQorICAgIGlmICghcmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIAogICAgIC8vIGlmIHRoZSBkZXZlbG9wZXIgYXNzaWduZWQgYW4gYXJpYSByb2xlIHRv
IHRoaXMsIHRoZW4gd2Ugc2hvdWxkbid0IApAQCAtMTk2LDcgKzE5NCw3IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eVRhYmxlOjppc1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKQogICAg
ICAgICAgICAgLy8gRm9yIHRoZSBmaXJzdCA1IHJvd3MsIGNhY2hlIHRoZSBiYWNrZ3JvdW5kIGNv
bG9yIHNvIHdlIGNhbiBjaGVjayBpZiB0aGlzIHRhYmxlIGhhcyB6ZWJyYS1zdHJpcGVkIHJvd3Mu
CiAgICAgICAgICAgICBpZiAocm93IDwgNSAmJiByb3cgPT0gYWx0ZXJuYXRpbmdSb3dDb2xvckNv
dW50KSB7CiAgICAgICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJSb3cgPSBjZWxsLT5w
YXJlbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlbmRlclJvdyB8fCAhcmVuZGVyUm93LT5p
c1RhYmxlUm93KCkpCisgICAgICAgICAgICAgICAgaWYgKCFyZW5kZXJSb3cgfHwgIXJlbmRlclJv
dy0+aXNCb3hNb2RlbE9iamVjdCgpIHx8ICF0b1JlbmRlckJveE1vZGVsT2JqZWN0KHJlbmRlclJv
dyktPmlzVGFibGVSb3coKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgUmVuZGVyU3R5bGUqIHJvd1JlbmRlclN0eWxlID0gcmVuZGVyUm93LT5zdHlsZSgp
OwogICAgICAgICAgICAgICAgIGlmICghcm93UmVuZGVyU3R5bGUpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmggYi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKaW5kZXggNDBmNjYzOWIyYjU2YzlhZmRjNDhiN2U3
ZWQwYTliYmE2Yzk5MWUyYS4uMmVlNTgxMjhkMzUzZDdmYTJiZjYyODFlZjQ4Njg5ZTM1MmM0YWYz
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5o
CisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaApAQCAtNTAs
NyArNTAsNyBAQCBwcm90ZWN0ZWQ6CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRhYmxlPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNj
ZXNzaWJpbGl0eVRhYmxlKCk7Ci0gICAgCisKICAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVGFibGUo
KSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBpc0FyaWFUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CkBAIC03OCwxNyArNzgsMTcgQEAgcHVibGljOgogCiAgICAgLy8gYW4gb2JqZWN0IHRoYXQgY29u
dGFpbnMsIGFzIGNoaWxkcmVuLCBhbGwgdGhlIG9iamVjdHMgdGhhdCBhY3QgYXMgaGVhZGVycwog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGhlYWRlckNvbnRhaW5lcigpOwotICAgIAotcHJvdGVj
dGVkOiAgICAKKworcHJvdGVjdGVkOgogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBt
X3Jvd3M7CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIG1fY29sdW1uczsKLSAgICAK
KwogICAgIEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lciogbV9oZWFkZXJDb250YWlu
ZXI7CiAgICAgbXV0YWJsZSBib29sIG1faXNBY2Nlc3NpYmlsaXR5VGFibGU7Ci0gICAgCisKICAg
ICBib29sIGlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpOwogfTsKLSAgICAK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKIAogI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlUYWJs
ZV9oCg==
</data>
<flag name="review"
          id="52157"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>