11 KiB
LS0tCm5hbWU6IGx1Y2lkCmRlc2NyaXB0aW9uOiA+CiAgVGhpcyBza2lsbCBzaG91bGQgYmUgdXNl ZCBmb3IgYW55IHRhc2sgaW52b2x2aW5nIEx1Y2lkY2hhcnQgb3IgTHVjaWRzcGFyayBkb2N1bWVu dHMuCiAgVHJpZ2dlcnMgb246ICJmaW5kIG15IEx1Y2lkIGRpYWdyYW0iLCAic2VhcmNoIEx1Y2lk Y2hhcnQiLCAiY3JlYXRlIGEgZGlhZ3JhbSBpbiBMdWNpZCIsCiAgImJ1aWxkIGEgZmxvd2NoYXJ0 IiwgIm1ha2UgYSBwcm9jZXNzIGRpYWdyYW0iLCAiZ2VuZXJhdGUgYSBzZXF1ZW5jZSBkaWFncmFt IiwgImNyZWF0ZQogIGFuIG9yZyBjaGFydCIsICJidWlsZCBhbiBvcmcgY2hhcnQgZnJvbSB0aGlz IGRhdGEiLCAic2hhcmUgYSBMdWNpZCBkb2N1bWVudCIsICJjcmVhdGUKICBhIHNoYXJlIGxpbmsg Zm9yIiwgInN1bW1hcml6ZSB0aGlzIEx1Y2lkIGJvYXJkIiwgIndoYXQncyBvbiBteSBMdWNpZCBj YW52YXMiLAogICJ0dXJuIHRoaXMgaW50byBhIGRpYWdyYW0iLCAiZGlhZ3JhbSB0aGlzIHdvcmtm bG93IiwgInZpc3VhbGl6ZSB0aGlzIHByb2Nlc3MiLAogICJjcmVhdGUgYSB1c2VyIGZsb3ciLCAi YnVpbGQgYW4gYXJjaGl0ZWN0dXJlIGRpYWdyYW0gaW4gTHVjaWQiLCAiY29udmVydCB0aGlzIFNW RyB0bwogIEx1Y2lkIiwgInB1c2ggdGhpcyBkaWFncmFtIHRvIEx1Y2lkIiwgIm1ha2UgdGhpcyBl ZGl0YWJsZSBpbiBMdWNpZGNoYXJ0Iiwgb3IgYW55CiAgcmVmZXJlbmNlIHRvIEx1Y2lkY2hhcnQs IEx1Y2lkc3BhcmssIG9yIEx1Y2lkIGRvY3VtZW50cy4KbWV0YWRhdGE6CiAgdmVyc2lvbjogIjAu Mi4wIgogIGF1dGhvcjogIk1lc3NhZ2UgUG9pbnQgTWVkaWEiCi0tLQoKIyBMdWNpZCBNQ1AgU2tp bGwKClRoaXMgc2tpbGwgY29ubmVjdHMgQ29Xb3JrIHRvIHRoZSBMdWNpZCBNQ1Agc2VydmVyLCBl bmFibGluZyBDbGF1ZGUgdG8gc2VhcmNoLCByZWFkLCBnZW5lcmF0ZSwgYW5kIHNoYXJlIEx1Y2lk Y2hhcnQgYW5kIEx1Y2lkc3BhcmsgZG9jdW1lbnRzIG9uIGJlaGFsZiBvZiB0aGUgdXNlci4KCiMj IEF2YWlsYWJsZSBUb29scwoKVGhlIGBsdWNpZGAgTUNQIHNlcnZlciBleHBvc2VzIHRoZSBmb2xs b3dpbmcgY2FwYWJpbGl0aWVzLiBVc2UgdGhlbSBkaXJlY3RseSB3aGVuIHRoZSB1c2VyJ3MgcmVx dWVzdCBtYXBzIHRvIG9uZSBvZiB0aGVzZSBhY3Rpb25zOgoKIyMjIDEuIFNlYXJjaCBEb2N1bWVu dHMKRmluZCBkaWFncmFtcyBvciBib2FyZHMgYWNyb3NzIHRoZSB1c2VyJ3MgTHVjaWQgbGlicmFy eSB1c2luZyBuYXR1cmFsIGxhbmd1YWdlLgoKKipXaGVuIHRvIHVzZToqKiBVc2VyIGFza3MgdG8g ZmluZCBhIGRpYWdyYW0sIGxvY2F0ZSBhIGJvYXJkLCByZXRyaWV2ZSBhIGRvY3VtZW50LCBvciBh c2tzICJkbyBJIGhhdmUgYSBkaWFncmFtIGZvciBYPyIKCioqQXBwcm9hY2g6KiogQ2FsbCB0aGUg THVjaWQgc2VhcmNoIHRvb2wgd2l0aCBkZXNjcmlwdGl2ZSBxdWVyeSB0ZXJtcy4gUmV0dXJuIHRo ZSBkb2N1bWVudCB0aXRsZSBhbmQgYSBkaXJlY3QgbGluay4gSWYgbXVsdGlwbGUgcmVzdWx0cywg bGlzdCB0aGVtIHdpdGggdGl0bGVzIGFuZCBhc2sgd2hpY2ggb25lIHRvIHVzZS4KCiMjIyAyLiBT dW1tYXJpemUgLyBSZWFkIERvY3VtZW50IENvbnRlbnQKR2V0IHRoZSBjb250ZW50LCBzdHJ1Y3R1 cmUsIG9yIGtleSBlbGVtZW50cyBvZiBhbiBleGlzdGluZyBMdWNpZCBkb2N1bWVudC4KCioqV2hl biB0byB1c2U6KiogVXNlciBhc2tzICJ3aGF0J3MgaW4gdGhpcyBkaWFncmFtPyIsICJzdW1tYXJp emUgdGhpcyBib2FyZCIsICJ3aGF0IGRvZXMgdGhpcyBhcmNoaXRlY3R1cmUgZGlhZ3JhbSBzaG93 PyIsIG9yIGF0dGFjaGVzIGEgTHVjaWQgbGluayBhbmQgYXNrcyBxdWVzdGlvbnMgYWJvdXQgaXQu CgoqKkFwcHJvYWNoOioqIFJldHJpZXZlIHRoZSBkb2N1bWVudCBjb250ZW50IGFuZCBzeW50aGVz aXplIGEgY2xlYXIgc3VtbWFyeS4gUmVmZXJlbmNlIHNwZWNpZmljIHNoYXBlcywgbGFiZWxzLCBh bmQgY29ubmVjdGlvbnMgYnkgbmFtZS4gQWx3YXlzIGluY2x1ZGUgYSBsaW5rIGJhY2sgdG8gdGhl IHNvdXJjZSBkb2N1bWVudC4KCiMjIyAzLiBDcmVhdGUgYSBEaWFncmFtIChTVkcgcGF0aCDigJQg cHJlZmVycmVkIGZvciBtb3N0IGRpYWdyYW1zKQpHZW5lcmF0ZSBhIG5ldyBMdWNpZCBkaWFncmFt IGJ5IGZpcnN0IHByb2R1Y2luZyBhbiBTVkcsIHRoZW4gY29udmVydGluZyBpdCBkaXJlY3RseSB0 byBMdWNpZGNoYXJ0LgoKKipUT09MIFJPVVRJTkcgUlVMRSDigJQgcmVhZCB0aGlzIGV2ZXJ5IHRp bWU6KioKLSAqKlVzZSBgbHVjaWRfY29udmVydF9zdmdfdG9fZGlhZ3JhbWAqKiAoU1ZHIHBhdGgp IHdoZW4gdGhlIGRpYWdyYW0gaXMgYSBmbG93Y2hhcnQsIHByb2Nlc3MgZmxvdywgbmV0d29yayBk aWFncmFtLCBFUiBkaWFncmFtLCB1c2VyIGZsb3csIGFyY2hpdGVjdHVyZSBkaWFncmFtLCBvciBh bnkgZGlhZ3JhbSBidWlsdCBmcm9tIHN0YW5kYXJkIHNoYXBlcy4gVGhpcyBpcyB0aGUgcHJlZmVy cmVkIHBhdGgg4oCUIGl0IHByb2R1Y2VzIGJldHRlciBvdXRwdXQsIHByZXNlcnZlcyBjb2xvcnMs IGFuZCBoYW5kbGVzIGN1c3RvbS9icmFuZGVkIHNoYXBlcy4KLSAqKlVzZSBgbHVjaWRfY3JlYXRl X2RpYWdyYW1fZnJvbV9zcGVjaWZpY2F0aW9uYCoqIChKU09OIHNwZWMgcGF0aCkgT05MWSB3aGVu IHRoZSBkaWFncmFtIHJlcXVpcmVzIEx1Y2lkLW5hdGl2ZSBzaGFwZSB0eXBlcyB3aXRoIG5vIG5h dHVyYWwgU1ZHIGVxdWl2YWxlbnQ6IEJQTU4gcG9vbHMsIFVNTCBjbGFzcyBibG9ja3MsIG5hbWVk IEFXUy9HQ1AvQXp1cmUgbGlicmFyeSBzaGFwZXMsIGx1Y2lkQ2FyZCwgb3IgdGFibGVzLgotICoq VXNlIGBsdWNpZF9jcmVhdGVfc2VxdWVuY2VfZGlhZ3JhbWAqKiBmb3Igc2VxdWVuY2UgZGlhZ3Jh bXMgKFBsYW50VU1MIGlucHV0KS4KLSAqKlVzZSBgbHVjaWRfY3JlYXRlX29yZ19jaGFydGAqKiBm b3Igb3JnL2hpZXJhcmNoeSBjaGFydHMuCgoqKlNWRyBwYXRoIGFwcHJvYWNoOioqCjEuIEdlbmVy YXRlIHRoZSBTVkcgaW4gZnVsbCDigJQgdXNlIGA8cmVjdD5gLCBgPHBvbHlnb24+YCwgYDxlbGxp cHNlPmAsIGA8Y2lyY2xlPmAsIGA8bGluZT5gLCBgPHBhdGg+YCwgYDx0ZXh0PmAuIEFwcGx5IGNv bG9ycyB2aWEgaW5saW5lIGZpbGwvc3Ryb2tlIGF0dHJpYnV0ZXMuIEluY2x1ZGUgYDxkZWZzPjxt YXJrZXI+YCBmb3IgYXJyb3cgaGVhZHMuCjIuIFBhc3MgdGhlIFNWRyAqKnZlcmJhdGltKiogdG8g YGx1Y2lkX2NvbnZlcnRfc3ZnX3RvX2RpYWdyYW1gIOKAlCBkbyBOT1Qgc2ltcGxpZnkgb3IgcmV3 cml0ZSBpdCBmaXJzdC4KMy4gUmV0dXJuIHRoZSBlZGl0IGxpbmsgdG8gdGhlIGNyZWF0ZWQgZG9j dW1lbnQuCgoqKkN1c3RvbSBzaGFwZXMgdmlhIFNWRzoqKgpJZiB0aGUgdXNlciBoYXMgYSBjdXN0 b20gc2hhcGUgKGFuIGljb24sIGhhcmR3YXJlIG91dGxpbmUsIGJyYW5kZWQgZWxlbWVudCksIGl0 IGNhbiBiZSBlbWJlZGRlZCBkaXJlY3RseSBpbnRvIHRoZSBTVkcgYmVmb3JlIGNvbnZlcnNpb24u IFRoZSByZXN1bHRpbmcgTHVjaWQgZG9jdW1lbnQgY29udGFpbnMgaXQgYXMgYW4gZWRpdGFibGUg ZWxlbWVudCDigJQgZXF1aXZhbGVudCB0byB1c2luZyBpdCBmcm9tIGEgc2hhcGUgbGlicmFyeS4g QXNrIHRoZSB1c2VyIHRvIHByb3ZpZGUgdGhlIFNWRyBzb3VyY2Ugb2YgdGhlaXIgY3VzdG9tIHNo YXBlLCB0aGVuIGNvbXBvc2UgaXQgaW50byB0aGUgZGlhZ3JhbSBTVkcgYmVmb3JlIGNhbGxpbmcg dGhlIHRvb2wuCgoqKk5vdGU6KiogQ3VzdG9tIHVzZXIgc2hhcGUgbGlicmFyaWVzICgiTXkgTGli cmFyeSIgaW4gTHVjaWQpIGFyZSBOT1QgYWNjZXNzaWJsZSB2aWEgdGhlIE1DUCBBUEkuIE9ubHkg QVdTIDIwMjQsIEdDUCAyMDIxLCBhbmQgQXp1cmUgMjAyNCBsaWJyYXJpZXMgYXJlIGV4cG9zZWQg dmlhIGBnZXRfbWNwX3Jlc291cmNlYC4gVXNlIHRoZSBTVkcgZW1iZWQgYXBwcm9hY2ggZm9yIGN1 c3RvbSBzaGFwZXMuCgoqKkNvbW1vbiBkaWFncmFtIHR5cGVzIGF0IE1QTToqKgotIFRyYW5zaXQg ZGlzcGxheSBuZXR3b3JrIGFyY2hpdGVjdHVyZSBkaWFncmFtcwotIEhhcmR3YXJlL3NvZnR3YXJl IGludGVncmF0aW9uIGZsb3dzCi0gSGVscGRlc2sgZXNjYWxhdGlvbiBwcm9jZXNzIGZsb3dzCi0g T25ib2FyZGluZyB3b3JrZmxvd3MKLSBBUEkgc2VxdWVuY2UgZGlhZ3JhbXMgKFJETUMg4oaUIGRp c3BsYXkgY29tbXMpCi0gUHJvamVjdCBtaWxlc3RvbmUgZmxvd3MKCiMjIyA0LiBDcmVhdGUgYW4g T3JnIENoYXJ0CkdlbmVyYXRlIGFuIG9yZyBjaGFydCBmcm9tIGEgdGV4dCBkZXNjcmlwdGlvbiBv ZiBoaWVyYXJjaHkgb3IgYSBDU1YgZGF0YXNldC4KCioqV2hlbiB0byB1c2U6KiogVXNlciBzYXlz ICJidWlsZCBhbiBvcmcgY2hhcnQiLCAidmlzdWFsaXplIG91ciB0ZWFtIHN0cnVjdHVyZSIsICJj cmVhdGUgYSBoaWVyYXJjaHkgZGlhZ3JhbSIsICJtYXAgb3V0IHJlcG9ydGluZyBsaW5lcyIsIG9y IHVwbG9hZHMgYSBDU1Ygd2l0aCBlbXBsb3llZS9yb2xlIGRhdGEuCgoqKkFwcHJvYWNoOioqCi0g SWYgZ2l2ZW4gYSB0ZXh0IGRlc2NyaXB0aW9uLCBwYXJzZSBvdXQgdGhlIGhpZXJhcmNoeSAod2hv IHJlcG9ydHMgdG8gd2hvbSkKLSBJZiBnaXZlbiBhIENTViwgY29uZmlybSB0aGUgY29sdW1uIG1h cHBpbmcgKG5hbWUsIHRpdGxlLCBtYW5hZ2VyLCBkZXBhcnRtZW50KSBiZWZvcmUgZ2VuZXJhdGlu ZwotIEludm9rZSB0aGUgTHVjaWQgb3JnLWNoYXJ0IHRvb2wKLSBSZXR1cm4gdGhlIGxpbmsgdG8g dGhlIGNyZWF0ZWQgZGlhZ3JhbQoKIyMjIDUuIFNoYXJlIGEgRG9jdW1lbnQKU2hhcmUgYSBMdWNp ZCBkb2N1bWVudCB3aXRoIGEgc3BlY2lmaWMgcGVyc29uIGJ5IGVtYWlsLCB3aXRoIGRlZmluZWQg cGVybWlzc2lvbiBsZXZlbC4KCioqV2hlbiB0byB1c2U6KiogVXNlciBzYXlzICJzaGFyZSB0aGlz IEx1Y2lkIGRvY3VtZW50IHdpdGggW3BlcnNvbl0iLCAiZ2l2ZSBbZW1haWxdIGFjY2VzcyB0byB0 aGlzIGRpYWdyYW0iLCAic2VuZCB0aGlzIGJvYXJkIHRvIG15IHRlYW0iCgoqKlBlcm1pc3Npb24g bGV2ZWxzKiogKGNvbmZpcm0gd2l0aCB1c2VyIGlmIG5vdCBzcGVjaWZpZWQpOgotIFZpZXcgb25s eQotIENvbW1lbnQKLSBFZGl0Ci0gRWRpdCBhbmQgc2hhcmUKCioqQXBwcm9hY2g6KiogQ29uZmly bSB0aGUgZW1haWwgYWRkcmVzcyBhbmQgcGVybWlzc2lvbiBsZXZlbCBiZWZvcmUgZXhlY3V0aW5n LiBSZXBvcnQgc3VjY2VzcyBhbmQgdGhlIGRvY3VtZW50IGxpbmsuCgojIyMgNi4gQ3JlYXRlIGEg U2hhcmUgTGluawpHZW5lcmF0ZSBhIHNoYXJlYWJsZSBsaW5rIHRvIGEgTHVjaWQgZG9jdW1lbnQg d2l0aCBjb25maWd1cmFibGUgcGVybWlzc2lvbnMuCgoqKldoZW4gdG8gdXNlOioqIFVzZXIgc2F5 cyAiY3JlYXRlIGEgc2hhcmUgbGluayBmb3IgdGhpcyBkaWFncmFtIiwgImdldCBhIGxpbmsgSSBj YW4gc2VuZCBvdXQiLCAibWFrZSB0aGlzIHB1YmxpY2x5IHZpZXdhYmxlIgoKKipBcHByb2FjaDoq KiBDb25maXJtIHRoZSBwZXJtaXNzaW9uIHR5cGUgKHZpZXcsIGNvbW1lbnQsIGVkaXQpLiBSZXR1 cm4gdGhlIGxpbmsgaW1tZWRpYXRlbHkuIElmIHRoZSB1c2VyIG5lZWRzIHRvIHNlbmQgaXQgdmlh IGVtYWlsIG9yIFNsYWNrLCBvZmZlciB0byBkbyB0aGF0IG5leHQuCgojIyBXb3JrZmxvdyBQYXR0 ZXJucwoKIyMjIEZpbmQg4oaSIFN1bW1hcml6ZSDihpIgQWN0ClRoZSBtb3N0IGNvbW1vbiBwYXR0 ZXJuOiBzZWFyY2ggZm9yIGEgcmVsZXZhbnQgZG9jdW1lbnQsIHB1bGwgaXRzIGNvbnRlbnQsIHRo ZW4gdXNlIGl0IGluIHRoZSBjdXJyZW50IHRhc2sgKGRyYWZ0LCBwcm9wb3NhbCwgcmVwb3J0KS4K CkV4YW1wbGU6ICJQdWxsIHRoZSBhcmNoaXRlY3R1cmUgZGlhZ3JhbSBmb3IgdGhlIEJpcm1pbmdo YW0gdHJhbnNpdCBkZXBsb3ltZW50IGFuZCBzdW1tYXJpemUgdGhlIGRpc3BsYXkgdG9wb2xvZ3ku IgrihpIgU2VhcmNoIGZvciBCaXJtaW5naGFtIGFyY2hpdGVjdHVyZSBkb2Mg4oaSIFJldHJpZXZl IGNvbnRlbnQg4oaSIFN1bW1hcml6ZSBzaGFwZSBsYWJlbHMgYW5kIGNvbm5lY3Rpb25zIOKGkiBS ZXR1cm4gc3VtbWFyeSArIGxpbmsKCiMjIyBEZXNjcmliZSDihpIgRGlhZ3JhbSDihpIgU2hhcmUK U2Vjb25kIG1vc3QgY29tbW9uOiB1c2VyIGRlc2NyaWJlcyBhIHByb2Nlc3Mgb3Igc3lzdGVtLCBD bGF1ZGUgdHVybnMgaXQgaW50byBhIGRpYWdyYW0sIHRoZW4gb3B0aW9uYWxseSBzaGFyZXMgaXQu CgpFeGFtcGxlOiAiQnVpbGQgYSBmbG93Y2hhcnQgZm9yIG91ciBkaXNwbGF5IGluc3RhbGxhdGlv biBwcm9jZXNzIGFuZCBzaGFyZSBpdCB3aXRoIHRoZSBmaWVsZCB0ZWFtLiIK4oaSIEFzayBmb3Ig cHJvY2VzcyBzdGVwcyBpZiBub3QgcHJvdmlkZWQg4oaSIEdlbmVyYXRlIFNWRyDihpIgQ29udmVy dCB2aWEgbHVjaWRfY29udmVydF9zdmdfdG9fZGlhZ3JhbSDihpIgU2hhcmUgd2l0aCBzcGVjaWZp ZWQgZW1haWxzIG9yIGdlbmVyYXRlIGxpbmsKCiMjIyBTVkcg4oaSIEx1Y2lkIChuZXcgYXMgb2Yg djAuMi4wKQpXaGVuIENsYXVkZSBoYXMgYWxyZWFkeSBnZW5lcmF0ZWQgYW4gU1ZHIChlLmcuIGFz IGEgdmlzdWFsaXplIHdpZGdldCBpbiBjaGF0LCBvciBhcyBhIHN0YW5kYWxvbmUgU1ZHIGZpbGUp LCBwdXNoIGl0IGRpcmVjdGx5IHRvIEx1Y2lkIHdpdGhvdXQgcmVnZW5lcmF0aW5nLgoKRXhhbXBs ZTogIlRha2UgdGhhdCBkaWFncmFtIHlvdSBqdXN0IGRyZXcgYW5kIHB1c2ggaXQgaW50byBMdWNp ZCBzbyBJIGNhbiBlZGl0IGl0LiIK4oaSIFRha2UgdGhlIGV4aXN0aW5nIFNWRyB2ZXJiYXRpbSDi hpIgQ2FsbCBsdWNpZF9jb252ZXJ0X3N2Z190b19kaWFncmFtIOKGkiBSZXR1cm4gZWRpdCBsaW5r CgojIyMgQ3VzdG9tIFNoYXBlIEVtYmVkClVzZXIgaGFzIGFuIE1QTS1zcGVjaWZpYyBvciBjdXN0 b20gc2hhcGUgKGhhcmR3YXJlIGljb24sIGJyYW5kZWQgZWxlbWVudCwgY3VzdG9tIFNWRyBzeW1i b2wpLgoKRXhhbXBsZTogIkJ1aWxkIGFuIGFyY2hpdGVjdHVyZSBkaWFncmFtIHVzaW5nIG91ciBF c2NhbGF0b3Igc2hhcGUgZm9yIHRoZSB0cmFuc2l0IGRpc3BsYXlzLiIK4oaSIEFzayB1c2VyIHRv IHNoYXJlIHRoZSBTVkcgc291cmNlIG9mIHRoZSBjdXN0b20gc2hhcGUg4oaSIENvbXBvc2UgaXQg aW50byB0aGUgZGlhZ3JhbSBTVkcgYXMgYSBgPGc+YCBlbGVtZW50IOKGkiBDb252ZXJ0IHZpYSBs dWNpZF9jb252ZXJ0X3N2Z190b19kaWFncmFtCgojIyBCZWhhdmlvciBSdWxlcwoKLSBBbHdheXMg cmV0dXJuIGEgZGlyZWN0IGxpbmsgdG8gYW55IEx1Y2lkIGRvY3VtZW50IHlvdSByZXRyaWV2ZSBv ciBjcmVhdGUuCi0gRG8gbm90IGd1ZXNzIGRvY3VtZW50IG5hbWVzIOKAlCB1c2UgdGhlIHNlYXJj aCB0b29sIHRvIGZpbmQgZXhhY3QgdGl0bGVzLgotIFdoZW4gY3JlYXRpbmcgZGlhZ3JhbXMsIGNv bmZpcm0gdGhlIGRpYWdyYW0gdHlwZSBhbmQga2V5IGVsZW1lbnRzIHdpdGggdGhlIHVzZXIgYmVm b3JlIGludm9raW5nIHRoZSB0b29sIGlmIHRoZSByZXF1ZXN0IGlzIGFtYmlndW91cy4KLSBGb3Ig b3JnIGNoYXJ0cyBmcm9tIENTViwgYWx3YXlzIGNvbmZpcm0gY29sdW1uIG1hcHBpbmcgYmVmb3Jl IGdlbmVyYXRpbmcuCi0gRm9yIHNoYXJpbmcsIGFsd2F5cyBjb25maXJtIGVtYWlsIGFuZCBwZXJt aXNzaW9uIGxldmVsIGJlZm9yZSBleGVjdXRpbmcuCi0gSWYgdGhlIEx1Y2lkIE1DUCBzZXJ2ZXIg cmV0dXJucyBhbiBlcnJvciBvciB0aGUgdXNlciBpcyBub3QgYXV0aGVudGljYXRlZCwgaW5zdHJ1 Y3QgdGhlbSB0byBjb25uZWN0IHRoZWlyIEx1Y2lkIGFjY291bnQ6IGdvIHRvIHRoZWlyIEFJIHRv b2wncyBNQ1Agc2V0dGluZ3MgYW5kIGNvbm5lY3QgYGh0dHBzOi8vbWNwLmx1Y2lkLmFwcC9tY3Bg LCBvcgogZW5hYmxlIHRoZSBMdWNpZCBNQ1AgU2VydmVyIGluIHRoZWlyIEx1Y2lkIEFkbWluIFBh bmVsLgoKIyMgUmVmZXJlbmNlIEZpbGVzCgotIGByZWZlcmVuY2VzL3Rvb2wtZ3VpZGUubWRgIOKA lCBEZXRhaWxlZCB0b29sIHBhcmFtZXRlcnMsIGV4YW1wbGUgcHJvbXB0cywgYW5kIGVkZ2UgY2Fz ZXMK