5% Off

£499.99 £475.00

In Stock

The MOT Pro offers a new level of capability for the professional user, at a price that other tools simply can’t match.

SKU: APMOTPRO Category:

Description

Highly functional, the MOT Pro provides 40+ manufacturer coverage offering diagnostics on the most common modules such as OBD, Transmission, ABS, AirBag, Electronic Parking Brake, Oil Service Reset, some TPMS, some steering control sensors, climate, audio and others. The MOT Pro works with manufacturers up to 2015 with our patented and upgradable software.

New software updates are approximately released about 12/18 months behind new vehicle software releases by the manufacturers.

Features

  • Works With OBDII compliant vehicles
  • Reads and Erase codes
  • C.A.N capability
  • Colour Screen
  • Multilingual
  • Software Updatable
  • Retrieves Vehicle Information
  • Built in OBDII DTC look up
  • Retrieves Generic and Manufacturer codes
  • Views Freeze Frame Data
  • Troubleshoots Engine codes
  • One Touch Engine Vehicle Health Check
  • Prints Data Via PC
  • Displays 02 Sensor Data
  • Troubleshoots Transmission codes
  • Troubleshoots Anti-Lock Brake System (ABS)
  • Troubleshoots Airbag (SRS) codes
  • Electronic Parking Brake (EPB)
  • Oil/Service Reset
  • TPMS/Steering Angle Sensor Calibration
  • Troubleshoots Climate Control codes
  • Troubleshoots Battery Codes

Vehicle Coverage

ManufacturerSub-SystemVersion
AbarthOil Reset6.10View Coverage
AbarthSAS6.01View Coverage
AbarthAll Systems6.01View Coverage
AcuraDPF6.10View Coverage
AcuraSAS6.01View Coverage
AcuraOil Reset6.10View Coverage
AcuraElectronic Parking Brake6.10View Coverage
AcuraAll Systems6.01View Coverage
Alfa RomeoSAS6.01View Coverage
Alfa RomeoOil Reset6.10View Coverage
Alfa RomeoAll Systems6.01View Coverage
Alfa RomeoDPF6.01View Coverage
AudiOil Reset6.10View Coverage
AudiElectronic Parking Brake6.20View Coverage
Audi6.10View Coverage
AudiSAS6.10View Coverage
AudiDPF6.10View Coverage
AudiAll Systems6.10View Coverage
BentleyDPF6.10View Coverage
BentleyElectronic Parking Brake6.20View Coverage
BentleySAS6.10View Coverage
Bentley6.10View Coverage
BentleyAll Systems6.10View Coverage
BentleyOil Reset6.10View Coverage
BMWElectronic Parking Brake6.01View Coverage
BMW6.01View Coverage
BMWAll Systems6.01View Coverage
BMWDPF6.01View Coverage
BMWOil Reset6.01View Coverage
BMWSAS6.01View Coverage
BugattiAll Systems6.10View Coverage
BugattiOil Reset6.10View Coverage
BugattiSAS6.10View Coverage
BugattiDPF6.10View Coverage
Bugatti6.10View Coverage
BugattiElectronic Parking Brake6.20View Coverage
ChryslerAll Systems6.01View Coverage
ChryslerSAS6.01View Coverage
ChryslerDPF6.03View Coverage
ChryslerOil Reset6.10View Coverage
ChryslerElectronic Parking Brake1.00View Coverage
CitroenOil Reset6.10View Coverage
CitroenSAS6.01View Coverage
CitroenDPF6.01View Coverage
CitroenAll Systems6.01View Coverage
CitroenElectronic Parking Brake6.10View Coverage
DaciaAll Systems6.10View Coverage
DaciaOil Reset6.20View Coverage
DaciaSAS6.10View Coverage
DaewooAll Systems6.01View Coverage
FiatOil Reset6.10View Coverage
FiatAll Systems6.01View Coverage
FiatDPF6.01View Coverage
FiatSAS6.01View Coverage
Ford (AU)SAS6.02View Coverage
Ford (AU)DPF6.02View Coverage
Ford (AU)All Systems6.03View Coverage
Ford (EU)DPF6.02View Coverage
Ford (EU)SAS6.02View Coverage
Ford (EU)Electronic Parking Brake6.10View Coverage
Ford (EU)All Systems6.03View Coverage
Ford (US)Electronic Parking Brake6.10View Coverage
Ford (US)SAS6.02View Coverage
Ford (US)Oil Reset6.10View Coverage
Ford (US)DPF6.02View Coverage
Ford (US)6.01View Coverage
Ford (US)All Systems6.03View Coverage
GMAll Systems6.01View Coverage
GMDPF6.01View Coverage
GMOil Reset6.01View Coverage
GMSAS6.01View Coverage
HoldenSAS6.01View Coverage
HoldenOil Reset7.10View Coverage
HoldenAll Systems6.10View Coverage
HondaElectronic Parking Brake6.10View Coverage
HondaOil Reset6.10View Coverage
HondaSAS6.01View Coverage
HondaAll Systems6.01View Coverage
HondaDPF6.10View Coverage
HyundaiDPF6.10View Coverage
HyundaiOil Reset6.10View Coverage
HyundaiAll Systems6.11View Coverage
HyundaiElectronic Parking Brake6.01View Coverage
HyundaiSAS6.10View Coverage
InfinitiDPF6.01View Coverage
InfinitiAll Systems6.11View Coverage
InfinitiSAS6.01View Coverage
InfinitiOil Reset6.01View Coverage
InfinitiElectronic Parking Brake6.20View Coverage
IsuzuAll Systems6.01View Coverage
IsuzuOil Reset6.01View Coverage
JaguarElectronic Parking Brake6.20View Coverage
JaguarDPF6.01View Coverage
Jaguar6.01View Coverage
JaguarOil Reset6.20View Coverage
JaguarSAS6.01View Coverage
JaguarAll Systems6.01View Coverage
KIAAll Systems6.11View Coverage
KIAElectronic Parking Brake6.01View Coverage
KIASAS6.10View Coverage
KIADPF6.10View Coverage
KIAOil Reset6.10View Coverage
Land RoverOil Reset6.20View Coverage
Land RoverElectronic Parking Brake6.20View Coverage
Land RoverAll Systems6.01View Coverage
Land RoverDPF6.01View Coverage
Land Rover6.01View Coverage
Land RoverSAS6.01View Coverage
LanicaAll Systems6.01View Coverage
LanicaSAS6.01View Coverage
LanicaOil Reset6.10View Coverage
LanicaDPF6.01View Coverage
LexusDPF6.01View Coverage
LexusElectronic Parking Brake6.20View Coverage
LexusAll Systems6.01View Coverage
LexusOil Reset6.20View Coverage
LexusSAS6.01View Coverage
MaybachOil Reset6.11View Coverage
MaybachSAS6.10View Coverage
MaybachAll Systems6.11View Coverage
MaybachElectronic Parking Brake6.11View Coverage
MazdaDPF6.02View Coverage
MazdaOil Reset6.10View Coverage
MazdaAll Systems6.03View Coverage
Mercedes SprinterDPF6.10View Coverage
Mercedes SprinterAll Systems6.10View Coverage
Mercedes SprinterOil Reset6.10View Coverage
Mercedes-BenzElectronic Parking Brake6.11View Coverage
Mercedes-BenzDPF6.12View Coverage
Mercedes-BenzAll Systems6.11View Coverage
Mercedes-BenzOil Reset6.11View Coverage
Mercedes-BenzSAS6.10View Coverage
MiniElectronic Parking Brake6.01View Coverage
Mini6.01View Coverage
MiniAll Systems6.01View Coverage
MiniOil Reset6.01View Coverage
MiniSAS6.01View Coverage
MiniDPF6.01View Coverage
MitsubishiSAS6.01View Coverage
MitsubishiDPF6.01View Coverage
MitsubishiOil Reset6.01View Coverage
MitsubishiAll Systems6.01View Coverage
NissanElectronic Parking Brake6.20View Coverage
NissanSAS6.01View Coverage
NissanOil Reset6.01View Coverage
NissanDPF6.01View Coverage
NissanAll Systems6.11View Coverage
OBDII6.01View Coverage
OpelAll Systems6.01View Coverage
OpelSAS6.01View Coverage
OpelElectronic Parking Brake7.00View Coverage
OpelOil Reset7.00View Coverage
OpelDPF7.00View Coverage
PeugeotOil Reset6.10View Coverage
PeugeotAll Systems6.01View Coverage
PeugeotSAS6.01View Coverage
PeugeotElectronic Parking Brake6.10View Coverage
PeugeotDPF6.01View Coverage
PorscheOil Reset6.02View Coverage
PorscheElectronic Parking Brake6.02View Coverage
PorscheAll Systems6.01View Coverage
RenaultDPF6.10View Coverage
RenaultElectronic Parking Brake6.20View Coverage
RenaultAll Systems6.10View Coverage
RenaultSAS6.10View Coverage
RenaultOil Reset6.20View Coverage
Rolls-RoyceOil Reset6.01View Coverage
SAABAll Systems6.01View Coverage
SAABOil Reset6.01View Coverage
ScionDPF6.01View Coverage
ScionElectronic Parking Brake6.20View Coverage
ScionOil Reset6.20View Coverage
ScionSAS6.01View Coverage
ScionAll Systems6.01View Coverage
SEATAll Systems6.10View Coverage
SEATOil Reset6.10View Coverage
SEATElectronic Parking Brake6.20View Coverage
SEATDPF6.10View Coverage
SEATSAS6.10View Coverage
SEAT6.10View Coverage
SkodaSAS6.10View Coverage
Skoda6.10View Coverage
SkodaDPF6.10View Coverage
SkodaAll Systems6.10View Coverage
SkodaOil Reset6.10View Coverage
SkodaElectronic Parking Brake6.20View Coverage
SMARTAll Systems6.10View Coverage
SMARTOil Reset6.10View Coverage
SubaruAll Systems6.01View Coverage
SubaruSAS6.01View Coverage
SuzukiSAS6.01View Coverage
SuzukiAll Systems6.01View Coverage
ToyotaSAS6.01View Coverage
ToyotaAll Systems6.01View Coverage
ToyotaOil Reset6.20View Coverage
ToyotaDPF6.01View Coverage
ToyotaElectronic Parking Brake6.20View Coverage
VauxhallElectronic Parking Brake7.00View Coverage
VauxhallOil Reset7.00View Coverage
VauxhallDPF7.00View Coverage
VauxhallAll Systems6.01View Coverage
VauxhallSAS6.01View Coverage
Volkswagen6.10View Coverage
VolkswagenOil Reset6.10View Coverage
VolkswagenSAS6.10View Coverage
VolkswagenDPF6.10View Coverage
VolkswagenAll Systems6.10View Coverage
VolkswagenElectronic Parking Brake6.20View Coverage
VolvoElectronic Parking Brake6.10View Coverage
VolvoOil Reset6.10View Coverage
VolvoAll Systems6.01View Coverage

Specification

DisplayTFT color display (320 x 240 dpi)
Operating Temperature0 to 60°C (32 to 140°C)
Storage Temperature-20 to 70°C (-4 to 158°C)
External Power12.0 to 18.0 V power provided via vehicle battery or adapter
Length\Width\Height212mm (8.35″)\110.5mm (4.35″)\37.5mm (1.48″)
Weight0.28kg (without wire) 0.484kg (with wire)

What's included?

  • User’s Manual
  • CD
  • OBD2 cable
  • USB cable
  • SD card
  • Carry case

Downloads

Request a call back
SUBSCRIBE TO OUR NEWSLETTER
Subscribe to our mailing list to get the latest news from our site
We hate Spam! Your privacy is Protected. Your email address will not be shared with anyone & used by only us!
Are you Fed Up of looking around?
Want 'Better than Online' deals?
Thank You. We will contact you as soon as possible.
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfMicgPjxhIGlkPSdnZl8yJyBjbGFzcz0nZ2Zvcm1fYW5jaG9yJyA+PC9hPjxmb3JtIG1ldGhvZD0ncG9zdCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YScgdGFyZ2V0PSdnZm9ybV9hamF4X2ZyYW1lXzInIGlkPSdnZm9ybV8yJyAgYWN0aW9uPScvcHJvZHVjdC9tb3QtcHJvLyNnZl8yJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fYm9keSc+PHVsIGlkPSdnZm9ybV9maWVsZHNfMicgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF8yXzInIGNsYXNzPSdnZmllbGQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZScgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzJfMicgPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3RleHQnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyBpZD0naW5wdXRfMl8yJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzQ5JyAgcGxhY2Vob2xkZXI9J05hbWUgKicgIGFyaWEtaW52YWxpZD0iZmFsc2UiIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzJfMycgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMl8zJyA+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfZW1haWwnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9J2lucHV0XzMnIGlkPSdpbnB1dF8yXzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nIHRhYmluZGV4PSc1MCcgICBwbGFjZWhvbGRlcj0nRW1haWwgKicvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMl81JyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yXzUnID48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9waG9uZSc+PGlucHV0IG5hbWU9J2lucHV0XzUnIGlkPSdpbnB1dF8yXzUnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nIHRhYmluZGV4PSc1MScgIHBsYWNlaG9sZGVyPSdQaG9uZScgIGFyaWEtaW52YWxpZD0iZmFsc2UiIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzJfNicgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMl82JyA+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfdGV4dCc+PGlucHV0IG5hbWU9J2lucHV0XzYnIGlkPSdpbnB1dF8yXzYnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICB0YWJpbmRleD0nNTInICBwbGFjZWhvbGRlcj0nU3ViamVjdCcgIGFyaWEtaW52YWxpZD0iZmFsc2UiIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzJfOCcgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMl84JyA+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfdGV4dGFyZWEnPjx0ZXh0YXJlYSBuYW1lPSdpbnB1dF84JyBpZD0naW5wdXRfMl84JyBjbGFzcz0ndGV4dGFyZWEgbWVkaXVtJyB0YWJpbmRleD0nNTMnICBwbGFjZWhvbGRlcj0nTWVzc2FnZScgIGFyaWEtaW52YWxpZD0iZmFsc2UiICAgcm93cz0nMTAnIGNvbHM9JzUwJz48L3RleHRhcmVhPjwvZGl2PjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2Zvb3RlciB0b3BfbGFiZWwnPiA8aW5wdXQgdHlwZT0nc3VibWl0JyBpZD0nZ2Zvcm1fc3VibWl0X2J1dHRvbl8yJyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzU0JyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMiJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzIiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMiJdKXtyZXR1cm4gZmFsc2U7fSB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMiJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV8yIikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD0yJmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9NDknIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF8yJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nMicgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfMicgdmFsdWU9J1d5SmJYU0lzSW1ZeFltWmtabVJpTVdWbE9HSTVOelZqT1RNeE5ERmxaREZsTW1FeVlXUTRJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfMicgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl8yJyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzInIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfMicgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzInIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzInPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQUpBWCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCAyLCAnaHR0cDovL3d3dy52YWx1ZWdhcmFnZWVxdWlwbWVudC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV8yJykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfMicpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfMicpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMicpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMicpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzInKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzInKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzInKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCAyLCAnaHR0cDovL3d3dy52YWx1ZWdhcmFnZWVxdWlwbWVudC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFsyLCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfMiddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1zX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzInKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yJykucmVwbGFjZVdpdGgoJzwnICsgJ2RpdiBpZD1cJ2dmb3Jtc19jb25maXJtYXRpb25fbWVzc2FnZV8yXCcgY2xhc3M9XCdnZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZV8yIGdmb3Jtc19jb25maXJtYXRpb25fbWVzc2FnZVwnJyArICc+JyArIGNvbmZpcm1hdGlvbl9jb250ZW50ICsgJzwnICsgJy9kaXYnICsgJz4nKTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VfMicpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzJdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfMiddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzInKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFsyLCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwOlwvXC93d3cudmFsdWVnYXJhZ2VlcXVpcG1lbnQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwOlwvXC93d3cudmFsdWVnYXJhZ2VlcXVpcG1lbnQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSAyKSB7aWYodHlwZW9mIFBsYWNlaG9sZGVycyAhPSAndW5kZWZpbmVkJyl7CiAgICAgICAgICAgICAgICAgICAgICAgIFBsYWNlaG9sZGVycy5lbmFibGUoKTsKICAgICAgICAgICAgICAgICAgICB9fSB9ICk7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzIsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
Request a call back