Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erase flash from top to bottom #18

Merged
merged 4 commits into from
Dec 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
35 changes: 17 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
+ Chip erase in bootloader (faster than -c urclock emulation)
- Avrdude (from v7.1 onwards) supports urboot bootloaders with `-c urclock`

**Documentation.** In the first instance, the first 666 or so lines of `urboot.c`
**Documentation.** In the first instance, the [first 700 or so lines of `urboot.c`](https://github.com/stefanrueger/urboot/blob/2f81ee5e026b62b426ce6135a09d13f7a310afa8/src/urboot.c#L1-L680)

**Compiling an urboot bootloader.** The small sizes of `urboot` bootloaders depend on many a trick
of the trade, most of which only work with the avr-gcc toolchain used for compilation. It turns out
Expand All @@ -42,17 +42,17 @@ taken, it is pretty easy to create own bootloaders with commands such as
```

**Pre-compiled bootloaders.** If compiling bootloaders is not feasible, feel free to try out one of
the 34,808 *different* pre-compiled bootloaders in the directory tree
the 32,760 *different* pre-compiled bootloaders in the directory tree
[`bootloaders`](https://github.com/stefanrueger/urboot/tree/main/bootloaders/). The tree contains
actually 88,693 hex files, but they are somewhat redundant because a bootloader on 115,200 baud for
actually 98,301 hex files, but they are somewhat redundant because a bootloader on 115,200 baud for
16 MHz is *exactly* the same as a bootloader on 57,600 baud for 8 MHz. You can find bootloaders for
popular boards in that directory, too, for example autobaud bootloaders for the venerable ATmega328P based
[Uno](https://github.com/stefanrueger/urboot/blob/main/bootloaders/board_uno/autobaud/README.md) with a LED on PB5, the
[Arduino Pro Mini](https://github.com/stefanrueger/urboot/tree/main/bootloaders/board_promini/autobaud/README.md) (same bootloaders), the
[Jeenode](https://github.com/stefanrueger/urboot/tree/main/bootloaders/board_jeenode/autobaud/README.md) with a low-active LED on PB1, the
ATmega1284P based [Moteino Mega](https://github.com/stefanrueger/urboot/tree/main/bootloaders/board_moteinomega/autobaud/README.md) and the
ATmega2560 [Mega R3 board](https://github.com/stefanrueger/urboot/tree/main/bootloaders/board_mega-r3/autobaud/README.md); or, eg, some
16 MHz and 115,200 baud boorloaders for the
16 MHz and 115,200 baud bootloaders for the
[ATtiny167 based Digispark Pro](https://github.com/stefanrueger/urboot/tree/main/bootloaders/board_digispark-pro/fcpu_16mhz/115200_bps/README.md), the
[ATtiny85 based Disgispark](https://github.com/stefanrueger/urboot/tree/main/bootloaders/board_digispark/fcpu_16mhz/115200_bps/README.md) and the
[ATtiny84 based Luminet](https://github.com/stefanrueger/urboot/tree/main/bootloaders/board_luminet/fcpu_16mhz/115200_bps/README.md).
Expand All @@ -78,8 +78,8 @@ bootloader

| Bootloader | `FUSE_BOOTRST` | `FUSE_BOOTSZ` | Lock bits for bootloader section |
| --: | --: | --: | --: |
| `j`, `v`, `V` | Reset to start of memory| Don't care | Read/write to everywhere|
| `h` | Reset to boot section | Match with size of bootloader | Protect boot section |
| `j`, `v`, `V` | Reset to memory start | Don't care | Read/write to everywhere|
| `h` | Reset to boot section | Match with bootloader size | Protect boot section |

Strictly speaking vector bootloaders also need a `jmp` or `rjmp` from the reset vector
at address 0 to the bootloader. However, if the chip was erased before putting the bootloader
Expand Down Expand Up @@ -110,11 +110,11 @@ and 115,200 baud serial communication speed, except where noted differently.
|Size|Usage|Version|Features|Hex file|
|:-:|:-:|:-:|:-:|:--|
|252|256|u7.7|`w-u-jpr--`|[urboot_atmega328p_led+b5_fr_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_16mhz/115200_bps/urboot_atmega328p_16mhz_115200bps_led+b5_fr_ur_vbl.hex)|
|360|384|u7.7|`weu-jPr-c`|[urboot_atmega328p_ee_led+b5_fr_ce_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_16mhz/115200_bps/urboot_atmega328p_16mhz_115200bps_ee_led+b5_fr_ce_ur_vbl.hex)|
|446|512|u7.7|`wes-hpr-c`|[urboot_atmega328p_ee_led+b5_fr_ce.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_16mhz/115200_bps/urboot_atmega328p_16mhz_115200bps_ee_led+b5_fr_ce.hex)|
|474|512|o8.3|`-.s-.-r--`|[optiboot_atmega328.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/src/all/optiboot_atmega328.hex)|
|502|512|u7.7|`weudhprac`|[urboot_urclockusb_autobaud_ee_led+d5_csb0_dual_fr_ce_ur.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/board_urclockusb/autobaud/urboot_urclockusb_autobaud_ee_led+d5_csb0_dual_fr_ce_ur.hex)|
|710|1024|o8.3|`-.s-.-r--`|[bigboot_328.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/src/all/bigboot_328.hex)|
|358|384|u7.7|`weu-jPr-c`|[urboot_atmega328p_ee_led+b5_fr_ce_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_16mhz/115200_bps/urboot_atmega328p_16mhz_115200bps_ee_led+b5_fr_ce_ur_vbl.hex)|
|444|512|u7.7|`wes-hpr-c`|[urboot_atmega328p_ee_led+b5_fr_ce.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_16mhz/115200_bps/urboot_atmega328p_16mhz_115200bps_ee_led+b5_fr_ce.hex)|
|474|512|o8.3|`--s-h-r--`|[optiboot_atmega328.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/src/all/optiboot_atmega328.hex)|
|500|512|u7.7|`weudhprac`|[urboot_urclockusb_autobaud_ee_led+d5_csb0_dual_fr_ce_ur.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/board_urclockusb/autobaud/urboot_urclockusb_autobaud_ee_led+d5_csb0_dual_fr_ce_ur.hex)|
|710|1024|o8.3|`-es-h-r--`|[bigboot_328.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/src/all/bigboot_328.hex)|

- **Size:** Bootloader code size including small table at top end
- **Usage:** How many bytes of flash are needed, ie, HW boot section or a multiple of the page size
Expand All @@ -132,7 +132,6 @@ and 115,200 baud serial communication speed, except where noted differently.
+ `r` preserves reset flags for the application in the register R2
+ `a` autobaud detection (f_cpu/8n using discrete divisors, n = 1, 2, ..., 256)
+ `c` bootloader provides chip erase functionality (only recommended for large MCUs)
+ `.` unable to tell from .hex file whether this feature is present
+ `-` corresponding feature not present
- **Hex file:** typically MCU name, oscillator frequency (16 MHz default) and baud rate (115200 default) followed by
+ `autobaud` tries to match host baud rate; can be f/8, f/16, f/24, ..., f/2048 (f=F<sub>CPU</sub>)
Expand Down Expand Up @@ -170,12 +169,12 @@ Here a slightly larger table catering demonstrating the range of 183 parts for w
|252|256|u7.7|`w-u-jpr--`|[urboot_atmega328p_lednop_fr_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_16mhz/115200_bps/urboot_atmega328p_16mhz_115200bps_lednop_fr_ur_vbl.hex)|
|252|256|u7.7|`w-u-jpr--`|[urboot_atmega328p_8mhz_115200bps_rxd0_txd1_lednop_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_8mhz/115200_bps/urboot_atmega328p_8mhz_115200bps_rxd0_txd1_lednop_ur_vbl.hex)|
|254|256|u7.7|`w-u-jpr--`|[urboot_attiny84_rxa3_txa2_lednop_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/attiny84/fcpu_16mhz/115200_bps/urboot_attiny84_16mhz_115200bps_rxa3_txa2_lednop_ur_vbl.hex)|
|360|384|u7.7|`weu-jPr-c`|[urboot_atmega328p_ee_lednop_fr_ce_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_16mhz/115200_bps/urboot_atmega328p_16mhz_115200bps_ee_lednop_fr_ce_ur_vbl.hex)|
|378|384|u7.7|`weu-jPr-c`|[urboot_atmega328p_8mhz_115200bps_rxd0_txd1_ee_lednop_fr_ce_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_8mhz/115200_bps/urboot_atmega328p_8mhz_115200bps_rxd0_txd1_ee_lednop_fr_ce_ur_vbl.hex)|
|462|512|u7.7|`wes-hprac`|[urboot_atmega328p_autobaud_ee_lednop_fr_ce.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/autobaud/urboot_atmega328p_autobaud_ee_lednop_fr_ce.hex)|
|474|512|o8.3|`-.s-.-r--`|[optiboot_atmega328.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/src/all/optiboot_atmega328.hex)|
|502|512|u7.7|`weudhprac`|[urboot_urclockusb_autobaud_ee_led+d5_csb0_dual_fr_ce_ur.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/board_urclockusb/autobaud/urboot_urclockusb_autobaud_ee_led+d5_csb0_dual_fr_ce_ur.hex)|
|510|512|u7.7|`weudhprac`|[urboot_atmega328p_autobaud_ee_template_dual_fr_ce_ur.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/autobaud/urboot_atmega328p_autobaud_ee_template_dual_fr_ce_ur.hex)|
|358|384|u7.7|`weu-jPr-c`|[urboot_atmega328p_ee_lednop_fr_ce_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_16mhz/115200_bps/urboot_atmega328p_16mhz_115200bps_ee_lednop_fr_ce_ur_vbl.hex)|
|376|384|u7.7|`weu-jPr-c`|[urboot_atmega328p_8mhz_115200bps_rxd0_txd1_ee_lednop_fr_ce_ur_vbl.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/fcpu_8mhz/115200_bps/urboot_atmega328p_8mhz_115200bps_rxd0_txd1_ee_lednop_fr_ce_ur_vbl.hex)|
|460|512|u7.7|`wes-hprac`|[urboot_atmega328p_autobaud_ee_lednop_fr_ce.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/autobaud/urboot_atmega328p_autobaud_ee_lednop_fr_ce.hex)|
|474|512|o8.3|`--s-h-r--`|[optiboot_atmega328.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/src/all/optiboot_atmega328.hex)|
|500|512|u7.7|`weudhprac`|[urboot_urclockusb_autobaud_ee_led+d5_csb0_dual_fr_ce_ur.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/board_urclockusb/autobaud/urboot_urclockusb_autobaud_ee_led+d5_csb0_dual_fr_ce_ur.hex)|
|508|512|u7.7|`weudhprac`|[urboot_atmega328p_autobaud_ee_template_dual_fr_ce_ur.hex](https://raw.githubusercontent.com/stefanrueger/urboot/main/bootloaders/atmega328p/autobaud/urboot_atmega328p_autobaud_ee_template_dual_fr_ce_ur.hex)|

- **Hex file** naming convention: as above, plus
+ `rxd0 txd1` software I/O using, in this example, lines RX `D0` and TX `D1`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
:10FC600049F481E097D08EE179D087E977D081E8B7
:10FC700075D071C0863509F579D0D82F77D0C82FC7
:10FC800075D074D081E086D0DC3A11F08FEFF0CFE0
:10FC9000C038E1F71BBEE0E0F0E0CCEFD1E083E05C
:10FCA0009DD0A895CF019395FC01892B19F48BB7B2
:10FCB0008F5F8BBF219799F7E9CF853551F456D0E7
:10FC9000C038E1F7E0E0FCEF81E08BBF309719F46A
:10FCA0008BB781508BBFFA95A89583E097D030979A
:10FCB000A9F78BB78111F2CFE9CF853551F456D032
:10FCC000E82F54D0F82FEE0FFF1F8827881F8BBF17
:10FCD00040C0843601F549D0182F48D0082FC0E025
:10FCE000D1E044D089931C13FCCF81E053D006347B
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
:10FC000011248FEF90E19EBF8DBF24B614BE80E01B
:10FC10008AD021FEF5C18EE086D0E0ECF0E0AFE7BF
:10FC2000BFEF4A99FECF90964A9BFDCFB4831197C0
:10FC3000F1F7B2E0B083B8E1B183B6E0B2835FD050
:10FC4000C82F8235A1F476D01BBEE0E0F0E0CCEF07
:10FC5000D1E083E08ED0A895CF019395FC01892B4C
:10FC600019F48BB78F5F8BBF219799F73EC08D7FBB
:10FC3000F1F7B2E0B083B8E1B183B6E0B28311E08E
:10FC40005ED0C82F823599F475D0E0E0FCEF1BBF81
:10FC5000309719F48BB781508BBFFA95A89583E044
:10FC600088D03097A9F78BB78111F2CF3EC08D7F36
:10FC7000E9F452D0D82FA0E0B1E041D08D93DA134F
:10FC8000FCCF58D0C1110EC0A0E0B1E0F999FECF71
:10FC9000F2BDE1BD8D9180BDFA9AF99A3196DA13E1
:10FCA000F5CF23C0A0E0B1E050D01FC0C33041F475
:10FCB00033D0C82F3FD087911BD0C150E1F715C07A
:10FCC000C13071F429D0C82F35D0F999FECFF2BDDB
:10FCD000E1BDF89A80B50CD03196C150B1F705C09E
:10FCE000C13511F488E01FD025D081EB01D0A7CF1A
:10FCE000C13511F488E01FD025D081EB01D0A8CF19
:10FCF0009091C00095FFFCCF8093C6000895002C22
:10FD0000CC2C8091C00087FFFCCF84FD16C0A89545
:10FD10008091C600112C0895F2DFE82FF0DFF82F54
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
:10FE000011248FEF90E19EBF8DBF24B614BE80E019
:10FE10008AD021FE3DC18EE086D0E0ECF0E0AFE775
:10FE2000BFEF4A99FECF90964A9BFDCFB4831197BE
:10FE3000F1F7B2E0B083B8E1B183B6E0B2835FD04E
:10FE4000C82F8235A1F476D01BBEE0E0F0E0CEEF03
:10FE5000D1E083E097D0A895CF019395FC01892B41
:10FE600019F48BB78F5F8BBF219799F73EC08D7FB9
:10FE3000F1F7B2E0B083B8E1B183B6E0B28311E08C
:10FE40005ED0C82F823599F475D0E0E0FEEF1BBF7D
:10FE5000309719F48BB781508BBFFA95A89583E042
:10FE600091D03097A9F78BB78111F2CF3EC08D7F2B
:10FE7000E9F452D0D82FA0E0B1E041D08D93DA134D
:10FE8000FCCF58D0C1110EC0A0E0B1E0F999FECF6F
:10FE9000F2BDE1BD8D9180BDFA9AF99A3196DA13DF
:10FEA000F5CF23C0A0E0B1E050D01FC0C33041F473
:10FEB00033D0C82F3FD087911BD0C150E1F715C078
:10FEC000C13071F429D0C82F35D0F999FECFF2BDD9
:10FED000E1BDF89A80B50CD03196C150B1F705C09C
:10FEE000C13511F488E01FD025D081EB01D0A7CF18
:10FEE000C13511F488E01FD025D081EB01D0A8CF17
:10FEF0009091C00095FFFCCF8093C6000895002C20
:10FF0000CC2C8091C00087FFFCCF84FD16C0A89543
:10FF10008091C600112C0895F2DFE82FF0DFF82F52
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
:10FC500097D08EE179D087E977D081E875D071C0EF
:10FC6000863509F579D0D82F77D0C82F75D074D0C4
:10FC700081E086D0DC3A11F08FEFF0CFC038E1F7A9
:10FC80001BBEE0E0F0E0CCEFD1E083E09DD0A89592
:10FC9000CF019395FC01892B19F48BB78F5F8BBF34
:10FCA000219799F7E9CF853551F456D0E82F54D0F4
:10FC8000E0E0FCEF81E08BBF309719F48BB7815037
:10FC90008BBFFA95A89583E097D03097A9F78BB7DB
:10FCA0008111F2CFE9CF853551F456D0E82F54D0E9
:10FCB000F82FEE0FFF1F8827881F8BBF40C08436A8
:10FCC00001F549D0182F48D0082FC0E0D1E044D02A
:10FCD00089931C13FCCF81E053D0063471F0A0E06F
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
:020000021000EC
:10FC000011248FEF90E19EBF8DBF24B614BE80E01B
:10FC100080D021FEF5C18EE07CD0E0ECF0E0B5E0D4
:10FC2000B483B8E1B183B6E0B2835FD0C82F823528
:10FC3000A1F476D01BBEE0E0F0E0CCEFD1E083E0B1
:10FC40008ED0A895CF019395FC01892B19F48BB721
:10FC50008F5F8BBF219799F73EC08D7FE9F452D01B
:10FC2000B483B8E1B183B6E0B28311E05ED0C82FEF
:10FC3000823599F475D0E0E0FCEF1BBF309719F4E2
:10FC40008BB781508BBFFA95A89583E088D0309709
:10FC5000A9F78BB78111F2CF3EC08D7FE9F452D066
:10FC6000D82FA0E0B1E041D08D93DA13FCCF58D06B
:10FC7000C1110EC0A0E0B1E0F999FECFF2BDE1BD27
:10FC80008D9180BDFA9AF99A3196DA13F5CF23C097
:10FC9000A0E0B1E050D01FC0C33041F433D0C82F32
:10FCA0003FD087911BD0C150E1F715C0C13071F42E
:10FCB00029D0C82F35D0F999FECFF2BDE1BDF89A11
:10FCC00080B50CD03196C150B1F705C0C13511F4E3
:10FCD00088E01FD025D081EB01D0A7CF9091C00044
:10FCD00088E01FD025D081EB01D0A8CF9091C00043
:10FCE00095FFFCCF8093C6000895002CCC2C80910A
:10FCF000C00087FFFCCF84FD16C0A8958091C60088
:10FD0000112C0895F2DFE82FF0DFF82FEEDF8BBF24
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
:020000021000EC
:10FE000011248FEF90E19EBF8DBF24B614BE80E019
:10FE100080D021FE3DC18EE07CD0E0ECF0E0B5E08A
:10FE2000B483B8E1B183B6E0B2835FD0C82F823526
:10FE3000A1F476D01BBEE0E0F0E0CEEFD1E083E0AD
:10FE400097D0A895CF019395FC01892B19F48BB716
:10FE50008F5F8BBF219799F73EC08D7FE9F452D019
:10FE2000B483B8E1B183B6E0B28311E05ED0C82FED
:10FE3000823599F475D0E0E0FEEF1BBF309719F4DE
:10FE40008BB781508BBFFA95A89583E091D03097FE
:10FE5000A9F78BB78111F2CF3EC08D7FE9F452D064
:10FE6000D82FA0E0B1E041D08D93DA13FCCF58D069
:10FE7000C1110EC0A0E0B1E0F999FECFF2BDE1BD25
:10FE80008D9180BDFA9AF99A3196DA13F5CF23C095
:10FE9000A0E0B1E050D01FC0C33041F433D0C82F30
:10FEA0003FD087911BD0C150E1F715C0C13071F42C
:10FEB00029D0C82F35D0F999FECFF2BDE1BDF89A0F
:10FEC00080B50CD03196C150B1F705C0C13511F4E1
:10FED00088E01FD025D081EB01D0A7CF9091C00042
:10FED00088E01FD025D081EB01D0A8CF9091C00041
:10FEE00095FFFCCF8093C6000895002CCC2C809108
:10FEF000C00087FFFCCF84FD16C0A8958091C60086
:10FF0000112C0895F2DFE82FF0DFF82FEEDF8BBF22
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
:10FC500097D08EE179D087E977D081E875D071C0EF
:10FC6000863509F579D0D82F77D0C82F75D074D0C4
:10FC700081E086D0DC3A11F08FEFF0CFC038E1F7A9
:10FC80001BBEE0E0F0E0CCEFD1E083E09DD0A89592
:10FC9000CF019395FC01892B19F48BB78F5F8BBF34
:10FCA000219799F7E9CF853551F456D0E82F54D0F4
:10FC8000E0E0FCEF81E08BBF309719F48BB7815037
:10FC90008BBFFA95A89583E097D03097A9F78BB7DB
:10FCA0008111F2CFE9CF853551F456D0E82F54D0E9
:10FCB000F82FEE0FFF1F8827881F8BBF40C08436A8
:10FCC00001F549D0182F48D0082FC0E0D1E044D02A
:10FCD00089931C13FCCF81E053D0063471F0A0E06F
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
:020000021000EC
:10FC000011248FEF90E19EBF8DBF24B614BE80E01B
:10FC100080D021FEF5C18EE07CD0E0ECF0E0B3E2D4
:10FC2000B483B8E1B183B6E0B2835FD0C82F823528
:10FC3000A1F476D01BBEE0E0F0E0CCEFD1E083E0B1
:10FC40008ED0A895CF019395FC01892B19F48BB721
:10FC50008F5F8BBF219799F73EC08D7FE9F452D01B
:10FC2000B483B8E1B183B6E0B28311E05ED0C82FEF
:10FC3000823599F475D0E0E0FCEF1BBF309719F4E2
:10FC40008BB781508BBFFA95A89583E088D0309709
:10FC5000A9F78BB78111F2CF3EC08D7FE9F452D066
:10FC6000D82FA0E0B1E041D08D93DA13FCCF58D06B
:10FC7000C1110EC0A0E0B1E0F999FECFF2BDE1BD27
:10FC80008D9180BDFA9AF99A3196DA13F5CF23C097
:10FC9000A0E0B1E050D01FC0C33041F433D0C82F32
:10FCA0003FD087911BD0C150E1F715C0C13071F42E
:10FCB00029D0C82F35D0F999FECFF2BDE1BDF89A11
:10FCC00080B50CD03196C150B1F705C0C13511F4E3
:10FCD00088E01FD025D081EB01D0A7CF9091C00044
:10FCD00088E01FD025D081EB01D0A8CF9091C00043
:10FCE00095FFFCCF8093C6000895002CCC2C80910A
:10FCF000C00087FFFCCF84FD16C0A8958091C60088
:10FD0000112C0895F2DFE82FF0DFF82FEEDF8BBF24
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
:020000021000EC
:10FE000011248FEF90E19EBF8DBF24B614BE80E019
:10FE100080D021FE3DC18EE07CD0E0ECF0E0B3E28A
:10FE2000B483B8E1B183B6E0B2835FD0C82F823526
:10FE3000A1F476D01BBEE0E0F0E0CEEFD1E083E0AD
:10FE400097D0A895CF019395FC01892B19F48BB716
:10FE50008F5F8BBF219799F73EC08D7FE9F452D019
:10FE2000B483B8E1B183B6E0B28311E05ED0C82FED
:10FE3000823599F475D0E0E0FEEF1BBF309719F4DE
:10FE40008BB781508BBFFA95A89583E091D03097FE
:10FE5000A9F78BB78111F2CF3EC08D7FE9F452D064
:10FE6000D82FA0E0B1E041D08D93DA13FCCF58D069
:10FE7000C1110EC0A0E0B1E0F999FECFF2BDE1BD25
:10FE80008D9180BDFA9AF99A3196DA13F5CF23C095
:10FE9000A0E0B1E050D01FC0C33041F433D0C82F30
:10FEA0003FD087911BD0C150E1F715C0C13071F42C
:10FEB00029D0C82F35D0F999FECFF2BDE1BDF89A0F
:10FEC00080B50CD03196C150B1F705C0C13511F4E1
:10FED00088E01FD025D081EB01D0A7CF9091C00042
:10FED00088E01FD025D081EB01D0A8CF9091C00041
:10FEE00095FFFCCF8093C6000895002CCC2C809108
:10FEF000C00087FFFCCF84FD16C0A8958091C60086
:10FF0000112C0895F2DFE82FF0DFF82FEEDF8BBF22
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
:10FC500097D08EE179D087E977D081E875D071C0EF
:10FC6000863509F579D0D82F77D0C82F75D074D0C4
:10FC700081E086D0DC3A11F08FEFF0CFC038E1F7A9
:10FC80001BBEE0E0F0E0CCEFD1E083E09DD0A89592
:10FC9000CF019395FC01892B19F48BB78F5F8BBF34
:10FCA000219799F7E9CF853551F456D0E82F54D0F4
:10FC8000E0E0FCEF81E08BBF309719F48BB7815037
:10FC90008BBFFA95A89583E097D03097A9F78BB7DB
:10FCA0008111F2CFE9CF853551F456D0E82F54D0E9
:10FCB000F82FEE0FFF1F8827881F8BBF40C08436A8
:10FCC00001F549D0182F48D0082FC0E0D1E044D02A
:10FCD00089931C13FCCF81E053D0063471F0A0E06F
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
:020000021000EC
:10FC000011248FEF90E19EBF8DBF24B614BE80E01B
:10FC100080D021FEF5C18EE07CD0E0ECF0E0B2E0D7
:10FC2000B483B8E1B183B6E0B2835FD0C82F823528
:10FC3000A1F476D01BBEE0E0F0E0CCEFD1E083E0B1
:10FC40008ED0A895CF019395FC01892B19F48BB721
:10FC50008F5F8BBF219799F73EC08D7FE9F452D01B
:10FC2000B483B8E1B183B6E0B28311E05ED0C82FEF
:10FC3000823599F475D0E0E0FCEF1BBF309719F4E2
:10FC40008BB781508BBFFA95A89583E088D0309709
:10FC5000A9F78BB78111F2CF3EC08D7FE9F452D066
:10FC6000D82FA0E0B1E041D08D93DA13FCCF58D06B
:10FC7000C1110EC0A0E0B1E0F999FECFF2BDE1BD27
:10FC80008D9180BDFA9AF99A3196DA13F5CF23C097
:10FC9000A0E0B1E050D01FC0C33041F433D0C82F32
:10FCA0003FD087911BD0C150E1F715C0C13071F42E
:10FCB00029D0C82F35D0F999FECFF2BDE1BDF89A11
:10FCC00080B50CD03196C150B1F705C0C13511F4E3
:10FCD00088E01FD025D081EB01D0A7CF9091C00044
:10FCD00088E01FD025D081EB01D0A8CF9091C00043
:10FCE00095FFFCCF8093C6000895002CCC2C80910A
:10FCF000C00087FFFCCF84FD16C0A8958091C60088
:10FD0000112C0895F2DFE82FF0DFF82FEEDF8BBF24
Expand Down
Loading