chore: import from github.com/twx284558/ledcontrol

This commit is contained in:
2026-05-11 08:07:51 -05:00
parent 29d0f54182
commit 6850379e13
@@ -0,0 +1,148 @@
LyoKICogQ29weXJpZ2h0IDIwMDkgQ2VkcmljIFByaXNjYWwKICoKICogTGljZW5zZWQgdW5kZXIg
dGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAqIHlvdSBt
YXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5z
ZS4KICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqCiAqIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWly
ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAq
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJ
UyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBz
cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25z
IHVuZGVyIHRoZSBMaWNlbnNlLgogKi8KCnBhY2thZ2UgYW5kcm9pZC5zZXJpYWxwb3J0OwoKaW1w
b3J0IGFuZHJvaWQudXRpbC5Mb2c7CmltcG9ydCBhbmRyb2lkeC5hbm5vdGF0aW9uLk5vbk51bGw7
CmltcG9ydCBhbmRyb2lkeC5hbm5vdGF0aW9uLk51bGxhYmxlOwppbXBvcnQgamF2YS5pby5GaWxl
OwppbXBvcnQgamF2YS5pby5GaWxlRGVzY3JpcHRvcjsKaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0
U3RyZWFtOwppbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOwppbXBvcnQgamF2YS5pby5J
T0V4Y2VwdGlvbjsKaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CmltcG9ydCBqYXZhLmlvLk91
dHB1dFN0cmVhbTsKCnB1YmxpYyBmaW5hbCBjbGFzcyBTZXJpYWxQb3J0IHsKCiAgICBwcml2YXRl
IHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFHID0gIlNlcmlhbFBvcnQiOwoKICAgIHB1YmxpYyBzdGF0
aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfU1VfUEFUSCA9ICIvc3lzdGVtL2Jpbi9zdSI7CgogICAg
cHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNTdVBhdGggPSBERUZBVUxUX1NVX1BBVEg7CiAgICBwcml2
YXRlIEZpbGUgZGV2aWNlOwogICAgcHJpdmF0ZSBpbnQgYmF1ZHJhdGU7CiAgICBwcml2YXRlIGlu
dCBkYXRhQml0czsKICAgIHByaXZhdGUgaW50IHBhcml0eTsKICAgIHByaXZhdGUgaW50IHN0b3BC
aXRzOwogICAgcHJpdmF0ZSBpbnQgZmxhZ3M7CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHN1IGJp
bmFyeSBwYXRoLCB0aGUgZGVmYXVsdCBzdSBiaW5hcnkgcGF0aCBpcyB7QGxpbmsgI0RFRkFVTFRf
U1VfUEFUSH0KICAgICAqCiAgICAgKiBAcGFyYW0gc3VQYXRoIHN1IGJpbmFyeSBwYXRoCiAgICAg
Ki8KICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRTdVBhdGgoQE51bGxhYmxlIFN0cmluZyBzdVBh
dGgpIHsKICAgICAgICBpZiAoc3VQYXRoID09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgIH0KICAgICAgICBzU3VQYXRoID0gc3VQYXRoOwogICAgfQoKICAgIC8qKgogICAgICog
R2V0IHRoZSBzdSBiaW5hcnkgcGF0aAogICAgICoKICAgICAqIEByZXR1cm4KICAgICAqLwogICAg
QE5vbk51bGwKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFN1UGF0aCgpIHsKICAgICAgICBy
ZXR1cm4gc1N1UGF0aDsKICAgIH0KCiAgICAvKgogICAgICogRG8gbm90IHJlbW92ZSBvciByZW5h
bWUgdGhlIGZpZWxkIG1GZDogaXQgaXMgdXNlZCBieSBuYXRpdmUgbWV0aG9kIGNsb3NlKCk7CiAg
ICAgKi8KICAgIHByaXZhdGUgRmlsZURlc2NyaXB0b3IgbUZkOwogICAgcHJpdmF0ZSBGaWxlSW5w
dXRTdHJlYW0gbUZpbGVJbnB1dFN0cmVhbTsKICAgIHByaXZhdGUgRmlsZU91dHB1dFN0cmVhbSBt
RmlsZU91dHB1dFN0cmVhbTsKCiAgICAvKioKICAgICAqIHNlcmlhbCBwb3J0CiAgICAgKgogICAg
ICogQHBhcmFtIGRldmljZSBzZXJpYWwgZGV2aWNlIGZpbGUKICAgICAqIEBwYXJhbSBiYXVkcmF0
ZSBiYXVkIHJhdGUKICAgICAqIEBwYXJhbSBkYXRhQml0cyBkYXRhIGJpdHM7IGRlZmF1bHQgOCwg
b3B0aW9uYWwgdmFsdWUgaXMgNX44CiAgICAgKiBAcGFyYW0gcGFyaXR5IHBhcml0eTsgMDogbm8g
cGFyaXR5IChOT05FLCBkZWZhdWx0KTsgMTogb2RkIHBhcml0eSAoT0REKTsgMjogZXZlbiBwYXJp
dHkgKEVWRU4pCiAgICAgKiBAcGFyYW0gc3RvcEJpdHMgc3RvcCBiaXRzOyBkZWZhdWx0IDE7IDE6
IDEgc3RvcCBiaXRzOyAyOiAyIHN0b3AgYml0cwogICAgICogQHBhcmFtIGZsYWdzIGRlZmF1bHQg
MAogICAgICogQHRocm93cyBTZWN1cml0eUV4Y2VwdGlvbgogICAgICogQHRocm93cyBJT0V4Y2Vw
dGlvbgogICAgICoKICAgICAqLwogICAgcHVibGljIFNlcmlhbFBvcnQoQE5vbk51bGwgRmlsZSBk
ZXZpY2UsIGludCBiYXVkcmF0ZSwgaW50IGRhdGFCaXRzLCBpbnQgcGFyaXR5LCBpbnQgc3RvcEJp
dHMsCiAgICAgICAgaW50IGZsYWdzKSB0aHJvd3MgU2VjdXJpdHlFeGNlcHRpb24sIElPRXhjZXB0
aW9uIHsKCiAgICAgICAgdGhpcy5kZXZpY2UgPSBkZXZpY2U7CiAgICAgICAgdGhpcy5iYXVkcmF0
ZSA9IGJhdWRyYXRlOwogICAgICAgIHRoaXMuZGF0YUJpdHMgPSBkYXRhQml0czsKICAgICAgICB0
aGlzLnBhcml0eSA9IHBhcml0eTsKICAgICAgICB0aGlzLnN0b3BCaXRzID0gc3RvcEJpdHM7CiAg
ICAgICAgdGhpcy5mbGFncyA9IGZsYWdzOwoKICAgICAgICAvKiBDaGVjayBhY2Nlc3MgcGVybWlz
c2lvbiAqLwogICAgICAgIGlmICghZGV2aWNlLmNhblJlYWQoKSB8fCAhZGV2aWNlLmNhbldyaXRl
KCkpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIC8qIE1pc3NpbmcgcmVhZC93
cml0ZSBwZXJtaXNzaW9uLCB0cnlpbmcgdG8gY2htb2QgdGhlIGZpbGUgKi8KICAgICAgICAgICAg
ICAgIFByb2Nlc3Mgc3U7CiAgICAgICAgICAgICAgICBzdSA9IFJ1bnRpbWUuZ2V0UnVudGltZSgp
LmV4ZWMoc1N1UGF0aCk7CiAgICAgICAgICAgICAgICBTdHJpbmcgY21kID0gImNobW9kIDY2NiAi
ICsgZGV2aWNlLmdldEFic29sdXRlUGF0aCgpICsgIlxuIiArICJleGl0XG4iOwogICAgICAgICAg
ICAgICAgc3UuZ2V0T3V0cHV0U3RyZWFtKCkud3JpdGUoY21kLmdldEJ5dGVzKCkpOwogICAgICAg
ICAgICAgICAgaWYgKChzdS53YWl0Rm9yKCkgIT0gMCkgfHwgIWRldmljZS5jYW5SZWFkKCkgfHwg
IWRldmljZS5jYW5Xcml0ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNlY3Vy
aXR5RXhjZXB0aW9uKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKEV4
Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFNlY3VyaXR5RXhjZXB0aW9uKCk7CiAgICAgICAgICAgIH0KICAg
ICAgICB9CgogICAgICAgIG1GZCA9IG9wZW4oZGV2aWNlLmdldEFic29sdXRlUGF0aCgpLCBiYXVk
cmF0ZSwgOCwgMCwgMSwgZmxhZ3MpOwogICAgICAgIGlmIChtRmQgPT0gbnVsbCkgewogICAgICAg
ICAgICBMb2cuZShUQUcsICJuYXRpdmUgb3BlbiByZXR1cm5zIG51bGwiKTsKICAgICAgICAgICAg
dGhyb3cgbmV3IElPRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIG1GaWxlSW5wdXRTdHJl
YW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKG1GZCk7CiAgICAgICAgbUZpbGVPdXRwdXRTdHJlYW0g
PSBuZXcgRmlsZU91dHB1dFN0cmVhbShtRmQpOwogICAgfQoKICAgIC8qKgogICAgICogU2VyaWFs
IHBvcnQsIGRlZmF1bHQgOG4xCiAgICAgKgogICAgICogQHBhcmFtIGRldmljZSBzZXJpYWwgZGV2
aWNlIGZpbGUKICAgICAqIEBwYXJhbSBiYXVkcmF0ZSBiYXVkIHJhdGUKICAgICAqIEB0aHJvd3Mg
U2VjdXJpdHlFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KICAgICAqLwogICAg
cHVibGljIFNlcmlhbFBvcnQoQE5vbk51bGwgRmlsZSBkZXZpY2UsIGludCBiYXVkcmF0ZSkgdGhy
b3dzIFNlY3VyaXR5RXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CiAgICAgICAgdGhpcyhkZXZpY2Us
IGJhdWRyYXRlLCA4LCAwLCAxLCAwKTsKICAgIH0KCiAgICAvKioKICAgICAqIHNlcmlhbCBwb3J0
CiAgICAgKgogICAgICogQHBhcmFtIGRldmljZSBzZXJpYWwgZGV2aWNlIGZpbGUKICAgICAqIEBw
YXJhbSBiYXVkcmF0ZSBiYXVkIHJhdGUKICAgICAqIEBwYXJhbSBkYXRhQml0cyBkYXRhIGJpdHM7
IGRlZmF1bHQgOCwgb3B0aW9uYWwgdmFsdWUgaXMgNX44CiAgICAgKiBAcGFyYW0gcGFyaXR5IHBh
cml0eTsgMDogbm8gcGFyaXR5IChOT05FLCBkZWZhdWx0KTsgMTogb2RkIHBhcml0eSAoT0REKTsg
MjogZXZlbiBwYXJpdHkgKEVWRU4pCiAgICAgKiBAcGFyYW0gc3RvcEJpdHMgc3RvcCBiaXRzOyBk
ZWZhdWx0IDE7IDE6IDEgc3RvcCBiaXRzOyAyOiAyIHN0b3AgYml0cwogICAgICogQHRocm93cyBT
ZWN1cml0eUV4Y2VwdGlvbgogICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgogICAgICovCiAgICBw
dWJsaWMgU2VyaWFsUG9ydChATm9uTnVsbCBGaWxlIGRldmljZSwgaW50IGJhdWRyYXRlLCBpbnQg
ZGF0YUJpdHMsIGludCBwYXJpdHksIGludCBzdG9wQml0cykKICAgICAgICB0aHJvd3MgU2VjdXJp
dHlFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKICAgICAgICB0aGlzKGRldmljZSwgYmF1ZHJhdGUs
IGRhdGFCaXRzLCBwYXJpdHksIHN0b3BCaXRzLCAwKTsKICAgIH0KCiAgICAvLyBHZXR0ZXJzIGFu
ZCBzZXR0ZXJzCiAgICBATm9uTnVsbAogICAgcHVibGljIElucHV0U3RyZWFtIGdldElucHV0U3Ry
ZWFtKCkgewogICAgICAgIHJldHVybiBtRmlsZUlucHV0U3RyZWFtOwogICAgfQoKICAgIEBOb25O
dWxsCiAgICBwdWJsaWMgT3V0cHV0U3RyZWFtIGdldE91dHB1dFN0cmVhbSgpIHsKICAgICAgICBy
ZXR1cm4gbUZpbGVPdXRwdXRTdHJlYW07CiAgICB9CgogICAgLyoqIOS4suWPo+iuvuWkh+aWh+S7
tiAqLwogICAgQE5vbk51bGwKICAgIHB1YmxpYyBGaWxlIGdldERldmljZSgpIHsKICAgICAgICBy
ZXR1cm4gZGV2aWNlOwogICAgfQoKICAgIC8qKiDms6LnibnnjocgKi8KICAgIHB1YmxpYyBpbnQg
Z2V0QmF1ZHJhdGUoKSB7CiAgICAgICAgcmV0dXJuIGJhdWRyYXRlOwogICAgfQoKICAgIC8qKiDm
lbDmja7kvY3vvJvpu5jorqQ4LOWPr+mAieWAvOS4ujV+OCAqLwogICAgcHVibGljIGludCBnZXRE
YXRhQml0cygpIHsKICAgICAgICByZXR1cm4gZGF0YUJpdHM7CiAgICB9CgogICAgLyoqIOWlh+WB
tuagoemqjO+8mzA65peg5qCh6aqM5L2NKE5PTkXvvIzpu5jorqQp77ybMTrlpYfmoKHpqozkvY0o
T0REKTsyOuWBtuagoemqjOS9jShFVkVOKSAqLwogICAgcHVibGljIGludCBnZXRQYXJpdHkoKSB7
CiAgICAgICAgcmV0dXJuIHBhcml0eTsKICAgIH0KCiAgICAvKiog5YGc5q2i5L2N77yb6buY6K6k
Me+8mzE6MeS9jeWBnOatouS9je+8mzI6MuS9jeWBnOatouS9jSAqLwogICAgcHVibGljIGludCBn
ZXRTdG9wQml0cygpIHsKICAgICAgICByZXR1cm4gc3RvcEJpdHM7CiAgICB9CgogICAgcHVibGlj
IGludCBnZXRGbGFncygpIHsKICAgICAgICByZXR1cm4gZmxhZ3M7CiAgICB9CgogICAgLy8gSk5J
CiAgICBwcml2YXRlIG5hdGl2ZSBGaWxlRGVzY3JpcHRvciBvcGVuKFN0cmluZyBhYnNvbHV0ZVBh
dGgsIGludCBiYXVkcmF0ZSwgaW50IGRhdGFCaXRzLCBpbnQgcGFyaXR5LAogICAgICAgIGludCBz
dG9wQml0cywgaW50IGZsYWdzKTsKCiAgICBwdWJsaWMgbmF0aXZlIHZvaWQgY2xvc2UoKTsKCiAg
ICAvKiog5YWz6Zet5rWB5ZKM5Liy5Y+j77yM5bey57uPdHJ5LWNhdGNoICovCiAgICBwdWJsaWMg
dm9pZCB0cnlDbG9zZSgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBtRmlsZUlucHV0U3Ry
ZWFtLmNsb3NlKCk7CiAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgICAgICAg
ICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQoKICAgICAgICB0cnkgewogICAgICAg
ICAgICBtRmlsZU91dHB1dFN0cmVhbS5jbG9zZSgpOwogICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0
aW9uIGUpIHsKICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZSgpOwogICAgICAgIH0KCiAg
ICAgICAgdHJ5IHsKICAgICAgICAgICAgY2xvc2UoKTsKICAgICAgICB9IGNhdGNoIChFeGNlcHRp
b24gZSkgewogICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQogICAg
fQoKICAgIHN0YXRpYyB7CiAgICAgICAgU3lzdGVtLmxvYWRMaWJyYXJ5KCJzZXJpYWxfcG9ydCIp
OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgQnVpbGRlciBuZXdCdWlsZGVyKEZpbGUgZGV2aWNl
LCBpbnQgYmF1ZHJhdGUpIHsKICAgICAgICByZXR1cm4gbmV3IEJ1aWxkZXIoZGV2aWNlLCBiYXVk
cmF0ZSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBCdWlsZGVyIG5ld0J1aWxkZXIoU3RyaW5n
IGRldmljZVBhdGgsIGludCBiYXVkcmF0ZSkgewogICAgICAgIHJldHVybiBuZXcgQnVpbGRlcihk
ZXZpY2VQYXRoLCBiYXVkcmF0ZSk7CiAgICB9CgogICAgcHVibGljIGZpbmFsIHN0YXRpYyBjbGFz
cyBCdWlsZGVyIHsKCiAgICAgICAgcHJpdmF0ZSBGaWxlIGRldmljZTsKICAgICAgICBwcml2YXRl
IGludCBiYXVkcmF0ZTsKICAgICAgICBwcml2YXRlIGludCBkYXRhQml0cyA9IDg7CiAgICAgICAg
cHJpdmF0ZSBpbnQgcGFyaXR5ID0gMDsKICAgICAgICBwcml2YXRlIGludCBzdG9wQml0cyA9IDE7
CiAgICAgICAgcHJpdmF0ZSBpbnQgZmxhZ3MgPSAwOwoKICAgICAgICBwcml2YXRlIEJ1aWxkZXIo
RmlsZSBkZXZpY2UsIGludCBiYXVkcmF0ZSkgewogICAgICAgICAgICB0aGlzLmRldmljZSA9IGRl
dmljZTsKICAgICAgICAgICAgdGhpcy5iYXVkcmF0ZSA9IGJhdWRyYXRlOwogICAgICAgIH0KCiAg
ICAgICAgcHJpdmF0ZSBCdWlsZGVyKFN0cmluZyBkZXZpY2VQYXRoLCBpbnQgYmF1ZHJhdGUpIHsK
ICAgICAgICAgICAgdGhpcyhuZXcgRmlsZShkZXZpY2VQYXRoKSwgYmF1ZHJhdGUpOwogICAgICAg
IH0KCiAgICAgICAgLyoqCiAgICAgICAgICog5pWw5o2u5L2NCiAgICAgICAgICoKICAgICAgICAg
KiBAcGFyYW0gZGF0YUJpdHMg6buY6K6kOCzlj6/pgInlgLzkuLo1fjgKICAgICAgICAgKiBAcmV0
dXJuCiAgICAgICAgICovCiAgICAgICAgcHVibGljIEJ1aWxkZXIgZGF0YUJpdHMoaW50IGRhdGFC
aXRzKSB7CiAgICAgICAgICAgIHRoaXMuZGF0YUJpdHMgPSBkYXRhQml0czsKICAgICAgICAgICAg
cmV0dXJuIHRoaXM7CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiDmoKHpqozkvY0K
ICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBwYXJpdHkgMDrml6DmoKHpqozkvY0oTk9ORe+8
jOm7mOiupCnvvJsxOuWlh+agoemqjOS9jShPREQpOzI65YG25qCh6aqM5L2NKEVWRU4pCiAgICAg
ICAgICogQHJldHVybgogICAgICAgICAqLwogICAgICAgIHB1YmxpYyBCdWlsZGVyIHBhcml0eShp
bnQgcGFyaXR5KSB7CiAgICAgICAgICAgIHRoaXMucGFyaXR5ID0gcGFyaXR5OwogICAgICAgICAg
ICByZXR1cm4gdGhpczsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIOWBnOatouS9
jQogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHN0b3BCaXRzIOm7mOiupDHvvJsxOjHkvY3l
gZzmraLkvY3vvJsyOjLkvY3lgZzmraLkvQ0KICAgICAgICAgKiBAcmV0dXJuCiAgICAgICAgICov
CiAgICAgICAgcHVibGljIEJ1aWxkZXIgc3RvcEJpdHMoaW50IHN0b3BCaXRzKSB7CiAgICAgICAg
ICAgIHRoaXMuc3RvcEJpdHMgPSBzdG9wQml0czsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAg
ICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiDmoIflv5cKICAgICAgICAgKgogICAgICAgICAq
IEBwYXJhbSBmbGFncyDpu5jorqQwCiAgICAgICAgICogQHJldHVybgogICAgICAgICAqLwogICAg
ICAgIHB1YmxpYyBCdWlsZGVyIGZsYWdzKGludCBmbGFncykgewogICAgICAgICAgICB0aGlzLmZs
YWdzID0gZmxhZ3M7CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KCiAgICAgICAg
LyoqCiAgICAgICAgICog5omT5byA5bm26L+U5Zue5Liy5Y+jCiAgICAgICAgICoKICAgICAgICAg
KiBAcmV0dXJuCiAgICAgICAgICogQHRocm93cyBTZWN1cml0eUV4Y2VwdGlvbgogICAgICAgICAq
IEB0aHJvd3MgSU9FeGNlcHRpb24KICAgICAgICAgKi8KICAgICAgICBwdWJsaWMgU2VyaWFsUG9y
dCBidWlsZCgpIHRocm93cyBTZWN1cml0eUV4Y2VwdGlvbiwgSU9FeGNlcHRpb24gewogICAgICAg
ICAgICByZXR1cm4gbmV3IFNlcmlhbFBvcnQoZGV2aWNlLCBiYXVkcmF0ZSwgZGF0YUJpdHMsIHBh
cml0eSwgc3RvcEJpdHMsIGZsYWdzKTsKICAgICAgICB9CiAgICB9Cn0K