<?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>55369</bug_id>
          
          <creation_ts>2011-02-28 05:49:45 -0800</creation_ts>
          <short_desc>Web Inspector: debugger agents should have same livetime as InspectorAgent</short_desc>
          <delta_ts>2011-02-28 06:50:16 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>54112</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>359005</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-28 05:49:45 -0800</bug_when>
    <thetext>Web Inspector: debugger agents should have same livetime as InspectorAgent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359017</commentid>
    <comment_count>1</comment_count>
      <attachid>84049</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-28 06:13:26 -0800</bug_when>
    <thetext>Created attachment 84049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359023</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-28 06:50:16 -0800</bug_when>
    <thetext>Committed r79858: &lt;http://trac.webkit.org/changeset/79858&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84049</attachid>
            <date>2011-02-28 06:13:26 -0800</date>
            <delta_ts>2011-02-28 06:33:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55369-20110228171322.patch</filename>
            <type>text/plain</type>
            <size>46788</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4NTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkOGIwMDI2YTk0NmRmYmE1MTJlNDhh
NjUxMjNlZTY0ZjZjMmQ3NDdhLi5jOTQwODg5ZDU0NzY1ODEwNzA0MTJjNjNmNTU4MGFkZDViZjNh
ZjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMjggIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZGVidWdnZXIgYWdlbnRzIHNob3VsZCBoYXZl
IHNhbWUgbGl2ZXRpbWUgYXMgSW5zcGVjdG9yQWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MzY5CisKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVw
b3J0LXByb3RvY29sLWVycm9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3Jl
cG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbDoKKwogMjAxMS0wMi0yOCAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlr
aGF0c2t5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90b2Nv
bC1lcnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90
b2NvbC1lcnJvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDg4NTZhZTc1OTZmODNjYjllYjQ3YjE3ZDc1
OWIwNDM4NzZjODIxMDAuLjRiMjhhNGFmN2YzYWNkZTBmODQzZmEwOGY3YjkxMDRiZGNiNmZiOGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3Jz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29s
LWVycm9ycy1leHBlY3RlZC50eHQKQEAgLTc4LDIxICs3OCw0IEBAIFRlc3RzIHRoYXQgSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIgaXMgY2F0Y2hpbmcgaW5jb3JyZWN0IG1lc3NhZ2VzLgogICAg
ICAgICAyIDogIlByb3RvY29sIEVycm9yOiBBcmd1bWVudCAnYmFzZTY0RW5jb2RlJyB3aXRoIHR5
cGUgJ0Jvb2xlYW4nIHdhcyBub3QgZm91bmQuIgogICAgIH0KIH0KLXsKLSAgICBzZXEgOiA2Ci0g
ICAgZG9tYWluIDogIkRlYnVnZ2VyIgotICAgIHN1Y2Nlc3MgOiBmYWxzZQotICAgIGVycm9ycyA6
IHsKLSAgICAgICAgMCA6ICJQcm90b2NvbCBFcnJvcjogRGVidWdnZXIgaGFuZGxlciBpcyBub3Qg
YXZhaWxhYmxlLiIKLSAgICAgICAgMSA6ICJQcm90b2NvbCBFcnJvcjogQXJndW1lbnQgJ2JyZWFr
cG9pbnRJZCcgd2l0aCB0eXBlICdTdHJpbmcnIHdhcyBub3QgZm91bmQuIgotICAgIH0KLX0KLXsK
LSAgICBzZXEgOiA3Ci0gICAgZG9tYWluIDogIkRlYnVnZ2VyIgotICAgIHN1Y2Nlc3MgOiBmYWxz
ZQotICAgIGVycm9ycyA6IHsKLSAgICAgICAgMCA6ICJQcm90b2NvbCBFcnJvcjogRGVidWdnZXIg
aGFuZGxlciBpcyBub3QgYXZhaWxhYmxlLiIKLSAgICB9Ci19CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1sCmluZGV4IDNiOWIwMDE0NzYw
YWEzZTc4NzVjMjdiOWJmMzY5YjFiMjA3MjdiYzEuLjM1MzliZjIyYjMzYTgxMjA3MzcyZWNlZWQy
MTkzYjM4Nzc5OTE1ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQt
cHJvdG9jb2wtZXJyb3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1w
cm90b2NvbC1lcnJvcnMuaHRtbApAQCAtMTYsOCArMTYsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgJ3sic2VxIjozLCJjb21tYW5kIjoicmVzb3VyY2VDb250ZW50IiwiYXJndW1lbnRzIjpb
XX0nLAogICAgICAgICAneyJzZXEiOjQsImNvbW1hbmQiOiJyZXNvdXJjZUNvbnRlbnQiLCJhcmd1
bWVudHMiOnt9fScsCiAgICAgICAgICd7InNlcSI6NSwiY29tbWFuZCI6InJlc291cmNlQ29udGVu
dCIsImFyZ3VtZW50cyI6eyJpZGVudGlmaWVyIjoibm90IGEgbnVtYmVyIn19JywKLSAgICAgICAg
J3sic2VxIjo2LCJjb21tYW5kIjoicmVtb3ZlSmF2YVNjcmlwdEJyZWFrcG9pbnQiLCJhcmd1bWVu
dHMiOnt9fScsCi0gICAgICAgICd7InNlcSI6NywiY29tbWFuZCI6InJlbW92ZUphdmFTY3JpcHRC
cmVha3BvaW50IiwiYXJndW1lbnRzIjp7ImJyZWFrcG9pbnRJZCI6InNvbWVCcmVha3BvaW50SWQi
fX0nLAogICAgIF07CiAgICAgdmFyIG51bWJlck9mUmVwb3J0cyA9IDA7CiAKQEAgLTM1LDcgKzMz
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
c2VuZE1lc3NhZ2VUb0JhY2tlbmQobWVzc2FnZXNbaV0pOwogICAgIH0KIAotICAgIEluc3BlY3Rv
ckFnZW50LmRpc2FibGVEZWJ1Z2dlcihmaXJlKTsKKyAgICBEZWJ1Z2dlckFnZW50LmRpc2FibGUo
ZmlyZSk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQwZWJiY2NkMDM2MmRhM2Y2MjIw
ZGIyZWVmODE4M2QzOGJlMWVmN2YuLjk3NTZhYmZlYjg2MTg3ZjM3MDgzMTFlOWY2Njc0YmY5ZDkz
MDViNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAxMS0wMi0yOCAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBkZWJ1Z2dlciBhZ2VudHMgc2hv
dWxkIGhhdmUgc2FtZSBsaXZldGltZSBhcyBJbnNwZWN0b3JBZ2VudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUzNjkKKworICAgICAgICBET00gYW5k
IEpTIGRlYnVnZ2VyIGFnZW50cyBhcmUgbm93IGNyZWF0ZWQgaW4gSW5zcGVjdG9yQWdlbnQncyBj
b25zdHJ1Y3RvciBhbmQgb3duZWQKKyAgICAgICAgYnkgdGhlIGFnZW50LiBEZWJ1Z2dlciBzdGF0
ZSBpcyBjbGVhcmVkIG9uIGZyb250ZW5kIGRpc2Nvbm5lY3QuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpyZXN0b3JlSW5zcGVjdG9yU3RhdGVGcm9t
Q29va2llKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpzZXRGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6ZGlzY29ubmVjdEZyb250ZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50Ojpwb3B1bGF0ZVNjcmlwdE9iamVjdHMp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmRpZENvbW1pdExvYWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OnNob3dTY3JpcHRzUGFuZWwpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6fkluc3Bl
Y3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJy
b3dzZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlcldhc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyV2FzRGlzYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OnNldEZy
b250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
OjpjbGVhckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJyb3dzZXJEZWJ1
Z2dlckFnZW50OjpzZXRBbGxCcm93c2VyQnJlYWtwb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6Omluc3BlY3RlZFVSTENoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OnNldERPTUJyZWFr
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6
OnJlbW92ZURPTUJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQ6OndpbGxJbnNlcnRET01Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojp3aWxsUmVtb3ZlRE9NTm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6d2lsbE1vZGlmeURPTUF0
dHIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OmRl
c2NyaXB0aW9uRm9yRE9NRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQ6OnBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojp3aWxsU2VuZFhNTEh0dHBSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojpj
bGVhcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGVidWdnZXJFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNob3dBbmRFbmFibGVEZWJ1Z2dlcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNhYmxlRGVidWdnZXIp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6On5JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnN0
YXJ0VXNlckluaXRpYXRlZERlYnVnZ2luZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0
RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2xl
YXJGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpz
ZXRKYXZhU2NyaXB0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpyZW1vdmVKYXZhU2NyaXB0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmdldENvbXBsZXRpb25zT25DYWxsRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y3VycmVudENh
bGxGcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlk
UGFyc2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
Y2xlYXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjplbmFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpMaXN0ZW5lcjo6fkxpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldExpc3RlbmVyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGVJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zZXJ0
RE9NTm9kZUltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUmVtb3ZlRE9NTm9kZUltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZW1vdmVET01Ob2RlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxNb2RpZnlET01BdHRySW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVl
c3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cGF1
c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnBy
b3RvdHlwZS5lbmFibGVEZWJ1Z2dlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5wcm90b3R5cGUuZGlzYWJsZURlYnVnZ2VyKToKKwogMjAxMS0wMi0yOCAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5
IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCBk
YTEwM2MwODNiNWExMjNkOWFlMDU5ZDNjYjlmYTY1ODE2Njg4NGNhLi45MmMxNTZmMmFmODY3Y2Ji
YTQ4MzY5ZTk4YjZjZWMyODNiOTM1MjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmlkbApAQCAtNjUsOCArNjUsNiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgLy8gRklY
TUU6IGRpc3BhdGNoIG9uIGFnZW50cy4KICNpZiBkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBUX0RF
QlVHR0VSKSAmJiBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgotICAgICAgICB2b2lkIGVuYWJs
ZURlYnVnZ2VyKCk7Ci0gICAgICAgIHZvaWQgZGlzYWJsZURlYnVnZ2VyKCk7CiAgICAgICAgIHZv
aWQgZW5hYmxlUHJvZmlsZXIoKTsKICAgICAgICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoKTsKICAg
ICAgICAgdm9pZCBzdGFydFByb2ZpbGluZygpOwpAQCAtMjAxLDYgKzE5OSw4IEBAIG1vZHVsZSBj
b3JlIHsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSCiAgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1JTlNQRUNU
T1JdIERlYnVnZ2VyIHsKKyAgICAgICAgdm9pZCBlbmFibGUoKTsKKyAgICAgICAgdm9pZCBkaXNh
YmxlKCk7CiAgICAgICAgIFtldmVudF0gdm9pZCBkZWJ1Z2dlcldhc0VuYWJsZWQoKTsKICAgICAg
ICAgW2V2ZW50XSB2b2lkIGRlYnVnZ2VyV2FzRGlzYWJsZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggZDc1M2NmZmJkMTRiODEzYzdkYTg5
MTVlMjcwYThjYWZlZTVlMGRiNi4uZWI1NzIzMTNjMDA3NmU0NzQ5ZDU5NDYzMjk2NmQ3NmExMThh
MjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCkBA
IC0xNTAsNiArMTUwLDggQEAgSW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KFBhZ2UqIHBh
Z2UsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgICwgbV90aW1lbGluZUFnZW50KEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
c3RhdGUuZ2V0KCkpKQogICAgICwgbV9jb25zb2xlQWdlbnQobmV3IEluc3BlY3RvckNvbnNvbGVB
Z2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHRoaXMsIG1fc3RhdGUuZ2V0KCksIG1f
aW5qZWN0ZWRTY3JpcHRIb3N0LmdldCgpLCBtX2RvbUFnZW50LmdldCgpKSkKICNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICAsIG1fZGVidWdnZXJBZ2VudChJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdl
dCgpLCBwYWdlLCBtX2luamVjdGVkU2NyaXB0SG9zdC5nZXQoKSkpCisgICAgLCBtX2Jyb3dzZXJE
ZWJ1Z2dlckFnZW50KEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2RvbUFnZW50LmdldCgpLCBt
X2RlYnVnZ2VyQWdlbnQuZ2V0KCksIHRoaXMpKQogICAgICwgbV9wcm9maWxlckFnZW50KEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSh0aGlzKSkKICNlbmRpZgogewpAQCAtMjA3LDcgKzIw
OSw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21Db29r
aWUoY29uc3QgU3RyaW5nJiBpbnNwZWN0b3JTdGF0CiAgICAgbV90aW1lbGluZUFnZW50LT5yZXN0
b3JlKG1fc3RhdGUuZ2V0KCksIG1fZnJvbnRlbmQpOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCi0gICAgcmVzdG9yZURlYnVnZ2VyKGZhbHNlKTsKKyAgICBtX2RlYnVnZ2VyQWdl
bnQtPnJlc3RvcmUoKTsKICAgICByZXN0b3JlUHJvZmlsZXIoUHJvZmlsZXJSZXN0b3JlUmVzZXRB
Z2VudCk7CiAgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oSW5zcGVjdG9yQWdlbnRTdGF0ZTo6
dXNlckluaXRpYXRlZFByb2ZpbGluZykpCiAgICAgICAgIHN0YXJ0VXNlckluaXRpYXRlZFByb2Zp
bGluZygpOwpAQCAtMzYzLDYgKzM2NSwxMCBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpzZXRGcm9u
dGVuZChJbnNwZWN0b3JGcm9udGVuZCogaW5zcGVjdG9yRnJvbnRlbmQpCiAgICAgbV9kb21BZ2Vu
dC0+c2V0RnJvbnRlbmQobV9mcm9udGVuZCk7CiAgICAgbV9jb25zb2xlQWdlbnQtPnNldEZyb250
ZW5kKG1fZnJvbnRlbmQpOwogICAgIG1fdGltZWxpbmVBZ2VudC0+c2V0RnJvbnRlbmQobV9mcm9u
dGVuZCk7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgbV9kZWJ1Z2dlckFn
ZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kKTsKKyAgICBtX2Jyb3dzZXJEZWJ1Z2dlckFnZW50
LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kKTsKKyNlbmRpZgogI2lmIEVOQUJMRShEQVRBQkFTRSkK
ICAgICBtX2RhdGFiYXNlQWdlbnQtPnNldEZyb250ZW5kKG1fZnJvbnRlbmQpOwogI2VuZGlmCkBA
IC0zODYsMTAgKzM5Miw4IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpc2Nvbm5lY3RGcm9udGVu
ZCgpCiAKICAgICBFcnJvclN0cmluZyBlcnJvcjsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKLSAgICAvLyBJZiB0aGUgd2luZG93IGlzIGJlaW5nIGNsb3NlZCB3aXRoIHRoZSBkZWJ1
Z2dlciBlbmFibGVkLAotICAgIC8vIHJlbWVtYmVyIHRoaXMgc3RhdGUgdG8gcmUtZW5hYmxlIGRl
YnVnZ2VyIG9uIHRoZSBuZXh0IHdpbmRvdwotICAgIC8vIG9wZW5pbmcuCi0gICAgZGlzYWJsZURl
YnVnZ2VyKCZlcnJvcik7CisgICAgbV9kZWJ1Z2dlckFnZW50LT5jbGVhckZyb250ZW5kKCk7Cisg
ICAgbV9icm93c2VyRGVidWdnZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogI2VuZGlmCiAgICAg
c2V0U2VhcmNoaW5nRm9yTm9kZShmYWxzZSk7CiAKQEAgLTQ2MCw3ICs0NjQsNiBAQCB2b2lkIElu
c3BlY3RvckFnZW50Ojpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoRXJyb3JTdHJpbmcqKQogICAgICAg
ICBtX3Nob3dQYW5lbEFmdGVyVmlzaWJsZSA9ICIiOwogICAgIH0KIAotICAgIHJlc3RvcmVEZWJ1
Z2dlcih0cnVlKTsKICAgICByZXN0b3JlUHJvZmlsZXIoUHJvZmlsZXJSZXN0b3JlTm9BY3Rpb24p
OwogCiAgICAgLy8gRGlzcGF0Y2ggcGVuZGluZyBmcm9udGVuZCBjb21tYW5kcwpAQCAtNDgyLDE1
ICs0ODUsNiBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpwdXNoRGF0YUNvbGxlY3RlZE9mZmxpbmUo
KQogI2VuZGlmCiB9CiAKLXZvaWQgSW5zcGVjdG9yQWdlbnQ6OnJlc3RvcmVEZWJ1Z2dlcihib29s
IGVyYXNlU3RpY2t5QnJlYWtwb2ludHMpCi17Ci0gICAgQVNTRVJUKG1fZnJvbnRlbmQpOwotI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFu
KEluc3BlY3RvckFnZW50U3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCkpCi0gICAgICAgIGVuYWJsZURl
YnVnZ2VyKGVyYXNlU3RpY2t5QnJlYWtwb2ludHMpOwotI2VuZGlmCi19Ci0KIHZvaWQgSW5zcGVj
dG9yQWdlbnQ6OnJlc3RvcmVQcm9maWxlcihQcm9maWxlclJlc3RvcmVBY3Rpb24gYWN0aW9uKQog
ewogICAgIEFTU0VSVChtX2Zyb250ZW5kKTsKQEAgLTUzMSwxMSArNTI1LDExIEBAIHZvaWQgSW5z
cGVjdG9yQWdlbnQ6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgICAgIGlmIChtX2RlYnVn
Z2VyQWdlbnQpIHsKKyAgICAgICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2Vy
QWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkg
ewogICAgICAgICAgICAgS1VSTCB1cmwgPSBpbnNwZWN0ZWRVUkxXaXRob3V0RnJhZ21lbnQoKTsK
LSAgICAgICAgICAgIG1fZGVidWdnZXJBZ2VudC0+aW5zcGVjdGVkVVJMQ2hhbmdlZCh1cmwpOwot
ICAgICAgICAgICAgaWYgKG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQpCi0gICAgICAgICAgICAgICAg
bV9icm93c2VyRGVidWdnZXJBZ2VudC0+aW5zcGVjdGVkVVJMQ2hhbmdlZCh1cmwpOworICAgICAg
ICAgICAgZGVidWdnZXJBZ2VudC0+aW5zcGVjdGVkVVJMQ2hhbmdlZCh1cmwpOworICAgICAgICAg
ICAgaWYgKEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50KiBicm93c2VyRGVidWdnZXJBZ2Vu
dCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQo
KSkKKyAgICAgICAgICAgICAgICBicm93c2VyRGVidWdnZXJBZ2VudC0+aW5zcGVjdGVkVVJMQ2hh
bmdlZCh1cmwpOwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtODM1LDQ1ICs4MjksOSBAQCB2b2lk
IEluc3BlY3RvckFnZW50OjpkaXNhYmxlUHJvZmlsZXIoRXJyb3JTdHJpbmcqKQogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLXZvaWQgSW5zcGVjdG9yQWdlbnQ6OnN0
YXJ0VXNlckluaXRpYXRlZERlYnVnZ2luZygpCit2b2lkIEluc3BlY3RvckFnZW50OjpzaG93U2Ny
aXB0c1BhbmVsKCkKIHsKLSAgICBpZiAoZGVidWdnZXJFbmFibGVkKCkpCi0gICAgICAgIHJldHVy
bjsKLQogICAgIHNob3dQYW5lbChzY3JpcHRzUGFuZWxOYW1lKTsKLSAgICBpZiAoIW1fZnJvbnRl
bmQpIHsKLSAgICAgICAgLy8gV2UgYXJlIGNhbGxlZCBhZnRlciBzaG93KCksIHNldCB0aGUgZGVi
dWdnZXJFbmFibGVkIGZsYWcgc28gdGhhdCBpdCB3YXMgZW5hYmxlZAotICAgICAgICAvLyB1cG9u
IGZyb250ZW5kIG9wZW5pbmcuCi0gICAgICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oSW5zcGVjdG9y
QWdlbnRTdGF0ZTo6ZGVidWdnZXJFbmFibGVkLCB0cnVlKTsKLSAgICB9IGVsc2UKLSAgICAgICAg
ZW5hYmxlRGVidWdnZXIodHJ1ZSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQWdlbnQ6OmVuYWJsZURl
YnVnZ2VyKGJvb2wgZXJhc2VTdGlja3lCcmVha3BvaW50cykKLXsKLSAgICBpZiAoZGVidWdnZXJF
bmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluc3Bl
Y3RvckFnZW50U3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCwgdHJ1ZSk7Ci0gICAgQVNTRVJUKG1faW5z
cGVjdGVkUGFnZSk7Ci0KLSAgICBtX2RlYnVnZ2VyQWdlbnQgPSBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpjcmVhdGUodGhpcywgbV9mcm9udGVuZCwgZXJhc2VTdGlja3lCcmVha3BvaW50cyk7Ci0g
ICAgbV9icm93c2VyRGVidWdnZXJBZ2VudCA9IEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
OjpjcmVhdGUodGhpcywgZXJhc2VTdGlja3lCcmVha3BvaW50cyk7Ci0KLSAgICBtX2Zyb250ZW5k
LT5kZWJ1Z2dlcldhc0VuYWJsZWQoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlzYWJs
ZURlYnVnZ2VyKEVycm9yU3RyaW5nKikKLXsKLSAgICBpZiAoIWVuYWJsZWQoKSkKLSAgICAgICAg
cmV0dXJuOwotICAgIEFTU0VSVChtX2luc3BlY3RlZFBhZ2UpOwotICAgIG1fZGVidWdnZXJBZ2Vu
dC5jbGVhcigpOwotICAgIG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQuY2xlYXIoKTsKLQotICAgIGlm
IChtX2Zyb250ZW5kKSB7Ci0gICAgICAgIG1fZnJvbnRlbmQtPmRlYnVnZ2VyV2FzRGlzYWJsZWQo
KTsKLSAgICAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JBZ2VudFN0YXRlOjpkZWJ1
Z2dlckVuYWJsZWQsIGZhbHNlKTsKLSAgICB9CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaAppbmRleCA0NGE0NjExODExODhkN2FlNjg4Yjg3NGUx
ZjQwM2E3ODhiZDAwMDI4Li4wMzgzMzYxOWZlMzhkNzA1NjY3YjA4MmFjOGZkMjczYmVjMzBiY2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaApAQCAtMjA2LDEx
ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoRXJyb3JTdHJpbmcq
IGVycm9yKTsKICAgICBib29sIHByb2ZpbGVyRW5hYmxlZCgpIGNvbnN0OwogCi0gICAgdm9pZCBz
dGFydFVzZXJJbml0aWF0ZWREZWJ1Z2dpbmcoKTsKLSAgICB2b2lkIGVuYWJsZURlYnVnZ2VyKEVy
cm9yU3RyaW5nKikgeyBlbmFibGVEZWJ1Z2dlcihmYWxzZSk7IH0KLSAgICB2b2lkIGVuYWJsZURl
YnVnZ2VyKGJvb2wgZXJhc2VTdGlja3lCcmVha3BvaW50cyk7Ci0gICAgdm9pZCBkaXNhYmxlRGVi
dWdnZXIoRXJyb3JTdHJpbmcqIGVycm9yKTsKLSAgICBib29sIGRlYnVnZ2VyRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVidWdnZXJBZ2VudDsgfQorICAgIHZvaWQgc2hvd1NjcmlwdHNQYW5l
bCgpOwogI2VuZGlmCiAKICAgICAvLyBHZW5lcmljIGNvZGUgY2FsbGVkIGZyb20gY3VzdG9tIGlt
cGxlbWVudGF0aW9ucy4KQEAgLTIzNiw3ICsyMzIsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IHZvaWQgc2hvd1BhbmVsKGNvbnN0IFN0cmluZyYgcGFuZWwpOwogICAgIHZvaWQgcHVzaERhdGFD
b2xsZWN0ZWRPZmZsaW5lKCk7Ci0gICAgdm9pZCByZXN0b3JlRGVidWdnZXIoYm9vbCBlcmFzZVN0
aWNreUJyZWFrcG9pbnRzKTsKICAgICBlbnVtIFByb2ZpbGVyUmVzdG9yZUFjdGlvbiB7CiAgICAg
ICAgIFByb2ZpbGVyUmVzdG9yZU5vQWN0aW9uID0gMCwKICAgICAgICAgUHJvZmlsZXJSZXN0b3Jl
UmVzZXRBZ2VudCA9IDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDE3NmMzYWE3MjgzYWQ2MzBl
YTJhNTQzZThjNjQ2ODYwNDc2MWQ1ZGQuLjgxZWJhNDFjNWJlNmE2NzlkYTNiODUyNDM4ZTIyMmZm
MDM3MmYwZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JC
cm93c2VyRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmNwcApAQCAtMzUsMTEgKzM1LDExIEBACiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAKICNpbmNs
dWRlICJIVE1MRWxlbWVudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckFnZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1
ZXMuaCIKKyNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgewpAQCAtNjYsMzYgKzY2LDcyIEBAIG5hbWVzcGFj
ZSBCcm93c2VyRGVidWdnZXJBZ2VudFN0YXRlIHsKIHN0YXRpYyBjb25zdCBjaGFyIGJyb3dzZXJC
cmVha3BvaW50c1tdID0gImJyb3dzZXJCcmVha3BvaW50cyI7CiB9CiAKLVBhc3NPd25QdHI8SW5z
cGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ+IEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
OjpjcmVhdGUoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBib29sIGVyYXNlU3RpY2t5
QnJlYWtwb2ludHMpCitQYXNzT3duUHRyPEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50PiBJ
bnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5z
cGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50LCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dl
ckFnZW50LCBJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudChpbnNwZWN0b3JBZ2VudCwg
ZXJhc2VTdGlja3lCcmVha3BvaW50cykpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVj
dG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3Rh
dGUsIGRvbUFnZW50LCBkZWJ1Z2dlckFnZW50LCBpbnNwZWN0b3JBZ2VudCkpOwogfQogCi1JbnNw
ZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQo
SW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBib29sIGVyYXNlU3RpY2t5QnJlYWtwb2lu
dHMpCi0gICAgOiBtX2luc3BlY3RvckFnZW50KGluc3BlY3RvckFnZW50KQorSW5zcGVjdG9yQnJv
d3NlckRlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0
b3JTdGF0ZSwgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50LCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KiBkZWJ1Z2dlckFnZW50LCBJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQpCisgICAg
OiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKKyAgICAsIG1faW5z
cGVjdG9yU3RhdGUoaW5zcGVjdG9yU3RhdGUpCisgICAgLCBtX2RvbUFnZW50KGRvbUFnZW50KQor
ICAgICwgbV9kZWJ1Z2dlckFnZW50KGRlYnVnZ2VyQWdlbnQpCisgICAgLCBtX2luc3BlY3RvckFn
ZW50KGluc3BlY3RvckFnZW50KQogICAgICwgbV9oYXNYSFJCcmVha3BvaW50V2l0aEVtcHR5VVJM
KGZhbHNlKQogewotICAgIGlmIChlcmFzZVN0aWNreUJyZWFrcG9pbnRzKQotICAgICAgICBpbnNw
ZWN0b3JBZ2VudC0+c3RhdGUoKS0+c2V0T2JqZWN0KEJyb3dzZXJEZWJ1Z2dlckFnZW50U3RhdGU6
OmJyb3dzZXJCcmVha3BvaW50cywgSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7CisgICAgbV9k
ZWJ1Z2dlckFnZW50LT5zZXRMaXN0ZW5lcih0aGlzKTsKIH0KIAogSW5zcGVjdG9yQnJvd3NlckRl
YnVnZ2VyQWdlbnQ6On5JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCgpCiB7CisgICAgbV9k
ZWJ1Z2dlckFnZW50LT5zZXRMaXN0ZW5lcigwKTsKKyAgICBjbGVhckZyb250ZW5kKCk7Cit9CisK
Ky8vIEJyb3dzZXIgZGVidWdnZXIgYWdlbnQgZW5hYmxlZCBvbmx5IHdoZW4gSlMgZGVidWdnZXIg
aXMgZW5hYmxlZC4KK3ZvaWQgSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2Vy
V2FzRW5hYmxlZCgpCit7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JC
cm93c2VyRGVidWdnZXJBZ2VudCh0aGlzKTsKK30KKwordm9pZCBJbnNwZWN0b3JCcm93c2VyRGVi
dWdnZXJBZ2VudDo6ZGVidWdnZXJXYXNEaXNhYmxlZCgpCit7CisgICAgZGlzYWJsZSgpOworfQor
Cit2b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCkKK3sKKyAgICBt
X2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50KDAp
OworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6
OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKikKK3sKKyAgICAvLyBFcmFzZSBzdGlja3kg
YnJlYWtwb2ludHMuIElmIHdlIGFyZSByZXN0b3JpbmcgZnJvbSBhIGNvb2tpZSBzZXRGcm9udGVu
ZCBtc3V0IGJlIGNhbGxlZAorICAgIC8vIGJlZm9yZSB0aGUgc3RhdGUgaXMgbG9hZGVkIGZyb20g
dGhlIGNvb2tpZS4KKyAgICBtX2luc3BlY3RvclN0YXRlLT5zZXRPYmplY3QoQnJvd3NlckRlYnVn
Z2VyQWdlbnRTdGF0ZTo6YnJvd3NlckJyZWFrcG9pbnRzLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpKTsKK30KKwordm9pZCBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6Y2xlYXJGcm9u
dGVuZCgpCit7CisgICAgZGlzYWJsZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1
Z2dlckFnZW50OjpzZXRBbGxCcm93c2VyQnJlYWtwb2ludHMoRXJyb3JTdHJpbmcqLCBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gYnJlYWtwb2ludHMpCiB7Ci0gICAgbV9pbnNwZWN0b3JBZ2Vu
dC0+c3RhdGUoKS0+c2V0T2JqZWN0KEJyb3dzZXJEZWJ1Z2dlckFnZW50U3RhdGU6OmJyb3dzZXJC
cmVha3BvaW50cywgYnJlYWtwb2ludHMpOworICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldE9iamVj
dChCcm93c2VyRGVidWdnZXJBZ2VudFN0YXRlOjpicm93c2VyQnJlYWtwb2ludHMsIGJyZWFrcG9p
bnRzKTsKKyAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgY2FsbCB0byBpbnNwZWN0b3IgYWdlbnQg
YW5kIGRlcGVuZGVuY3kgb24gdGhlIGluc3BlY3RvciBhZ2VudC4KICAgICBpbnNwZWN0ZWRVUkxD
aGFuZ2VkKG1faW5zcGVjdG9yQWdlbnQtPmluc3BlY3RlZFVSTFdpdGhvdXRGcmFnbWVudCgpKTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6aW5zcGVjdGVkVVJMQ2hh
bmdlZChjb25zdCBTdHJpbmcmIHVybCkKIHsKKyAgICBBU1NFUlQobV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5pbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCgpKTsKICAgICBtX2V2ZW50TGlzdGVu
ZXJCcmVha3BvaW50cy5jbGVhcigpOwogICAgIG1fWEhSQnJlYWtwb2ludHMuY2xlYXIoKTsKICAg
ICBtX2hhc1hIUkJyZWFrcG9pbnRXaXRoRW1wdHlVUkwgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGFsbEJyZWFrcG9pbnRzID0gbV9pbnNwZWN0b3JBZ2VudC0+c3RhdGUo
KS0+Z2V0T2JqZWN0KEJyb3dzZXJEZWJ1Z2dlckFnZW50U3RhdGU6OmJyb3dzZXJCcmVha3BvaW50
cyk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYWxsQnJlYWtwb2ludHMgPSBtX2luc3Bl
Y3RvclN0YXRlLT5nZXRPYmplY3QoQnJvd3NlckRlYnVnZ2VyQWdlbnRTdGF0ZTo6YnJvd3NlckJy
ZWFrcG9pbnRzKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJyZWFrcG9pbnRzID0gYWxs
QnJlYWtwb2ludHMtPmdldEFycmF5KHVybCk7CiAgICAgaWYgKCFicmVha3BvaW50cykKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTgwLDcgKzIxNiw3IEBAIHZvaWQgSW5zcGVjdG9yQnJvd3NlckRlYnVn
Z2VyQWdlbnQ6OmRpZFJlbW92ZURPTU5vZGUoTm9kZSogbm9kZSkKIAogdm9pZCBJbnNwZWN0b3JC
cm93c2VyRGVidWdnZXJBZ2VudDo6c2V0RE9NQnJlYWtwb2ludChFcnJvclN0cmluZyosIGxvbmcg
bm9kZUlkLCBsb25nIHR5cGUpCiB7Ci0gICAgTm9kZSogbm9kZSA9IG1faW5zcGVjdG9yQWdlbnQt
PmRvbUFnZW50KCktPm5vZGVGb3JJZChub2RlSWQpOworICAgIE5vZGUqIG5vZGUgPSBtX2RvbUFn
ZW50LT5ub2RlRm9ySWQobm9kZUlkKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMTk0LDcgKzIzMCw3IEBAIHZvaWQgSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6
OnNldERPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCwKIAogdm9pZCBJbnNw
ZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6cmVtb3ZlRE9NQnJlYWtwb2ludChFcnJvclN0cmlu
ZyosIGxvbmcgbm9kZUlkLCBsb25nIHR5cGUpCiB7Ci0gICAgTm9kZSogbm9kZSA9IG1faW5zcGVj
dG9yQWdlbnQtPmRvbUFnZW50KCktPm5vZGVGb3JJZChub2RlSWQpOworICAgIE5vZGUqIG5vZGUg
PSBtX2RvbUFnZW50LT5ub2RlRm9ySWQobm9kZUlkKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMjEzLDcgKzI0OSw3IEBAIHZvaWQgSW5zcGVjdG9yQnJvd3NlckRlYnVn
Z2VyQWdlbnQ6OnJlbW92ZURPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJCiAK
IHZvaWQgSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OndpbGxJbnNlcnRET01Ob2RlKE5v
ZGUqLCBOb2RlKiBwYXJlbnQpCiB7Ci0gICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdn
ZXJBZ2VudCA9IG1faW5zcGVjdG9yQWdlbnQtPmRlYnVnZ2VyQWdlbnQoKTsKKyAgICBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gbV9kZWJ1Z2dlckFnZW50OwogICAgIGlm
ICghZGVidWdnZXJBZ2VudCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMjcsNyArMjYzLDcgQEAg
dm9pZCBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6d2lsbEluc2VydERPTU5vZGUoTm9k
ZSosIE5vZGUqIHBhcmVudCkKIAogdm9pZCBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6
d2lsbFJlbW92ZURPTU5vZGUoTm9kZSogbm9kZSkKIHsKLSAgICBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KiBkZWJ1Z2dlckFnZW50ID0gbV9pbnNwZWN0b3JBZ2VudC0+ZGVidWdnZXJBZ2VudCgpOwor
ICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBtX2RlYnVnZ2VyQWdl
bnQ7CiAgICAgaWYgKCFkZWJ1Z2dlckFnZW50KQogICAgICAgICByZXR1cm47CiAKQEAgLTI0Niw3
ICsyODIsNyBAQCB2b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojp3aWxsUmVtb3Zl
RE9NTm9kZShOb2RlKiBub2RlKQogCiB2b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
Ojp3aWxsTW9kaWZ5RE9NQXR0cihFbGVtZW50KiBlbGVtZW50KQogewotICAgIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBtX2luc3BlY3RvckFnZW50LT5kZWJ1Z2dlckFn
ZW50KCk7CisgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IG1fZGVi
dWdnZXJBZ2VudDsKICAgICBpZiAoIWRlYnVnZ2VyQWdlbnQpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMjY2LDcgKzMwMiw3IEBAIHZvaWQgSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OmRl
c2NyaXB0aW9uRm9yRE9NRXZlbnQoTm9kZSogdGFyZ2V0LCBsb25nIGJyCiAgICAgaWYgKCgxIDw8
IGJyZWFrcG9pbnRUeXBlKSAmIGluaGVyaXRhYmxlRE9NQnJlYWtwb2ludFR5cGVzTWFzaykgewog
ICAgICAgICAvLyBGb3IgaW5oZXJpdGFibGUgYnJlYWtwb2ludCB0eXBlcywgdGFyZ2V0IG5vZGUg
aXNuJ3QgYWx3YXlzIHRoZSBzYW1lIGFzIHRoZSBub2RlIHRoYXQgb3ducyBhIGJyZWFrcG9pbnQu
CiAgICAgICAgIC8vIFRhcmdldCBub2RlIG1heSBiZSB1bmtub3duIHRvIGZyb250ZW5kLCBzbyB3
ZSBuZWVkIHRvIHB1c2ggaXQgZmlyc3QuCi0gICAgICAgIGxvbmcgdGFyZ2V0Tm9kZUlkID0gbV9p
bnNwZWN0b3JBZ2VudC0+ZG9tQWdlbnQoKS0+cHVzaE5vZGVQYXRoVG9Gcm9udGVuZCh0YXJnZXQp
OworICAgICAgICBsb25nIHRhcmdldE5vZGVJZCA9IG1fZG9tQWdlbnQtPnB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQodGFyZ2V0KTsKICAgICAgICAgQVNTRVJUKHRhcmdldE5vZGVJZCk7CiAgICAgICAg
IGRlc2NyaXB0aW9uLT5zZXROdW1iZXIoInRhcmdldE5vZGVJZCIsIHRhcmdldE5vZGVJZCk7CiAK
QEAgLTI4Myw3ICszMTksNyBAQCB2b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojpk
ZXNjcmlwdGlvbkZvckRPTUV2ZW50KE5vZGUqIHRhcmdldCwgbG9uZyBicgogICAgICAgICAgICAg
ZGVzY3JpcHRpb24tPnNldEJvb2xlYW4oImluc2VydGlvbiIsIGluc2VydGlvbik7CiAgICAgfQog
Ci0gICAgbG9uZyBicmVha3BvaW50T3duZXJOb2RlSWQgPSBtX2luc3BlY3RvckFnZW50LT5kb21B
Z2VudCgpLT5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGJyZWFrcG9pbnRPd25lcik7CisgICAgbG9u
ZyBicmVha3BvaW50T3duZXJOb2RlSWQgPSBtX2RvbUFnZW50LT5wdXNoTm9kZVBhdGhUb0Zyb250
ZW5kKGJyZWFrcG9pbnRPd25lcik7CiAgICAgQVNTRVJUKGJyZWFrcG9pbnRPd25lck5vZGVJZCk7
CiAgICAgZGVzY3JpcHRpb24tPnNldE51bWJlcigibm9kZUlkIiwgYnJlYWtwb2ludE93bmVyTm9k
ZUlkKTsKICAgICBkZXNjcmlwdGlvbi0+c2V0TnVtYmVyKCJ0eXBlIiwgYnJlYWtwb2ludFR5cGUp
OwpAQCAtMzE2LDcgKzM1Miw3IEBAIHZvaWQgSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6
OnVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhOb2RlKiBub2RlLCB1aW50MzJfCiAKIHZvaWQgSW5z
cGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OnBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGNv
bnN0IFN0cmluZyYgY2F0ZWdvcnlUeXBlLCBjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSwgYm9vbCBz
eW5jaHJvbm91cykKIHsKLSAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50
ID0gbV9pbnNwZWN0b3JBZ2VudC0+ZGVidWdnZXJBZ2VudCgpOworICAgIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBtX2RlYnVnZ2VyQWdlbnQ7CiAgICAgaWYgKCFkZWJ1
Z2dlckFnZW50KQogICAgICAgICByZXR1cm47CiAKQEAgLTM1MSw3ICszODcsNyBAQCB2b2lkIElu
c3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpyZW1vdmVYSFJCcmVha3BvaW50KEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaQogCiB2b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojp3
aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBtX2luc3BlY3RvckFnZW50LT5kZWJ1Z2dl
ckFnZW50KCk7CisgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IG1f
ZGVidWdnZXJBZ2VudDsKICAgICBpZiAoIWRlYnVnZ2VyQWdlbnQpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMzc3LDYgKzQxMywxNCBAQCB2b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
Ojp3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKQogICAgIGRlYnVnZ2Vy
QWdlbnQtPmJyZWFrUHJvZ3JhbShOYXRpdmVCcmVha3BvaW50RGVidWdnZXJFdmVudFR5cGUsIGV2
ZW50RGF0YS5yZWxlYXNlKCkpOwogfQogCit2b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFn
ZW50OjpjbGVhcigpCit7CisgICAgbV9kb21CcmVha3BvaW50cy5jbGVhcigpOworICAgIG1fZXZl
bnRMaXN0ZW5lckJyZWFrcG9pbnRzLmNsZWFyKCk7CisgICAgbV9YSFJCcmVha3BvaW50cy5jbGVh
cigpOworICAgIG1faGFzWEhSQnJlYWtwb2ludFdpdGhFbXB0eVVSTCA9IGZhbHNlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKSAmJiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmgKaW5kZXggODA0ZTNhMzQy
N2U3ZmJjMWRlZjU0MDJjYjBiOGFiYzI3OGJlNGNhOS4uN2MwYmM4ZDhmMGZiOGJjMmYxZTEzMWZj
YjI5MjU2MzYxYTg4NDc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmgKQEAgLTMzLDggKzMzLDggQEAKIAog
I2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQogCisj
aW5jbHVkZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCi0KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTQ1LDE4ICs0NSwyNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBJbnNwZWN0b3JBZ2VudDsK
K2NsYXNzIEluc3BlY3RvckRPTUFnZW50OworY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDsK
K2NsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yT2JqZWN0OworY2xhc3Mg
SW5zcGVjdG9yU3RhdGU7CitjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgTm9kZTsK
IAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvckJyb3dzZXJE
ZWJ1Z2dlckFnZW50IHsKK2NsYXNzIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50IDogcHVi
bGljIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okxpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCk7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnNw
ZWN0b3JBZ2VudCosIGJvb2wgZXJhc2VTdGlja3lCcmVha3BvaW50cyk7CisgICAgc3RhdGljIFBh
c3NPd25QdHI8SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JET01BZ2VudCosIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JBZ2VudCopOwogCiAgICAgdmlydHVhbCB+SW5zcGVj
dG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQoKTsKIAorICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVj
dG9yRnJvbnRlbmQqKTsKKyAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKwogICAgIHZvaWQgc2V0
QWxsQnJvd3NlckJyZWFrcG9pbnRzKEVycm9yU3RyaW5nKiBlcnJvciwgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+KTsKICAgICB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5n
JiB1cmwpOwogCkBAIC03OCw3ICs4NiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVzZU9uTmF0
aXZlRXZlbnRJZk5lZWRlZChjb25zdCBTdHJpbmcmIGNhdGVnb3J5VHlwZSwgY29uc3QgU3RyaW5n
JiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMpOwogCiBwcml2YXRlOgotICAgIEluc3BlY3Rv
ckJyb3dzZXJEZWJ1Z2dlckFnZW50KEluc3BlY3RvckFnZW50KiwgYm9vbCBlcmFzZVN0aWNreUJy
ZWFrcG9pbnRzKTsKKyAgICBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JET01BZ2VudCosIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JBZ2VudCopOworCisgICAgLy8gSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6TGlzdGVuZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIGRl
YnVnZ2VyV2FzRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCBkZWJ1Z2dlcldhc0Rpc2FibGVk
KCk7CisgICAgdm9pZCBkaXNhYmxlKCk7CiAKICAgICB2b2lkIHJlc3RvcmVTdGlja3lCcmVha3Bv
aW50KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBicmVha3BvaW50KTsKIApAQCAtODcsNiAr
MTAwLDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNCcmVha3BvaW50KE5vZGUqLCBsb25nIHR5
cGUpOwogICAgIHZvaWQgZGlzY2FyZEJpbmRpbmdzKCk7CiAKKyAgICB2b2lkIGNsZWFyKCk7CisK
KyAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CisgICAgSW5z
cGVjdG9yU3RhdGUqIG1faW5zcGVjdG9yU3RhdGU7CisgICAgSW5zcGVjdG9yRE9NQWdlbnQqIG1f
ZG9tQWdlbnQ7CisgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogbV9kZWJ1Z2dlckFnZW50Owog
ICAgIEluc3BlY3RvckFnZW50KiBtX2luc3BlY3RvckFnZW50OwogICAgIEhhc2hNYXA8Tm9kZSos
IHVpbnQzMl90PiBtX2RvbUJyZWFrcG9pbnRzOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2V2ZW50
TGlzdGVuZXJCcmVha3BvaW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA4NTQ0ODczMmQ1MWMwM2YwMjExYjgzNTE0NDQ0MzVh
NTM3MDgxNTNkLi43OTc0ZjJhN2UyY2QzMDVkM2Y2MzdmNDEzMTZmNjI2MzI2Njk3ZTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ci5oIgorI2luY2x1ZGUgIkluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCkBAIC0yMzEsNyArMjMyLDcgQEAgYm9v
bCBJbnNwZWN0b3JDb250cm9sbGVyOjpwcm9maWxlckVuYWJsZWQoKQogCiBib29sIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRlYnVnZ2VyRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1faW5zcGVjdG9y
QWdlbnQtPmRlYnVnZ2VyRW5hYmxlZCgpOworICAgIHJldHVybiBtX2luc3BlY3RvckFnZW50LT5k
ZWJ1Z2dlckFnZW50KCktPmVuYWJsZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpzaG93QW5kRW5hYmxlRGVidWdnZXIoKQpAQCAtMjM5LDEzICsyNDAsMTMgQEAgdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpzaG93QW5kRW5hYmxlRGVidWdnZXIoKQogICAgIGlmICghZW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CiAgICAgc2hvdygpOwotICAgIG1faW5zcGVjdG9yQWdlbnQt
PnN0YXJ0VXNlckluaXRpYXRlZERlYnVnZ2luZygpOworICAgIG1faW5zcGVjdG9yQWdlbnQtPnNo
b3dTY3JpcHRzUGFuZWwoKTsKKyAgICBtX2luc3BlY3RvckFnZW50LT5kZWJ1Z2dlckFnZW50KCkt
PnN0YXJ0VXNlckluaXRpYXRlZERlYnVnZ2luZygpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OmRpc2FibGVEZWJ1Z2dlcigpCiB7Ci0gICAgRXJyb3JTdHJpbmcgZXJyb3I7Ci0gICAg
bV9pbnNwZWN0b3JBZ2VudC0+ZGlzYWJsZURlYnVnZ2VyKCZlcnJvcik7CisgICAgbV9pbnNwZWN0
b3JBZ2VudC0+ZGVidWdnZXJBZ2VudCgpLT5kaXNhYmxlKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6c3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAzZTg3
Zjc3NzhhZmE3YTYyNzllOTUxNmEyYzMwZjIzZjI3MWYwZThjLi4wOGZhNWU0NDEyYjdlZDllNzRk
OTA4N2RlZjRjYzJjMmJhYjUxYTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgorI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNjcmlwdERlYnVnU2Vy
dmVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KQEAgLTQzLDM1
ICs0NCwxMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIERlYnVnZ2VyQWdl
bnRTdGF0ZSB7CitzdGF0aWMgY29uc3QgY2hhciBkZWJ1Z2dlckVuYWJsZWRbXSA9ICJkZWJ1Z2dl
ckVuYWJsZWQiOworc3RhdGljIGNvbnN0IGNoYXIgZW5hYmxlV2hlblNob3duW10gPSAiZGVidWdn
ZXJFbmFibGVXaGVuU2hvd24iOwogc3RhdGljIGNvbnN0IGNoYXIgamF2YVNjcmlwdEJyZWFrcG9p
bnRzW10gPSAiamF2YVNjcmlwdEJyZWFrb3BpbnRzIjsKIH07CiAKLVBhc3NPd25QdHI8SW5zcGVj
dG9yRGVidWdnZXJBZ2VudD4gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBib29s
IGVyYXNlU3RpY2t5QnJlYWtwb2ludHMpCitQYXNzT3duUHRyPEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ+IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIFBhZ2Uq
IGluc3BlY3RlZFBhZ2UsIEluamVjdGVkU2NyaXB0SG9zdCogaW5qZWN0ZWRTY3JpcHRIb3N0KQog
ewotICAgIE93blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PiBhZ2VudCA9IGFkb3B0UHRyKG5l
dyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KGluc3BlY3RvckFnZW50LCBmcm9udGVuZCwgZXJhc2VT
dGlja3lCcmVha3BvaW50cykpOwotICAgIFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5jbGVh
ckJyZWFrcG9pbnRzKCk7Ci0gICAgLy8gRklYTUUoV0s0NDUxMyk6IGJyZWFrcG9pbnRzIGFjdGl2
YXRlZCBmbGFnIHNob3VsZCBiZSBzeW5jaHJvbml6ZWQgYmV0d2VlbiBhbGwgZnJvbnQtZW5kcwot
ICAgIFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5zZXRCcmVha3BvaW50c0FjdGl2YXRlZCh0
cnVlKTsKLSAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkuYWRkTGlzdGVuZXIoYWdlbnQu
Z2V0KCksIGluc3BlY3RvckFnZW50LT5pbnNwZWN0ZWRQYWdlKCkpOwotICAgIHJldHVybiBhZ2Vu
dC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBpbnNwZWN0ZWRQYWdlLCBp
bmplY3RlZFNjcmlwdEhvc3QpKTsKIH0KIAotSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIEluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCwgYm9vbCBlcmFzZVN0aWNreUJyZWFrcG9pbnRzKQotICAgIDog
bV9pbnNwZWN0b3JBZ2VudChpbnNwZWN0b3JBZ2VudCkKLSAgICAsIG1fZnJvbnRlbmQoZnJvbnRl
bmQpCitJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNw
ZWN0b3JTdGF0ZSwgUGFnZSogaW5zcGVjdGVkUGFnZSwgSW5qZWN0ZWRTY3JpcHRIb3N0KiBpbmpl
Y3RlZFNjcmlwdEhvc3QpCisgICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGlu
Z0FnZW50cykKKyAgICAsIG1faW5zcGVjdG9yU3RhdGUoaW5zcGVjdG9yU3RhdGUpCisgICAgLCBt
X2luc3BlY3RlZFBhZ2UoaW5zcGVjdGVkUGFnZSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRIb3N0
KGluamVjdGVkU2NyaXB0SG9zdCkKKyAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fcGF1c2Vk
U2NyaXB0U3RhdGUoMCkKICAgICAsIG1famF2YVNjcmlwdFBhdXNlU2NoZWR1bGVkKGZhbHNlKQor
ICAgICwgbV9saXN0ZW5lcigwKQogewotICAgIGlmIChlcmFzZVN0aWNreUJyZWFrcG9pbnRzKQot
ICAgICAgICBpbnNwZWN0b3JBZ2VudC0+c3RhdGUoKS0+c2V0T2JqZWN0KERlYnVnZ2VyQWdlbnRT
dGF0ZTo6amF2YVNjcmlwdEJyZWFrcG9pbnRzLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsK
IH0KIAogSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6fkluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKQog
ewotICAgIFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZW1vdmVMaXN0ZW5lcih0aGlzLCBt
X2luc3BlY3RvckFnZW50LT5pbnNwZWN0ZWRQYWdlKCkpOworICAgIFNjcmlwdERlYnVnU2VydmVy
OjpzaGFyZWQoKS5yZW1vdmVMaXN0ZW5lcih0aGlzLCBtX2luc3BlY3RlZFBhZ2UpOwogICAgIG1f
cGF1c2VkU2NyaXB0U3RhdGUgPSAwOwogfQogCit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OnN0YXJ0VXNlckluaXRpYXRlZERlYnVnZ2luZygpCit7CisgICAgaWYgKG1fZnJvbnRlbmQpCisg
ICAgICAgIGVuYWJsZShmYWxzZSk7CisgICAgZWxzZQorICAgICAgICBtX2luc3BlY3RvclN0YXRl
LT5zZXRCb29sZWFuKERlYnVnZ2VyQWdlbnRTdGF0ZTo6ZW5hYmxlV2hlblNob3duLCB0cnVlKTsK
K30KKwordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjplbmFibGUoYm9vbCByZXN0b3JpbmdG
cm9tU3RhdGUpCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmQpOworICAgIGlmICghcmVzdG9yaW5n
RnJvbVN0YXRlICYmIGVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1faW5zcGVjdG9y
U3RhdGUtPnNldEJvb2xlYW4oRGVidWdnZXJBZ2VudFN0YXRlOjpkZWJ1Z2dlckVuYWJsZWQsIHRy
dWUpOworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCh0aGlzKTsKKworICAgIFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5jbGVhckJyZWFrcG9p
bnRzKCk7CisgICAgLy8gRklYTUUoV0s0NDUxMyk6IGJyZWFrcG9pbnRzIGFjdGl2YXRlZCBmbGFn
IHNob3VsZCBiZSBzeW5jaHJvbml6ZWQgYmV0d2VlbiBhbGwgZnJvbnQtZW5kcworICAgIFNjcmlw
dERlYnVnU2VydmVyOjpzaGFyZWQoKS5zZXRCcmVha3BvaW50c0FjdGl2YXRlZCh0cnVlKTsKKyAg
ICBTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkuYWRkTGlzdGVuZXIodGhpcywgbV9pbnNwZWN0
ZWRQYWdlKTsKKworICAgIG1fZnJvbnRlbmQtPmRlYnVnZ2VyV2FzRW5hYmxlZCgpOworICAgIGlm
IChtX2xpc3RlbmVyKQorICAgICAgICBtX2xpc3RlbmVyLT5kZWJ1Z2dlcldhc0VuYWJsZWQoKTsK
K30KKwordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCkKK3sKKyAgICBpZiAo
IWVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJv
b2xlYW4oRGVidWdnZXJBZ2VudFN0YXRlOjpkZWJ1Z2dlckVuYWJsZWQsIGZhbHNlKTsKKyAgICBt
X2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckRlYnVnZ2VyQWdlbnQoMCk7CisKKyAg
ICBTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgbV9pbnNw
ZWN0ZWRQYWdlKTsKKyAgICBjbGVhcigpOworCisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAg
IG1fZnJvbnRlbmQtPmRlYnVnZ2VyV2FzRGlzYWJsZWQoKTsKKyAgICBpZiAobV9saXN0ZW5lcikK
KyAgICAgICAgbV9saXN0ZW5lci0+ZGVidWdnZXJXYXNEaXNhYmxlZCgpOworfQorCitib29sIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZWQoKQoreworICAgIHJldHVybiBtX2luc3BlY3Rv
clN0YXRlLT5nZXRCb29sZWFuKERlYnVnZ2VyQWdlbnRTdGF0ZTo6ZGVidWdnZXJFbmFibGVkKTsK
K30KKwordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpyZXN0b3JlKCkKK3sKKyAgICBpZiAo
bV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9vbGVhbihEZWJ1Z2dlckFnZW50U3RhdGU6OmRlYnVnZ2Vy
RW5hYmxlZCkpCisgICAgICAgIGVuYWJsZSh0cnVlKTsKK30KKwordm9pZCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCit7Cisg
ICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOworICAgIC8vIEVyYXNlIHN0aWNreSBicmVha3BvaW50
cy4gSWYgd2UgYXJlIHJlc3RvcmluZyBmcm9tIGEgY29va2llIHNldEZyb250ZW5kIG1zdXQgYmUg
Y2FsbGVkCisgICAgLy8gYmVmb3JlIHRoZSBzdGF0ZSBpcyBsb2FkZWQgZnJvbSB0aGUgY29va2ll
LgorICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldE9iamVjdChEZWJ1Z2dlckFnZW50U3RhdGU6Omph
dmFTY3JpcHRCcmVha3BvaW50cywgSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7CisgICAgaWYg
KG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xlYW4oRGVidWdnZXJBZ2VudFN0YXRlOjplbmFibGVX
aGVuU2hvd24pKSB7CisgICAgICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oRGVidWdn
ZXJBZ2VudFN0YXRlOjplbmFibGVXaGVuU2hvd24sIGZhbHNlKTsKKyAgICAgICAgZW5hYmxlKGZh
bHNlKTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2xlYXJGcm9u
dGVuZCgpCit7CisgICAgbV9mcm9udGVuZCA9IDA7CisKKyAgICBpZiAoIWVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIC8vIElmIHRoZSB3aW5kb3cgaXMgYmVpbmcgY2xvc2VkIHdpdGgg
dGhlIGRlYnVnZ2VyIGVuYWJsZWQsCisgICAgLy8gcmVtZW1iZXIgdGhpcyBzdGF0ZSB0byByZS1l
bmFibGUgZGVidWdnZXIgb24gdGhlIG5leHQgd2luZG93CisgICAgLy8gb3BlbmluZy4KKyAgICBk
aXNhYmxlKCk7CisgICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0Qm9vbGVhbihEZWJ1Z2dlckFnZW50
U3RhdGU6OmVuYWJsZVdoZW5TaG93biwgdHJ1ZSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6YWN0aXZhdGVCcmVha3BvaW50cyhFcnJvclN0cmluZyopCiB7CiAgICAgU2NyaXB0
RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLmFjdGl2YXRlQnJlYWtwb2ludHMoKTsKQEAgLTkxLDcgKzE2
OSw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChj
b25zdCBTdHJpbmcmKQogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRKYXZhU2NyaXB0
QnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJl
ciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBjb25kaXRpb24sIGJvb2wgZW5hYmxl
ZCwgU3RyaW5nKiBvdXRCcmVha3BvaW50SWQsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGxvY2F0
aW9ucykKIHsKICAgICBTdHJpbmcgYnJlYWtwb2ludElkID0gbWFrZVN0cmluZyh1cmwsICI6Iiwg
U3RyaW5nOjpudW1iZXIobGluZU51bWJlciksICI6IiwgU3RyaW5nOjpudW1iZXIoY29sdW1uTnVt
YmVyKSk7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnJlYWtwb2ludHNDb29raWUgPSBt
X2luc3BlY3RvckFnZW50LT5zdGF0ZSgpLT5nZXRPYmplY3QoRGVidWdnZXJBZ2VudFN0YXRlOjpq
YXZhU2NyaXB0QnJlYWtwb2ludHMpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJyZWFr
cG9pbnRzQ29va2llID0gbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0T2JqZWN0KERlYnVnZ2VyQWdlbnRT
dGF0ZTo6amF2YVNjcmlwdEJyZWFrcG9pbnRzKTsKICAgICBpZiAoYnJlYWtwb2ludHNDb29raWUt
PmZpbmQoYnJlYWtwb2ludElkKSAhPSBicmVha3BvaW50c0Nvb2tpZS0+ZW5kKCkpCiAgICAgICAg
IHJldHVybjsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBicmVha3BvaW50T2JqZWN0ID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKQEAgLTEwMSw3ICsxNzksNyBAQCB2b2lkIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OnNldEphdmFTY3JpcHRCcmVha3BvaW50KEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJgogICAgIGJyZWFrcG9pbnRPYmplY3QtPnNldFN0cmluZygiY29uZGl0aW9u
IiwgY29uZGl0aW9uKTsKICAgICBicmVha3BvaW50T2JqZWN0LT5zZXRCb29sZWFuKCJlbmFibGVk
IiwgZW5hYmxlZCk7CiAgICAgYnJlYWtwb2ludHNDb29raWUtPnNldE9iamVjdChicmVha3BvaW50
SWQsIGJyZWFrcG9pbnRPYmplY3QpOwotICAgIG1faW5zcGVjdG9yQWdlbnQtPnN0YXRlKCktPnNl
dE9iamVjdChEZWJ1Z2dlckFnZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cywgYnJlYWtw
b2ludHNDb29raWUpOworICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldE9iamVjdChEZWJ1Z2dlckFn
ZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cywgYnJlYWtwb2ludHNDb29raWUpOwogCiAg
ICAgU2NyaXB0QnJlYWtwb2ludCBicmVha3BvaW50KGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwg
Y29uZGl0aW9uLCBlbmFibGVkKTsKICAgICBmb3IgKFNjcmlwdHNNYXA6Oml0ZXJhdG9yIGl0ID0g
bV9zY3JpcHRzLmJlZ2luKCk7IGl0ICE9IG1fc2NyaXB0cy5lbmQoKTsgKytpdCkgewpAQCAtMTMy
LDkgKzIxMCw5IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0SmF2YVNjcmlwdEJy
ZWFrcG9pbnRCeVNvdXJjZUlkKEVycm9yU3RyaW5nKiwgY29uCiAKIHZvaWQgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6cmVtb3ZlSmF2YVNjcmlwdEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIGJyZWFrcG9pbnRJZCkKIHsKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBi
cmVha3BvaW50c0Nvb2tpZSA9IG1faW5zcGVjdG9yQWdlbnQtPnN0YXRlKCktPmdldE9iamVjdChE
ZWJ1Z2dlckFnZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50cyk7CisgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gYnJlYWtwb2ludHNDb29raWUgPSBtX2luc3BlY3RvclN0YXRlLT5nZXRP
YmplY3QoRGVidWdnZXJBZ2VudFN0YXRlOjpqYXZhU2NyaXB0QnJlYWtwb2ludHMpOwogICAgIGJy
ZWFrcG9pbnRzQ29va2llLT5yZW1vdmUoYnJlYWtwb2ludElkKTsKLSAgICBtX2luc3BlY3RvckFn
ZW50LT5zdGF0ZSgpLT5zZXRPYmplY3QoRGVidWdnZXJBZ2VudFN0YXRlOjpqYXZhU2NyaXB0QnJl
YWtwb2ludHMsIGJyZWFrcG9pbnRzQ29va2llKTsKKyAgICBtX2luc3BlY3RvclN0YXRlLT5zZXRP
YmplY3QoRGVidWdnZXJBZ2VudFN0YXRlOjpqYXZhU2NyaXB0QnJlYWtwb2ludHMsIGJyZWFrcG9p
bnRzQ29va2llKTsKIAogICAgIEJyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVha3BvaW50SWRz
TWFwOjppdGVyYXRvciBkZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHNJdGVyYXRvciA9IG1fYnJlYWtw
b2ludElkVG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHMuZmluZChicmVha3BvaW50SWQpOwogICAg
IGlmIChkZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHNJdGVyYXRvciA9PSBtX2JyZWFrcG9pbnRJZFRv
RGVidWdTZXJ2ZXJCcmVha3BvaW50SWRzLmVuZCgpKQpAQCAtMjQ4LDE0ICszMjYsMTQgQEAgdm9p
ZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKEVycm9y
U3RyaW5nKiwgbG9uZyBwYXVzZVMKIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpldmFs
dWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yVmFs
dWU+KiByZXN1bHQpCiB7Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2lu
c3BlY3RvckFnZW50LT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+aW5qZWN0ZWRTY3JpcHRGb3JPYmpl
Y3RJZChjYWxsRnJhbWVJZC5nZXQoKSk7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHQgPSBtX2luamVjdGVkU2NyaXB0SG9zdC0+aW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZChjYWxs
RnJhbWVJZC5nZXQoKSk7CiAgICAgaWYgKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCiAg
ICAgICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlT25DYWxsRnJhbWUoY2FsbEZyYW1lSWQsIGV4
cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIHJlc3VsdCk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Z2V0Q29tcGxldGlvbnNPbkNhbGxGcmFt
ZShFcnJvclN0cmluZyosIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjYWxsRnJhbWVJZCwg
Y29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVm
UHRyPEluc3BlY3RvclZhbHVlPiogcmVzdWx0KQogewotICAgIEluamVjdGVkU2NyaXB0IGluamVj
dGVkU2NyaXB0ID0gbV9pbnNwZWN0b3JBZ2VudC0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPmluamVj
dGVkU2NyaXB0Rm9yT2JqZWN0SWQoY2FsbEZyYW1lSWQuZ2V0KCkpOworICAgIEluamVjdGVkU2Ny
aXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdEhvc3QtPmluamVjdGVkU2NyaXB0
Rm9yT2JqZWN0SWQoY2FsbEZyYW1lSWQuZ2V0KCkpOwogICAgIGlmICghaW5qZWN0ZWRTY3JpcHQu
aGFzTm9WYWx1ZSgpKQogICAgICAgICBpbmplY3RlZFNjcmlwdC5nZXRDb21wbGV0aW9uc09uQ2Fs
bEZyYW1lKGNhbGxGcmFtZUlkLCBleHByZXNzaW9uLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIHJl
c3VsdCk7CiB9CkBAIC0yNjQsNyArMzQyLDcgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4g
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y3VycmVudENhbGxGcmFtZXMoKQogewogICAgIGlmICgh
bV9wYXVzZWRTY3JpcHRTdGF0ZSkKICAgICAgICAgcmV0dXJuIEluc3BlY3RvclZhbHVlOjpudWxs
KCk7Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luc3BlY3RvckFnZW50
LT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+aW5qZWN0ZWRTY3JpcHRGb3IobV9wYXVzZWRTY3JpcHRT
dGF0ZSk7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2Ny
aXB0SG9zdC0+aW5qZWN0ZWRTY3JpcHRGb3IobV9wYXVzZWRTY3JpcHRTdGF0ZSk7CiAgICAgaWYg
KGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIEluc3BlY3RvclZhbHVlOjpudWxsKCk7CkBAIC0yODQsNyAr
MzYyLDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJjZShjb25z
dCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcKICAgICBpZiAodXJsLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnJlYWtwb2lu
dHNDb29raWUgPSBtX2luc3BlY3RvckFnZW50LT5zdGF0ZSgpLT5nZXRPYmplY3QoRGVidWdnZXJB
Z2VudFN0YXRlOjpqYXZhU2NyaXB0QnJlYWtwb2ludHMpOworICAgIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGJyZWFrcG9pbnRzQ29va2llID0gbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0T2JqZWN0KERl
YnVnZ2VyQWdlbnRTdGF0ZTo6amF2YVNjcmlwdEJyZWFrcG9pbnRzKTsKICAgICBmb3IgKEluc3Bl
Y3Rvck9iamVjdDo6aXRlcmF0b3IgaXQgPSBicmVha3BvaW50c0Nvb2tpZS0+YmVnaW4oKTsgaXQg
IT0gYnJlYWtwb2ludHNDb29raWUtPmVuZCgpOyArK2l0KSB7CiAgICAgICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGJyZWFrcG9pbnRPYmplY3QgPSBpdC0+c2Vjb25kLT5hc09iamVjdCgpOwog
ICAgICAgICBTdHJpbmcgYnJlYWtwb2ludFVSTDsKQEAgLTM0MCw2ICs0MTgsMTYgQEAgdm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpicmVha1Byb2dyYW0oRGVidWdnZXJFdmVudFR5cGUgdHlw
ZSwgUGFzc1JlZlB0cjxJbnMKICAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkuYnJlYWtQ
cm9ncmFtKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2xlYXIoKQorewor
ICAgIG1fcGF1c2VkU2NyaXB0U3RhdGUgPSAwOworICAgIG1fc2NyaXB0cy5jbGVhcigpOworICAg
IG1fYnJlYWtwb2ludElkVG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHMuY2xlYXIoKTsKKyAgICBt
X2NvbnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9pbnRJZCA9IFN0cmluZygpOworICAgIG1fYnJlYWtQ
cm9ncmFtRGV0YWlscy5jbGVhcigpOworICAgIG1famF2YVNjcmlwdFBhdXNlU2NoZWR1bGVkID0g
ZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggN2NhZGFjMWZl
ZjFhMDdhYTdkNzNhNmMyN2VlYzI3NDUyNDUzZTk0YS4uZWQ1OGZhNTU4NTcxMTNlMmI2YzIwZDY3
NWVhMDU3NzQ4YjQ0M2JhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC00NCwxMCArNDQsMTIgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSW5qZWN0ZWRTY3JpcHRIb3N0OwotY2xhc3MgSW5zcGVjdG9yQWdlbnQ7
CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKK2NsYXNz
IEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zcGVjdG9yVmFsdWU7CitjbGFzcyBJbnN0cnVtZW50
aW5nQWdlbnRzOworY2xhc3MgUGFnZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAK
QEAgLTYwLDkgKzYyLDE4IEBAIGVudW0gRGVidWdnZXJFdmVudFR5cGUgewogY2xhc3MgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBTY3JpcHREZWJ1Z0xpc3RlbmVyIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRGVidWdn
ZXJBZ2VudD4gY3JlYXRlKEluc3BlY3RvckFnZW50KiwgSW5zcGVjdG9yRnJvbnRlbmQqLCBib29s
IGVyYXNlU3RpY2t5QnJlYWtwb2ludHMpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3Rh
dGUqLCBQYWdlKiwgSW5qZWN0ZWRTY3JpcHRIb3N0Kik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9y
RGVidWdnZXJBZ2VudCgpOwogCisgICAgdm9pZCBzdGFydFVzZXJJbml0aWF0ZWREZWJ1Z2dpbmco
KTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopIHsgZW5hYmxlKGZhbHNlKTsgfQorICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopIHsgZGlzYWJsZSgpOyB9CisgICAgdm9pZCBkaXNh
YmxlKCk7CisgICAgYm9vbCBlbmFibGVkKCk7CisgICAgdm9pZCByZXN0b3JlKCk7CisgICAgdm9p
ZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOworICAgIHZvaWQgY2xlYXJGcm9udGVu
ZCgpOworCiAgICAgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsKTsK
IAogICAgIC8vIFBhcnQgb2YgdGhlIHByb3RvY29sLgpAQCAtODgsOCArOTksMTggQEAgcHVibGlj
OgogICAgIHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyogZXJyb3IsIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQ
SSwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcmVzdWx0KTsKICAgICB2b2lkIGdldENvbXBsZXRp
b25zT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgYm9vbCBpbmNsdWRl
Q29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCk7CiAKKyAgICBj
bGFzcyBMaXN0ZW5lciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5MaXN0ZW5lcigp
IHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGVidWdnZXJXYXNFbmFibGVkKCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpID0gMDsKKyAgICB9OworICAg
IHZvaWQgc2V0TGlzdGVuZXIoTGlzdGVuZXIqIGxpc3RlbmVyKSB7IG1fbGlzdGVuZXIgPSBsaXN0
ZW5lcjsgfQorCiBwcml2YXRlOgotICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQoSW5zcGVjdG9y
QWdlbnQqLCBJbnNwZWN0b3JGcm9udGVuZCosIGJvb2wgZXJhc2VTdGlja3lCcmVha3BvaW50cyk7
CisgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yU3RhdGUqLCBQYWdlKiwgSW5qZWN0ZWRTY3JpcHRIb3N0Kik7CisKKyAgICB2b2lkIGVuYWJs
ZShib29sIHJlc3RvcmluZ0Zyb21TdGF0ZSk7CiAKICAgICBQYXNzUmVmUHRyPEluc3BlY3RvclZh
bHVlPiBjdXJyZW50Q2FsbEZyYW1lcygpOwogCkBAIC05OSw2ICsxMjAsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZSgpOwogCiAgICAgYm9vbCByZXNvbHZlQnJlYWtw
b2ludChjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwg
Y29uc3QgU2NyaXB0QnJlYWtwb2ludCYsIGludCogYWN0dWFsTGluZU51bWJlciwgaW50KiBhY3R1
YWxDb2x1bW5OdW1iZXIpOworICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIGNsYXNzIFNjcmlwdCB7
CiAgICAgcHVibGljOgpAQCAtMTI4LDcgKzE1MCwxMCBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYg
SGFzaE1hcDxTdHJpbmcsIFNjcmlwdD4gU2NyaXB0c01hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8
U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiA+IEJyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVha3Bv
aW50SWRzTWFwOwogCi0gICAgSW5zcGVjdG9yQWdlbnQqIG1faW5zcGVjdG9yQWdlbnQ7CisgICAg
SW5zdHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOworICAgIEluc3BlY3Rv
clN0YXRlKiBtX2luc3BlY3RvclN0YXRlOworICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKKyAg
ICBJbmplY3RlZFNjcmlwdEhvc3QqIG1faW5qZWN0ZWRTY3JpcHRIb3N0OwogICAgIEluc3BlY3Rv
ckZyb250ZW5kKiBtX2Zyb250ZW5kOwogICAgIFNjcmlwdFN0YXRlKiBtX3BhdXNlZFNjcmlwdFN0
YXRlOwogICAgIFNjcmlwdHNNYXAgbV9zY3JpcHRzOwpAQCAtMTM2LDYgKzE2MSw3IEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nIG1fY29udGludWVUb0xvY2F0aW9uQnJlYWtwb2ludElkOwogICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1fYnJlYWtQcm9ncmFtRGV0YWlsczsKICAgICBib29sIG1f
amF2YVNjcmlwdFBhdXNlU2NoZWR1bGVkOworICAgIExpc3RlbmVyKiBtX2xpc3RlbmVyOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA5M2ViZWM0NTc1NzNiNWE1
ZWI1YzQyMjBkYThhZDc5YzQwMzU3Yzk5Li45M2Q5ODk2Y2VhZjkyODYwZmQ1NjY5OWZhNGIxN2Q0
MjJiMDQ0MTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppbnNwZWN0ZWRQYWdlRGVzdHJveWVkSW1wbChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5v
ZGVJbXBsKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgTm9kZSogbm9kZSwgTm9kZSog
cGFyZW50KQogewogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmIChJbnNw
ZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCogYnJvd3NlckRlYnVnZ2VyQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudC0+YnJvd3NlckRlYnVnZ2VyQWdlbnQoKSkKKyAgICBpZiAoSW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJEZWJ1Z2dlckFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmlu
c3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQoKSkKICAg
ICAgICAgYnJvd3NlckRlYnVnZ2VyQWdlbnQtPndpbGxJbnNlcnRET01Ob2RlKG5vZGUsIHBhcmVu
dCk7CiAjZW5kaWYKIH0KQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkSW5zZXJ0RE9NTm9kZUltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZQogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+
ZG9tQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPmRpZEluc2VydERPTU5vZGUobm9kZSk7CiAj
aWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgaWYgKEluc3BlY3RvckJyb3dzZXJE
ZWJ1Z2dlckFnZW50KiBicm93c2VyRGVidWdnZXJBZ2VudCA9IGluc3BlY3RvckFnZW50LT5icm93
c2VyRGVidWdnZXJBZ2VudCgpKQorICAgIGlmIChJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2Vu
dCogYnJvd3NlckRlYnVnZ2VyQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0Fn
ZW50cygpLT5pbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCgpKQogICAgICAgICBicm93c2Vy
RGVidWdnZXJBZ2VudC0+ZGlkSW5zZXJ0RE9NTm9kZShub2RlKTsKICNlbmRpZgogfQpAQCAtMTIw
LDcgKzEyMCw3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnNlcnRET01O
b2RlSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlCiB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFJlbW92ZURPTU5vZGVJbXBsKEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudCwgTm9kZSogbm9kZSkKIHsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikK
LSAgICBpZiAoSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJEZWJ1Z2dlckFn
ZW50ID0gaW5zcGVjdG9yQWdlbnQtPmJyb3dzZXJEZWJ1Z2dlckFnZW50KCkpCisgICAgaWYgKElu
c3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50KiBicm93c2VyRGVidWdnZXJBZ2VudCA9IGluc3Bl
Y3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvckJyb3dzZXJEZWJ1Z2dl
ckFnZW50KCkpCiAgICAgICAgIGJyb3dzZXJEZWJ1Z2dlckFnZW50LT53aWxsUmVtb3ZlRE9NTm9k
ZShub2RlKTsKICNlbmRpZgogfQpAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsUmVtb3ZlRE9NTm9kZUltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlRE9NTm9kZUlt
cGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBOb2RlKiBub2RlKQogewogI2lmIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmIChJbnNwZWN0b3JCcm93c2VyRGVidWdn
ZXJBZ2VudCogYnJvd3NlckRlYnVnZ2VyQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+YnJvd3NlckRl
YnVnZ2VyQWdlbnQoKSkKKyAgICBpZiAoSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQqIGJy
b3dzZXJEZWJ1Z2dlckFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMo
KS0+aW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQoKSkKICAgICAgICAgYnJvd3NlckRlYnVn
Z2VyQWdlbnQtPmRpZFJlbW92ZURPTU5vZGUobm9kZSk7CiAjZW5kaWYKICAgICBpZiAoSW5zcGVj
dG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmRvbUFnZW50KCkpCkBAIC0x
MzgsNyArMTM4LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlbW92ZURP
TU5vZGVJbXBsKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2UKIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsTW9kaWZ5RE9NQXR0ckltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50LCBFbGVtZW50KiBlbGVtZW50KQogewogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKQotICAgIGlmIChJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCogYnJvd3NlckRl
YnVnZ2VyQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+YnJvd3NlckRlYnVnZ2VyQWdlbnQoKSkKKyAg
ICBpZiAoSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJEZWJ1Z2dlckFnZW50
ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQoKSkKICAgICAgICAgYnJvd3NlckRlYnVnZ2VyQWdlbnQtPndpbGxNb2Rp
ZnlET01BdHRyKGVsZW1lbnQpOwogI2VuZGlmCiB9CkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNoYXJhY3RlckRhdGFNb2RpZmllZEltcGwoSW5zcGVj
dG9yQWdlbnQqIGluc3BlY3QKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2Vu
ZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIGNvbnN0
IFN0cmluZyYgdXJsKQogewogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlm
IChJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCogYnJvd3NlckRlYnVnZ2VyQWdlbnQgPSBp
bnNwZWN0b3JBZ2VudC0+YnJvd3NlckRlYnVnZ2VyQWdlbnQoKSkKKyAgICBpZiAoSW5zcGVjdG9y
QnJvd3NlckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJEZWJ1Z2dlckFnZW50ID0gaW5zcGVjdG9yQWdl
bnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQo
KSkKICAgICAgICAgYnJvd3NlckRlYnVnZ2VyQWdlbnQtPndpbGxTZW5kWE1MSHR0cFJlcXVlc3Qo
dXJsKTsKICNlbmRpZgogfQpAQCAtNjY3LDcgKzY2Nyw3IEBAIGJvb2wgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpoYXNGcm9udGVuZChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQpCiB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQo
SW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBjb25zdCBTdHJpbmcmIGNhdGVnb3J5VHlw
ZSwgY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMpCiB7CiAjaWYgRU5B
QkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgaWYgKEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dl
ckFnZW50KiBicm93c2VyRGVidWdnZXJBZ2VudCA9IGluc3BlY3RvckFnZW50LT5icm93c2VyRGVi
dWdnZXJBZ2VudCgpKQorICAgIGlmIChJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCogYnJv
d3NlckRlYnVnZ2VyQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygp
LT5pbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCgpKQogICAgICAgICBicm93c2VyRGVidWdn
ZXJBZ2VudC0+cGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoY2F0ZWdvcnlUeXBlLCBldmVudE5h
bWUsIHN5bmNocm9ub3VzKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4IGRjN2UwYWRmYmEyMjlhNGZm
MTg1ODM1NTQ5ODUzNzk3MTYxMjQ0ZDkuLmQzMWZmMjQ1Mjc1NDZhYjEyMWZiMjc1MDQxNDMxZmUx
MmM2NjhiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyTW9kZWwuanMKQEAgLTUyLDcgKzUyLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TW9kZWwuRXZlbnRzID0gewogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0g
ewogICAgIGVuYWJsZURlYnVnZ2VyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBJbnNwZWN0
b3JBZ2VudC5lbmFibGVEZWJ1Z2dlcigpOworICAgICAgICBEZWJ1Z2dlckFnZW50LmVuYWJsZSgp
OwogICAgICAgICBpZiAodGhpcy5fYnJlYWtwb2ludHNQdXNoZWRUb0JhY2tlbmQpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIHZhciBicmVha3BvaW50cyA9IFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5icmVha3BvaW50czsKQEAgLTY4LDcgKzY4LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TW9kZWwucHJvdG90eXBlID0gewogCiAgICAgZGlzYWJsZURlYnVnZ2VyOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBJbnNwZWN0b3JBZ2VudC5kaXNhYmxlRGVidWdnZXIoKTsKKyAgICAgICAg
RGVidWdnZXJBZ2VudC5kaXNhYmxlKCk7CiAgICAgfSwKIAogICAgIGNvbnRpbnVlVG9Mb2NhdGlv
bjogZnVuY3Rpb24oc291cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikK
</data>
<flag name="review"
          id="75980"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>