From fbc869d420ea7f7d75495e8b450884710975bde5 Mon Sep 17 00:00:00 2001 From: Richard Osterloh Date: Wed, 16 Apr 2014 20:19:57 +0100 Subject: [PATCH] Chapter 14 files --- ADCT0ATrigger/ADCT0ATrigger.c | 286 ++ ADCT0ATrigger/ADCT0ATrigger.h | 43 + ADCT0ATrigger/ADCT0ATrigger.uvgui.Valvano | 1299 ++++++++ .../ADCT0ATrigger.uvgui.ValvanoJonathan | 2553 ++++++++++++++++ ADCT0ATrigger/ADCTestmain.c | 67 + {DMATimer_4F120 => ADCT0ATrigger}/ExtDll.iex | 0 {DMATimer_4F120 => ADCT0ATrigger}/PLL.c | 0 ADCT0ATrigger/PLL.h | 166 ++ ADCT0ATrigger/adct0atrigger.__i | 1 + ADCT0ATrigger/adctestmain.__i | 1 + {DMATimer_4F120 => ADCT0ATrigger}/startup.s | 0 {DMATimer_4F120 => DMATimer}/DMATimer.c | 0 {DMATimer_4F120 => DMATimer}/DMATimer.h | 0 .../DMATimer.uvgui.Richard | 0 .../DMATimer.uvgui.Valvano | 0 .../DMATimer.uvgui.ValvanoJonathan | 0 {DMATimer_4F120 => DMATimer}/DMAtestmain.c | 0 DMATimer/ExtDll.iex | 2 + DMATimer/PLL.c | 209 ++ {DMATimer_4F120 => DMATimer}/PLL.h | 0 DMATimer/startup.s | 674 +++++ DMATimer_4F120/DMATimer.axf | Bin 18248 -> 0 bytes DMATimer_4F120/DMATimer.build_log.htm | 25 - DMATimer_4F120/DMATimer.htm | 671 ----- DMATimer_4F120/DMATimer.lnp | 3 - DMATimer_4F120/DMATimer.map | 370 --- DMATimer_4F120/DMATimer.plg | 22 - DMATimer_4F120/DMATimer.tra | 21 - DMATimer_4F120/DMATimer.uvopt | 282 -- DMATimer_4F120/DMATimer.uvproj | 433 --- DMATimer_4F120/DMATimer_DMATimer.dep | 8 - DMATimer_4F120/dmatestmain.crf | Bin 205712 -> 0 bytes DMATimer_4F120/dmatestmain.d | 3 - DMATimer_4F120/dmatimer.crf | Bin 205425 -> 0 bytes DMATimer_4F120/dmatimer.d | 1 - DMATimer_4F120/pll.crf | Bin 862 -> 0 bytes DMATimer_4F120/pll.d | 2 - DMATimer_4F120/pll.o | Bin 7988 -> 0 bytes DMATimer_4F120/startup.d | 1 - DMATimer_4F120/startup.lst | 2514 ---------------- DMATimer_4F120/startup.o | Bin 9472 -> 0 bytes MeasurementOfDistance/ADC.c | 44 + MeasurementOfDistance/ADC.h | 39 + MeasurementOfDistance/Calibration.xls | Bin 0 -> 30208 bytes MeasurementOfDistance/Calibration2.xls | Bin 0 -> 23552 bytes MeasurementOfDistance/ExtDll.iex | 2 + MeasurementOfDistance/Lab14.uvgui.Valvano | 2617 +++++++++++++++++ MeasurementOfDistance/Lab14_PCBartist.sch | Bin 0 -> 67584 bytes MeasurementOfDistance/MeasurementOfDistance.c | 118 + MeasurementOfDistance/Nokia5110.c | 418 +++ MeasurementOfDistance/Nokia5110.h | 126 + .../Schematic Design_ Lab14_PCBartist.pdf | Bin 0 -> 37816 bytes MeasurementOfDistance/TExaS.h | 46 + MeasurementOfDistance/startup.s | 674 +++++ 54 files changed, 9385 insertions(+), 4356 deletions(-) create mode 100644 ADCT0ATrigger/ADCT0ATrigger.c create mode 100644 ADCT0ATrigger/ADCT0ATrigger.h create mode 100644 ADCT0ATrigger/ADCT0ATrigger.uvgui.Valvano create mode 100644 ADCT0ATrigger/ADCT0ATrigger.uvgui.ValvanoJonathan create mode 100644 ADCT0ATrigger/ADCTestmain.c rename {DMATimer_4F120 => ADCT0ATrigger}/ExtDll.iex (100%) rename {DMATimer_4F120 => ADCT0ATrigger}/PLL.c (100%) create mode 100644 ADCT0ATrigger/PLL.h create mode 100644 ADCT0ATrigger/adct0atrigger.__i create mode 100644 ADCT0ATrigger/adctestmain.__i rename {DMATimer_4F120 => ADCT0ATrigger}/startup.s (100%) rename {DMATimer_4F120 => DMATimer}/DMATimer.c (100%) rename {DMATimer_4F120 => DMATimer}/DMATimer.h (100%) rename {DMATimer_4F120 => DMATimer}/DMATimer.uvgui.Richard (100%) rename {DMATimer_4F120 => DMATimer}/DMATimer.uvgui.Valvano (100%) rename {DMATimer_4F120 => DMATimer}/DMATimer.uvgui.ValvanoJonathan (100%) rename {DMATimer_4F120 => DMATimer}/DMAtestmain.c (100%) create mode 100644 DMATimer/ExtDll.iex create mode 100644 DMATimer/PLL.c rename {DMATimer_4F120 => DMATimer}/PLL.h (100%) create mode 100644 DMATimer/startup.s delete mode 100644 DMATimer_4F120/DMATimer.axf delete mode 100644 DMATimer_4F120/DMATimer.build_log.htm delete mode 100644 DMATimer_4F120/DMATimer.htm delete mode 100644 DMATimer_4F120/DMATimer.lnp delete mode 100644 DMATimer_4F120/DMATimer.map delete mode 100644 DMATimer_4F120/DMATimer.plg delete mode 100644 DMATimer_4F120/DMATimer.tra delete mode 100644 DMATimer_4F120/DMATimer.uvopt delete mode 100644 DMATimer_4F120/DMATimer.uvproj delete mode 100644 DMATimer_4F120/DMATimer_DMATimer.dep delete mode 100644 DMATimer_4F120/dmatestmain.crf delete mode 100644 DMATimer_4F120/dmatestmain.d delete mode 100644 DMATimer_4F120/dmatimer.crf delete mode 100644 DMATimer_4F120/dmatimer.d delete mode 100644 DMATimer_4F120/pll.crf delete mode 100644 DMATimer_4F120/pll.d delete mode 100644 DMATimer_4F120/pll.o delete mode 100644 DMATimer_4F120/startup.d delete mode 100644 DMATimer_4F120/startup.lst delete mode 100644 DMATimer_4F120/startup.o create mode 100644 MeasurementOfDistance/ADC.c create mode 100644 MeasurementOfDistance/ADC.h create mode 100644 MeasurementOfDistance/Calibration.xls create mode 100644 MeasurementOfDistance/Calibration2.xls create mode 100644 MeasurementOfDistance/ExtDll.iex create mode 100644 MeasurementOfDistance/Lab14.uvgui.Valvano create mode 100644 MeasurementOfDistance/Lab14_PCBartist.sch create mode 100644 MeasurementOfDistance/MeasurementOfDistance.c create mode 100644 MeasurementOfDistance/Nokia5110.c create mode 100644 MeasurementOfDistance/Nokia5110.h create mode 100644 MeasurementOfDistance/Schematic Design_ Lab14_PCBartist.pdf create mode 100644 MeasurementOfDistance/TExaS.h create mode 100644 MeasurementOfDistance/startup.s diff --git a/ADCT0ATrigger/ADCT0ATrigger.c b/ADCT0ATrigger/ADCT0ATrigger.c new file mode 100644 index 0000000..36f595b --- /dev/null +++ b/ADCT0ATrigger/ADCT0ATrigger.c @@ -0,0 +1,286 @@ +// ADCT0ATrigger.c +// Runs on LM4F120 +// Provide a function that initializes Timer0A to trigger ADC +// SS3 conversions and request an interrupt when the conversion +// is complete. +// Daniel Valvano +// October 25, 2012 + +/* This example accompanies the book + "Embedded Systems: Real Time Interfacing to Arm Cortex M Microcontrollers", + ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2012 + + Copyright 2012 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ + +#define NVIC_EN0_INT17 0x00020000 // Interrupt 17 enable +#define NVIC_EN0_R (*((volatile unsigned long *)0xE000E100)) // IRQ 0 to 31 Set Enable Register +#define NVIC_PRI4_R (*((volatile unsigned long *)0xE000E410)) // IRQ 16 to 19 Priority Register +#define GPIO_PORTB_DIR_R (*((volatile unsigned long *)0x40005400)) +#define GPIO_PORTB_AFSEL_R (*((volatile unsigned long *)0x40005420)) +#define GPIO_PORTB_DEN_R (*((volatile unsigned long *)0x4000551C)) +#define GPIO_PORTB_AMSEL_R (*((volatile unsigned long *)0x40005528)) +#define GPIO_PORTD_DIR_R (*((volatile unsigned long *)0x40007400)) +#define GPIO_PORTD_AFSEL_R (*((volatile unsigned long *)0x40007420)) +#define GPIO_PORTD_DEN_R (*((volatile unsigned long *)0x4000751C)) +#define GPIO_PORTD_AMSEL_R (*((volatile unsigned long *)0x40007528)) +#define GPIO_PORTE_DIR_R (*((volatile unsigned long *)0x40024400)) +#define GPIO_PORTE_AFSEL_R (*((volatile unsigned long *)0x40024420)) +#define GPIO_PORTE_DEN_R (*((volatile unsigned long *)0x4002451C)) +#define GPIO_PORTE_AMSEL_R (*((volatile unsigned long *)0x40024528)) +#define TIMER0_CFG_R (*((volatile unsigned long *)0x40030000)) +#define TIMER0_TAMR_R (*((volatile unsigned long *)0x40030004)) +#define TIMER0_CTL_R (*((volatile unsigned long *)0x4003000C)) +#define TIMER0_IMR_R (*((volatile unsigned long *)0x40030018)) +#define TIMER0_TAILR_R (*((volatile unsigned long *)0x40030028)) +#define TIMER0_TAPR_R (*((volatile unsigned long *)0x40030038)) +#define TIMER_CFG_16_BIT 0x00000004 // 16-bit timer configuration, + // function is controlled by bits + // 1:0 of GPTMTAMR and GPTMTBMR +#define TIMER_TAMR_TACDIR 0x00000010 // GPTM Timer A Count Direction +#define TIMER_TAMR_TAMR_PERIOD 0x00000002 // Periodic Timer mode +#define TIMER_CTL_TAOTE 0x00000020 // GPTM TimerA Output Trigger + // Enable +#define TIMER_CTL_TAEN 0x00000001 // GPTM TimerA Enable +#define TIMER_IMR_TATOIM 0x00000001 // GPTM TimerA Time-Out Interrupt + // Mask +#define TIMER_TAILR_TAILRL_M 0x0000FFFF // GPTM TimerA Interval Load + // Register Low +#define ADC0_ACTSS_R (*((volatile unsigned long *)0x40038000)) +#define ADC0_RIS_R (*((volatile unsigned long *)0x40038004)) +#define ADC0_IM_R (*((volatile unsigned long *)0x40038008)) +#define ADC0_ISC_R (*((volatile unsigned long *)0x4003800C)) +#define ADC0_EMUX_R (*((volatile unsigned long *)0x40038014)) +#define ADC0_SSPRI_R (*((volatile unsigned long *)0x40038020)) +#define ADC0_PSSI_R (*((volatile unsigned long *)0x40038028)) +#define ADC0_SSMUX3_R (*((volatile unsigned long *)0x400380A0)) +#define ADC0_SSCTL3_R (*((volatile unsigned long *)0x400380A4)) +#define ADC0_SSFIFO3_R (*((volatile unsigned long *)0x400380A8)) +#define ADC0_PC_R (*((volatile unsigned long *)0x40038FC4)) +#define ADC_ACTSS_ASEN3 0x00000008 // ADC SS3 Enable +#define ADC_RIS_INR3 0x00000008 // SS3 Raw Interrupt Status +#define ADC_IM_MASK3 0x00000008 // SS3 Interrupt Mask +#define ADC_ISC_IN3 0x00000008 // SS3 Interrupt Status and Clear +#define ADC_EMUX_EM3_M 0x0000F000 // SS3 Trigger Select mask +#define ADC_EMUX_EM3_TIMER 0x00005000 // Timer +#define ADC_SSPRI_SS3_4TH 0x00003000 // fourth priority +#define ADC_SSPRI_SS2_3RD 0x00000200 // third priority +#define ADC_SSPRI_SS1_2ND 0x00000010 // second priority +#define ADC_SSPRI_SS0_1ST 0x00000000 // first priority +#define ADC_PSSI_SS3 0x00000008 // SS3 Initiate +#define ADC_SSMUX3_MUX0_M 0x00000003 // 1st Sample Input Select mask +#define ADC_SSMUX3_MUX0_S 0 // 1st Sample Input Select lshift +#define ADC_SSCTL3_TS0 0x00000008 // 1st Sample Temp Sensor Select +#define ADC_SSCTL3_IE0 0x00000004 // 1st Sample Interrupt Enable +#define ADC_SSCTL3_END0 0x00000002 // 1st Sample is End of Sequence +#define ADC_SSCTL3_D0 0x00000001 // 1st Sample Diff Input Select +#define ADC_SSFIFO3_DATA_M 0x00000FFF // Conversion Result Data mask +#define ADC_PC_SR_M 0x0000000F // ADC Sample Rate +#define ADC_PC_SR_125K 0x00000001 // 125 ksps +#define SYSCTL_RCGC0_R (*((volatile unsigned long *)0x400FE100)) +#define SYSCTL_RCGC1_R (*((volatile unsigned long *)0x400FE104)) +#define SYSCTL_RCGC0_ADC0 0x00010000 // ADC0 Clock Gating Control +#define SYSCTL_RCGC0_ADCSPD_M 0x00000300 // ADC Sample Speed mask +#define SYSCTL_RCGC1_TIMER0 0x00010000 // timer 0 Clock Gating Control +#define SYSCTL_RCGCGPIO_R (*((volatile unsigned long *)0x400FE608)) +#define SYSCTL_RCGCGPIO_R4 0x00000010 // GPIO Port E Run Mode Clock + // Gating Control +#define SYSCTL_RCGCGPIO_R3 0x00000008 // GPIO Port D Run Mode Clock + // Gating Control +#define SYSCTL_RCGCGPIO_R1 0x00000002 // GPIO Port B Run Mode Clock + // Gating Control + +void DisableInterrupts(void); // Disable interrupts +void EnableInterrupts(void); // Enable interrupts +long StartCritical (void); // previous I bit, disable interrupts +void EndCritical(long sr); // restore I bit to previous value +void WaitForInterrupt(void); // low power mode + +// There are many choices to make when using the ADC, and many +// different combinations of settings will all do basically the +// same thing. For simplicity, this function makes some choices +// for you. When calling this function, be sure that it does +// not conflict with any other software that may be running on +// the microcontroller. Particularly, ADC0 sample sequencer 3 +// is used here because it only takes one sample, and only one +// sample is absolutely needed. Sample sequencer 3 generates a +// raw interrupt when the conversion is complete, and it is then +// promoted to an ADC0 controller interrupt. Hardware Timer0A +// triggers the ADC0 conversion at the programmed interval, and +// software handles the interrupt to process the measurement +// when it is complete. +// +// A simpler approach would be to use software to trigger the +// ADC0 conversion, wait for it to complete, and then process the +// measurement. +// +// This initialization function sets up the ADC according to the +// following parameters. Any parameters not explicitly listed +// below are not modified: +// Timer0A: enabled +// Mode: 16-bit, down counting +// One-shot or periodic: periodic +// Prescale value: programmable using variable 'prescale' [0:255] +// Interval value: programmable using variable 'period' [0:65535] +// Sample time is busPeriod*(prescale+1)*(period+1) +// Max sample rate: <=125,000 samples/second +// Sequencer 0 priority: 1st (highest) +// Sequencer 1 priority: 2nd +// Sequencer 2 priority: 3rd +// Sequencer 3 priority: 4th (lowest) +// SS3 triggering event: Timer0A +// SS3 1st sample source: programmable using variable 'channelNum' [0:11] +// SS3 interrupts: enabled and promoted to controller +void ADC0_InitTimer0ATriggerSeq3(unsigned char channelNum, unsigned char prescale, unsigned short period){ + volatile unsigned long delay; + // **** GPIO pin initialization **** + switch(channelNum){ // 1) activate clock + case 0: + case 1: + case 2: + case 3: + case 8: + case 9: // these are on GPIO_PORTE + SYSCTL_RCGCGPIO_R |= SYSCTL_RCGCGPIO_R4; break; + case 4: + case 5: + case 6: + case 7: // these are on GPIO_PORTD + SYSCTL_RCGCGPIO_R |= SYSCTL_RCGCGPIO_R3; break; + case 10: + case 11: // these are on GPIO_PORTB + SYSCTL_RCGCGPIO_R |= SYSCTL_RCGCGPIO_R1; break; + default: return; // 0 to 11 are valid channels on the LM4F120 + } + delay = SYSCTL_RCGCGPIO_R; // 2) allow time for clock to stabilize + delay = SYSCTL_RCGCGPIO_R; + switch(channelNum){ + case 0: // Ain0 is on PE3 + GPIO_PORTE_DIR_R &= ~0x08; // 3.0) make PE3 input + GPIO_PORTE_AFSEL_R |= 0x08; // 4.0) enable alternate function on PE3 + GPIO_PORTE_DEN_R &= ~0x08; // 5.0) disable digital I/O on PE3 + GPIO_PORTE_AMSEL_R |= 0x08; // 6.0) enable analog functionality on PE3 + break; + case 1: // Ain1 is on PE2 + GPIO_PORTE_DIR_R &= ~0x04; // 3.1) make PE2 input + GPIO_PORTE_AFSEL_R |= 0x04; // 4.1) enable alternate function on PE2 + GPIO_PORTE_DEN_R &= ~0x04; // 5.1) disable digital I/O on PE2 + GPIO_PORTE_AMSEL_R |= 0x04; // 6.1) enable analog functionality on PE2 + break; + case 2: // Ain2 is on PE1 + GPIO_PORTE_DIR_R &= ~0x02; // 3.2) make PE1 input + GPIO_PORTE_AFSEL_R |= 0x02; // 4.2) enable alternate function on PE1 + GPIO_PORTE_DEN_R &= ~0x02; // 5.2) disable digital I/O on PE1 + GPIO_PORTE_AMSEL_R |= 0x02; // 6.2) enable analog functionality on PE1 + break; + case 3: // Ain3 is on PE0 + GPIO_PORTE_DIR_R &= ~0x01; // 3.3) make PE0 input + GPIO_PORTE_AFSEL_R |= 0x01; // 4.3) enable alternate function on PE0 + GPIO_PORTE_DEN_R &= ~0x01; // 5.3) disable digital I/O on PE0 + GPIO_PORTE_AMSEL_R |= 0x01; // 6.3) enable analog functionality on PE0 + break; + case 4: // Ain4 is on PD3 + GPIO_PORTD_DIR_R &= ~0x08; // 3.4) make PD3 input + GPIO_PORTD_AFSEL_R |= 0x08; // 4.4) enable alternate function on PD3 + GPIO_PORTD_DEN_R &= ~0x08; // 5.4) disable digital I/O on PD3 + GPIO_PORTD_AMSEL_R |= 0x08; // 6.4) enable analog functionality on PD3 + break; + case 5: // Ain5 is on PD2 + GPIO_PORTD_DIR_R &= ~0x04; // 3.5) make PD2 input + GPIO_PORTD_AFSEL_R |= 0x04; // 4.5) enable alternate function on PD2 + GPIO_PORTD_DEN_R &= ~0x04; // 5.5) disable digital I/O on PD2 + GPIO_PORTD_AMSEL_R |= 0x04; // 6.5) enable analog functionality on PD2 + break; + case 6: // Ain6 is on PD1 + GPIO_PORTD_DIR_R &= ~0x02; // 3.6) make PD1 input + GPIO_PORTD_AFSEL_R |= 0x02; // 4.6) enable alternate function on PD1 + GPIO_PORTD_DEN_R &= ~0x02; // 5.6) disable digital I/O on PD1 + GPIO_PORTD_AMSEL_R |= 0x02; // 6.6) enable analog functionality on PD1 + break; + case 7: // Ain7 is on PD0 + GPIO_PORTD_DIR_R &= ~0x01; // 3.7) make PD0 input + GPIO_PORTD_AFSEL_R |= 0x01; // 4.7) enable alternate function on PD0 + GPIO_PORTD_DEN_R &= ~0x01; // 5.7) disable digital I/O on PD0 + GPIO_PORTD_AMSEL_R |= 0x01; // 6.7) enable analog functionality on PD0 + break; + case 8: // Ain8 is on PE5 + GPIO_PORTE_DIR_R &= ~0x20; // 3.8) make PE5 input + GPIO_PORTE_AFSEL_R |= 0x20; // 4.8) enable alternate function on PE5 + GPIO_PORTE_DEN_R &= ~0x20; // 5.8) disable digital I/O on PE5 + GPIO_PORTE_AMSEL_R |= 0x20; // 6.8) enable analog functionality on PE5 + break; + case 9: // Ain9 is on PE4 + GPIO_PORTE_DIR_R &= ~0x10; // 3.9) make PE4 input + GPIO_PORTE_AFSEL_R |= 0x10; // 4.9) enable alternate function on PE4 + GPIO_PORTE_DEN_R &= ~0x10; // 5.9) disable digital I/O on PE4 + GPIO_PORTE_AMSEL_R |= 0x10; // 6.9) enable analog functionality on PE4 + break; + case 10: // Ain10 is on PB4 + GPIO_PORTB_DIR_R &= ~0x10; // 3.10) make PB4 input + GPIO_PORTB_AFSEL_R |= 0x10; // 4.10) enable alternate function on PB4 + GPIO_PORTB_DEN_R &= ~0x10; // 5.10) disable digital I/O on PB4 + GPIO_PORTB_AMSEL_R |= 0x10; // 6.10) enable analog functionality on PB4 + break; + case 11: // Ain11 is on PB5 + GPIO_PORTB_DIR_R &= ~0x20; // 3.11) make PB5 input + GPIO_PORTB_AFSEL_R |= 0x20; // 4.11) enable alternate function on PB5 + GPIO_PORTB_DEN_R &= ~0x20; // 5.11) disable digital I/O on PB5 + GPIO_PORTB_AMSEL_R |= 0x20; // 6.11) enable analog functionality on PB5 + break; + } + DisableInterrupts(); + // **** general initialization **** + SYSCTL_RCGC0_R |= SYSCTL_RCGC0_ADC0; // activate ADC0 (legacy code) + SYSCTL_RCGC1_R |= SYSCTL_RCGC1_TIMER0; // activate timer0 (legacy code) + delay = SYSCTL_RCGC1_R; // allow time to finish activating + TIMER0_CTL_R &= ~TIMER_CTL_TAEN; // disable timer0A during setup + TIMER0_CTL_R |= TIMER_CTL_TAOTE; // enable timer0A trigger to ADC + TIMER0_CFG_R = TIMER_CFG_16_BIT; // configure for 16-bit timer mode + // **** timer0A initialization **** + TIMER0_TAMR_R = TIMER_TAMR_TAMR_PERIOD; // configure for periodic mode, default down-count settings + TIMER0_TAPR_R = prescale; // prescale value for trigger + TIMER0_TAILR_R = period; // start value for trigger + TIMER0_IMR_R &= ~TIMER_IMR_TATOIM; // disable timeout (rollover) interrupt + TIMER0_CTL_R |= TIMER_CTL_TAEN; // enable timer0A 16-b, periodic, no interrupts + // **** ADC initialization **** + ADC0_PC_R &= ~ADC_PC_SR_M; // clear max sample rate field + ADC0_PC_R |= ADC_PC_SR_125K; // configure for 125K samples/sec + // sequencer 0 is highest priority + // sequencer 1 is second-highest priority + // sequencer 2 is third-highest priority + // sequencer 3 is lowest priority + ADC0_SSPRI_R = (ADC_SSPRI_SS0_1ST|ADC_SSPRI_SS1_2ND|ADC_SSPRI_SS2_3RD|ADC_SSPRI_SS3_4TH); + ADC0_ACTSS_R &= ~ADC_ACTSS_ASEN3; // disable sample sequencer 3 + ADC0_EMUX_R &= ~ADC_EMUX_EM3_M; // clear SS3 trigger select field + ADC0_EMUX_R += ADC_EMUX_EM3_TIMER; // configure for timer trigger event + ADC0_SSMUX3_R &= ~ADC_SSMUX3_MUX0_M; // clear SS3 1st sample input select field + // configure for 'channelNum' as first sample input + ADC0_SSMUX3_R += (channelNum< + + + -3.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 148 + + + 346 + Code Coverage + 1061 160 + + + 204 + Performance Analyzer + 1221 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 + + + + + + 1 + 1 + 0 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 148 + 21 + 1556 + 1020 + + + + 0 + + 286 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000051443A5C4D792044726F70626F785C41726D426F6F6B5C4C61756E63685061645C4C61756E6368506164776172655C414443543041547269676765725F34463132305C414443543041547269676765722E63000000000F414443543041547269676765722E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000002E010000F600000010060000E5030000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 150100004B0000007807000018010000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000650000000E01000021030000 + + + 16 + 0400000017000000150100004B030000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000650000000E01000021030000 + + + 16 + 0400000017000000150100004B030000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000002103000078070000EE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002403000075070000BE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002403000075070000BE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000002103000078070000D7030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + EB0500006500000075070000F6000000 + + + 16 + 040000001700000094010000A7010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1501000062000000E405000018010000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000002403000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002403000075070000BE030000 + + + 16 + 040000001700000094010000A7010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002403000075070000BE030000 + + + 16 + 040000001700000094010000A7010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002403000075070000BE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002403000075070000BE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002403000075070000BE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002403000075070000BE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000650000000E01000021030000 + + + 16 + 0400000017000000150100004B030000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000650000000E01000021030000 + + + 16 + 0400000017000000150100004B030000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000003803000078070000EE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000000A03000078070000EE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000003B03000075070000D5030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 15010000620000007807000018010000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1801000065000000E1050000FF000000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E80500004B000000780700001D030000 + + + 16 + 040000001700000094010000A7010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E80500004B000000780700001D030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1801000065000000E1050000FF000000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1801000065000000E1050000FF000000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1801000065000000E1050000FF000000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + EB0500006500000075070000D5030000 + + + 16 + 040000001700000094010000A7010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E80500006200000078070000EE030000 + + + 16 + 040000001700000094010000A7010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000650000000E010000D5030000 + + + 16 + 0400000017000000150100004B030000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000003803000078070000EE030000 + + + 16 + 0400000017000000C0030000E4000000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 00000000000000007D0300001A000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000003A030000F70500004D030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 1 + + 16 + 000000001A0000008001000034000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 2 + + 16 + 0000000034000000470200004E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2604 + 000000000D000000000000000020000000000000FFFFFFFFFFFFFFFF1501000018010000780700001C010000000000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000000400000017000000C0030000E4000000150100004B00000078070000180100000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFE40500004B000000E8050000EE03000000000000020000100400000001000000000000000000000000000000000000000000000001000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000040000001700000094010000A7010000E80500004B00000078070000EE0300000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000001000000000000000000000001000000FFFFFFFF00000000C400000090010000C80000000000000001000000040000000000000000000000000000000000000001000000CA090000CB09000002000000000000000000000002000000FFFFFFFFE8050000B701000078070000BB01000000000000010000000400000000000000000000000000000000000000000000000000000003000000FFFFFFFFE2050000CA090000CB09000001000000CB09000001000000CA09000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF110100004B000000150100003A030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000400000017000000150100004B030000000000004B000000110100003A0300000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000006030000780700000A03000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0B0000008F070000930700009407000095070000960700009007000091070000B9050000BA050000BB050000BC05000001800040000000000000040000001700000094010000A7010000000000000A03000078070000EE03000000000000404100460B0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000003000000000000000000000003000000FFFFFFFFBC0300000A030000C0030000EE03000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000001D0300007807000021030000000000000100001004000000010000000000000000000000FFFFFFFF03000000C5000000C700000077940000018000800000000000000400000017000000C0030000E4000000000000002103000078070000EE0300000000000040820046030000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2248 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000007745F64656C61799600000000000000140006627566666572023932084E5649435F454E320E4E5649435F454E325F494E54393205706F7274660543484D4150095243474354494D45520674696D6572350E55444D415F5052494F434C525F5203646D610575617274310679656C6C6F770763757272656E740373745F037067370F675F6C436C61737344566F6C756D65036E756D0D414443305F53534D5558305F5205706F72746707745F64656C61790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 583 + 00200000010000000D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000004001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000D41444354304154726967676572960000000000000001000D41444354304154726967676572000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A0000000004002400000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 + + + 478 + 0D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 478 + 0D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A00000000000009000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1920 + 1080 + + + + + + + + 1 + 0 + + 100 + 0 + + .\ADCT0ATrigger.c + 33 + 244 + 11 + 1 + + + + + +
diff --git a/ADCT0ATrigger/ADCT0ATrigger.uvgui.ValvanoJonathan b/ADCT0ATrigger/ADCT0ATrigger.uvgui.ValvanoJonathan new file mode 100644 index 0000000..fdb25c1 --- /dev/null +++ b/ADCT0ATrigger/ADCT0ATrigger.uvgui.ValvanoJonathan @@ -0,0 +1,2553 @@ + + + + -3.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 78 + + + 346 + Code Coverage + 1047 160 + + + 204 + Performance Analyzer + 1207 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 + + + + + + 0 + 0 + 0 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 140 + 146 + 1586 + 900 + + + + 0 + + 782 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000006000000050000000100000048433A5C44726F70626F785C41726D426F6F6B5C4C61756E63685061645C4C61756E6368506164776172655C414443543041547269676765725F34463132305C737461727475702E730000000009737461727475702E7300000000C5D4F200FFFFFFFF4E433A5C44726F70626F785C41726D426F6F6B5C4C61756E63685061645C4C61756E6368506164776172655C414443543041547269676765725F34463132305C414443543041547269676765722E63000000000F414443543041547269676765722E6300000000FFDC7800FFFFFFFF4E433A5C44726F70626F785C41726D426F6F6B5C4C61756E63685061645C4C61756E6368506164776172655C414443543041547269676765725F34463132305C414443543041547269676765722E68000000000F414443543041547269676765722E6800000000BECEA100FFFFFFFF4C433A5C44726F70626F785C41726D426F6F6B5C4C61756E63685061645C4C61756E6368506164776172655C414443543041547269676765725F34463132305C414443546573746D61696E2E63000000000D414443546573746D61696E2E6300000000F0A0A100FFFFFFFF44433A5C44726F70626F785C41726D426F6F6B5C4C61756E63685061645C4C61756E6368506164776172655C414443543041547269676765725F34463132305C504C4C2E630000000005504C4C2E6300000000BCA8E100FFFFFFFF44433A5C44726F70626F785C41726D426F6F6B5C4C61756E63685061645C4C61756E6368506164776172655C414443543041547269676765725F34463132305C504C4C2E680000000005504C4C2E68000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000CF000000650000008007000063030000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + CF0000004F00000090050000E5000000 + + + 16 + 060900001C010000C70D0000B2010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 1 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000034030000 + + + 16 + 1E080000B4000000E90800000E030000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000034030000 + + + 16 + 1E080000B4000000E90800000E030000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 1938 + 1938 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + CCF7FFFF4AFFFFFF56FDFFFFB0FFFFFF + + + 16 + 37080000CD000000FF0A000063010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004A0200008D050000C4020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000034030000 + + + 16 + 1E080000B4000000E90800000E030000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000034030000 + + + 16 + 1E080000B4000000E90800000E030000 + + + + 197 + 197 + 1 + 0 + 0 + 1 + 32767 + 0 + 32768 + 0 + + 16 + 000000006503000080070000E7030000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000003302000090050000DD020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000680300007D070000CE030000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000400004F0000009005000043020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000400004F0000009005000043020000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + 1E080000B4000000AE09000044020000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000034030000 + + + 16 + 1E080000B4000000E90800000E030000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000680300007D070000CE030000 + + + 16 + 1E080000B4000000E60A00004A010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E703000080070000FA030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 391 + 0 + 8192 + 1 + + 16 + 000000001C0000009201000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2895 + 000000000F000000000000000020000000000000FFFFFFFFFFFFFFFFCF000000E500000090050000E9000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000060900001C010000C70D0000B2010000CF0000004F00000090050000E50000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFFC0300004F00000000040000DD02000000000000020000000400000001000000000000000000000000000000000000000000000001000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000370C00001C010000C70D0000AA030000000400004F00000090050000DD0200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000001000000000000000000000001000000FFFFFFFF00000000C400000090010000C80000000000000001000000040000000000000000000000000000000000000001000000CA090000CB09000002000000000000000000000002000000FFFFFFFF000400004A010000900500004E01000000000000010000000400000000000000000000000000000000000000000000000000000003000000FFFFFFFFE2050000CA090000CB09000001000000CB09000001000000CA09000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFCB0000004F000000CF0000004D030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000370800001C010000020900001A040000000000004F000000CB0000004D0300000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000002F020000900500003302000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0B0000008F070000930700009407000095070000960700009007000091070000B9050000BA050000BB050000BC050000018000800000000000003708000000030000C70D0000AA030000000000003302000090050000DD02000000000000404100460B0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000003000000000000000000000003000000FFFFFFFFC802000033020000CC020000DD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000004D0300008007000051030000010000000100001004000000010000000000000000000000FFFFFFFF03000000C5000000C70000007794000001800080000001000000370800001E040000B70F0000B4040000000000005103000080070000E70300000000000040820056030000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000080000000000000FFFFFFFFFFFFFFFF000000002F02000090050000330200000000000001000010040000000100000000000000000000000000000000000000000000000100000000000000FFFFFFFF0100000092070000018000400000000000009F0100003501000060060000CB010000C9F7FFFF33FFFFFF01000000340200000000000040410046010000001452756E2054696D6520456E7669726F6E6D656E74000000009207000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000003000000000000000000000003000000FFFFFFFFC802000033020000CC020000DD02000000000000020000000400000000000000000000000000000000000000000000000000000001000000FFFFFFFF9207000001000000FFFFFFFF92070000000000000000000000000000 + + + 59392 + File + + 2023 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000086C6175636870616496000000000000000100086C6175636870616400000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 583 + 00200000010000000D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000004001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000D41444354304154726967676572960000000000000001000D41444354304154726967676572000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A0000000004002400000000000000000000000000000000010000000100000000000000054275696C6487010000 + + + 478 + 0D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 478 + 0D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A00000000000009000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1920 + 1080 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + CF0000004F00000080070000E5000000 + + + 16 + CF0000006500000090050000FB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000020030000 + + + 16 + EC07000082000000B7080000DC020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000016020000 + + + 16 + EC07000082000000B7080000DC020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000540300007D070000CE030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + EC07000082000000B40A000018010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + C7030000540300007D070000CE030000 + + + 16 + EC070000820000007C09000012020000 + + + + 1936 + 1936 + 0 + 0 + 0 + 1 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC070000820000007C09000012020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC070000820000007C09000012020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C70300005403000085060000CE030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000016020000 + + + 16 + EC07000082000000B7080000DC020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000016020000 + + + 16 + EC07000082000000B7080000DC020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000005E0200008D050000C4020000 + + + 16 + EC07000082000000B40A000018010000 + + + + 198 + 198 + 1 + 0 + 0 + 1 + 32767 + 0 + 32768 + 0 + + 16 + 000000003D030000C0030000E7030000 + + + 16 + EC07000082000000B40A000018010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000005E0200008D050000C4020000 + + + 16 + EC07000082000000B40A000018010000 + + + + 203 + 203 + 1 + 0 + 0 + 1 + 32767 + 0 + 8192 + 0 + + 16 + CF0000006300000080070000E5000000 + + + 16 + EC07000082000000B40A000018010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + EC07000082000000B40A000018010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000400004F0000009005000043020000 + + + 16 + EC070000820000007C09000012020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000400004F0000009005000043020000 + + + 16 + EC07000082000000B40A000018010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + EC07000082000000B40A000018010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + EC07000082000000B40A000018010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + D2000000660000008D050000CC000000 + + + 16 + EC07000082000000B40A000018010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03040000660000008D050000C4020000 + + + 16 + EC070000820000007C09000012020000 + + + + 38003 + 38003 + 1 + 0 + 0 + 1 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000C800000020030000 + + + 16 + EC07000082000000B7080000DC020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000005E0200008D050000C4020000 + + + 16 + EC07000082000000B40A000018010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E703000080070000FA030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 391 + 0 + 8192 + 1 + + 16 + 000000001C0000009201000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2603 + 000000000D000000000000000020000001000000FFFFFFFFFFFFFFFFCF000000E500000080070000E9000000010000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000CF0000006500000090050000FB000000CF0000004F00000080070000E50000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFFC0300004F00000000040000DD02000000000000020000000400000001000000000000000000000000000000000000000000000001000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000000400006500000090050000F3020000000400004F00000090050000DD0200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000001000000000000000000000001000000FFFFFFFF00000000C400000090010000C80000000000000001000000040000000000000000000000000000000000000001000000CA090000CB09000002000000000000000000000002000000FFFFFFFF000400004A010000900500004E01000000000000010000000400000000000000000000000000000000000000000000000000000003000000FFFFFFFFE2050000CA090000CB09000001000000CB09000001000000CA09000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFCB0000004F000000CF00000039030000010000000200000004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000065000000CB00000045020000000000004F000000CB000000390300000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000039030000800700003D03000001000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0B0000008F070000930700009407000095070000960700009007000091070000B9050000BA050000BB050000BC05000001800080000001000000CC0200004902000090050000F3020000C40300003D03000080070000E703000000000000404100560B0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF000000000000000003000000000000000100000003000000FFFFFFFFC00300003D030000C4030000E703000001000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000430200009005000047020000000000000100000004000000010000000000000000000000FFFFFFFF03000000C5000000C70000007794000001800080000000000000000000005D02000090050000F3020000000000004702000090050000DD0200000000000040820046030000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000000000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000000180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000000000001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 552 + 00200000000000000D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A0000000000002400000000000000000000000000000000010000000100000000000000054275696C6487010000 + + + 478 + 0D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 478 + 0D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A00000000000009000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1920 + 1080 + + + + + + + C:\Dropbox\ArmBook\LaunchPad\LaunchPadware\ADCT0ATrigger_4F120\PLL.h + 0 + 1 + 1 + + + C:\Dropbox\ArmBook\LaunchPad\LaunchPadware\ADCT0ATrigger_4F120\ADCT0ATrigger.h + 0 + 1 + 1 + + + + + 1 + 0 + + 100 + 5 + + .\startup.s + 0 + 1 + 1 + 1 + + + + .\ADCT0ATrigger.c + 0 + 1 + 1 + 1 + + + + ADCT0ATrigger.h + 0 + 1 + 1 + 1 + + + + .\ADCTestmain.c + 0 + 1 + 1 + 1 + + + + .\PLL.c + 0 + 1 + 1 + 1 + + + + PLL.h + 0 + 1 + 1 + 1 + + + + + +
diff --git a/ADCT0ATrigger/ADCTestmain.c b/ADCT0ATrigger/ADCTestmain.c new file mode 100644 index 0000000..6ce0cb7 --- /dev/null +++ b/ADCT0ATrigger/ADCTestmain.c @@ -0,0 +1,67 @@ +// ADCTestmain.c +// Runs on LM4F120 +// Provide a function that initializes Timer0A to trigger ADC +// SS3 conversions and request an interrupt when the conversion +// is complete. +// Daniel Valvano +// October 25, 2012 + +/* This example accompanies the book + "Embedded Systems: Real Time Interfacing to Arm Cortex M Microcontrollers", + ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2012 + + Copyright 2012 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ + +// center of X-ohm potentiometer connected to PE3/AIN0 +// bottom of X-ohm potentiometer connected to ground +// top of X-ohm potentiometer connected to +3.3V through X/10-ohm ohm resistor + +#include "ADCT0ATrigger.h" +#include "PLL.h" + +void DisableInterrupts(void); // Disable interrupts +void EnableInterrupts(void); // Enable interrupts +long StartCritical (void); // previous I bit, disable interrupts +void EndCritical(long sr); // restore I bit to previous value +void WaitForInterrupt(void); // low power mode + +//debug code +// +// This program periodically samples ADC0 channel 0 and stores the +// result to a global variable that can be accessed with the JTAG +// debugger and viewed with the variable watch feature. +#define GPIO_PORTF_DATA_R (*((volatile unsigned long *)0x400253FC)) +#define GPIO_PORTF_DIR_R (*((volatile unsigned long *)0x40025400)) +#define GPIO_PORTF_AFSEL_R (*((volatile unsigned long *)0x40025420)) +#define GPIO_PORTF_DEN_R (*((volatile unsigned long *)0x4002551C)) +#define GPIO_PORTF_AMSEL_R (*((volatile unsigned long *)0x40025528)) +#define GPIO_PORTF_PCTL_R (*((volatile unsigned long *)0x4002552C)) +#define SYSCTL_RCGC2_R (*((volatile unsigned long *)0x400FE108)) +#define SYSCTL_RCGC2_GPIOF 0x00000020 // port F Clock Gating Control + +int main(void){ + PLL_Init(); // 50 MHz system clock + SYSCTL_RCGC2_R |= SYSCTL_RCGC2_GPIOF; // activate port F + ADC0_InitTimer0ATriggerSeq3(0, 76, 64934);// ADC channel 0, 10 Hz sampling + GPIO_PORTF_DIR_R |= 0x04; // make PF2 out (built-in LED) + GPIO_PORTF_AFSEL_R &= ~0x04; // disable alt funct on PF2 + GPIO_PORTF_DEN_R |= 0x04; // enable digital I/O on PF2 + // configure PF2 as GPIO + GPIO_PORTF_PCTL_R = (GPIO_PORTF_PCTL_R&0xFFFFF0FF)+0x00000000; + GPIO_PORTF_AMSEL_R = 0; // disable analog functionality on PF + GPIO_PORTF_DATA_R &= ~0x04; // turn off LED + while(1){ + WaitForInterrupt(); + GPIO_PORTF_DATA_R ^= 0x04; // toggle LED + } +} diff --git a/DMATimer_4F120/ExtDll.iex b/ADCT0ATrigger/ExtDll.iex similarity index 100% rename from DMATimer_4F120/ExtDll.iex rename to ADCT0ATrigger/ExtDll.iex diff --git a/DMATimer_4F120/PLL.c b/ADCT0ATrigger/PLL.c similarity index 100% rename from DMATimer_4F120/PLL.c rename to ADCT0ATrigger/PLL.c diff --git a/ADCT0ATrigger/PLL.h b/ADCT0ATrigger/PLL.h new file mode 100644 index 0000000..cbd14ff --- /dev/null +++ b/ADCT0ATrigger/PLL.h @@ -0,0 +1,166 @@ +// PLL.h +// Runs on LM4F120 +// A software function to change the bus frequency using the PLL. +// Daniel Valvano +// October 4, 2012 + +/* This example accompanies the book + "Embedded Systems: Real Time Interfacing to Arm Cortex M Microcontrollers", + ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2012 + Program 2.10, Figure 2.37 + + Copyright 2012 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ + +// The two #define statements SYSDIV and LSB 0 +// initialize the PLL to the desired frequency. +#define SYSDIV 3 +#define LSB 1 +// bus frequency is 400MHz/(2*SYSDIV+1+LSB) = 400MHz/(2*3+1+1) = 50 MHz + + +// configure the system to get its clock from the PLL +void PLL_Init(void); + + +/* +SYSDIV LSB Divisor Clock (MHz) + 0 0 1 reserved + 0 1 2 reserved + 1 0 3 reserved + 1 1 4 reserved + 2 0 5 80.000 + 2 1 6 66.667 + 3 0 7 reserved + 3 1 8 50.000 + 4 0 9 44.444 + 4 1 10 40.000 + 5 0 11 36.364 + 5 1 12 33.333 + 6 0 13 30.769 + 6 1 14 28.571 + 7 0 15 26.667 + 7 1 16 25.000 + 8 0 17 23.529 + 8 1 18 22.222 + 9 0 19 21.053 + 9 1 20 20.000 +10 0 21 19.048 +10 1 22 18.182 +11 0 23 17.391 +11 1 24 16.667 +12 0 25 16.000 +12 1 26 15.385 +13 0 27 14.815 +13 1 28 14.286 +14 0 29 13.793 +14 1 30 13.333 +15 0 31 12.903 +15 1 32 12.500 +16 0 33 12.121 +16 1 34 11.765 +17 0 35 11.429 +17 1 36 11.111 +18 0 37 10.811 +18 1 38 10.526 +19 0 39 10.256 +19 1 40 10.000 +20 0 41 9.756 +20 1 42 9.524 +21 0 43 9.302 +21 1 44 9.091 +22 0 45 8.889 +22 1 46 8.696 +23 0 47 8.511 +23 1 48 8.333 +24 0 49 8.163 +24 1 50 8.000 +25 0 51 7.843 +25 1 52 7.692 +26 0 53 7.547 +26 1 54 7.407 +27 0 55 7.273 +27 1 56 7.143 +28 0 57 7.018 +28 1 58 6.897 +29 0 59 6.780 +29 1 60 6.667 +30 0 61 6.557 +30 1 62 6.452 +31 0 63 6.349 +31 1 64 6.250 +32 0 65 6.154 +32 1 66 6.061 +33 0 67 5.970 +33 1 68 5.882 +34 0 69 5.797 +34 1 70 5.714 +35 0 71 5.634 +35 1 72 5.556 +36 0 73 5.479 +36 1 74 5.405 +37 0 75 5.333 +37 1 76 5.263 +38 0 77 5.195 +38 1 78 5.128 +39 0 79 5.063 +39 1 80 5.000 +40 0 81 4.938 +40 1 82 4.878 +41 0 83 4.819 +41 1 84 4.762 +42 0 85 4.706 +42 1 86 4.651 +43 0 87 4.598 +43 1 88 4.545 +44 0 89 4.494 +44 1 90 4.444 +45 0 91 4.396 +45 1 92 4.348 +46 0 93 4.301 +46 1 94 4.255 +47 0 95 4.211 +47 1 96 4.167 +48 0 97 4.124 +48 1 98 4.082 +49 0 99 4.040 +49 1 100 4.000 +50 0 101 3.960 +50 1 102 3.922 +51 0 103 3.883 +51 1 104 3.846 +52 0 105 3.810 +52 1 106 3.774 +53 0 107 3.738 +53 1 108 3.704 +54 0 109 3.670 +54 1 110 3.636 +55 0 111 3.604 +55 1 112 3.571 +56 0 113 3.540 +56 1 114 3.509 +57 0 115 3.478 +57 1 116 3.448 +58 0 117 3.419 +58 1 118 3.390 +59 0 119 3.361 +59 1 120 3.333 +60 0 121 3.306 +60 1 122 3.279 +61 0 123 3.252 +61 1 124 3.226 +62 0 125 3.200 +62 1 126 3.175 +63 0 127 3.150 +63 1 128 3.125 + +*/ diff --git a/ADCT0ATrigger/adct0atrigger.__i b/ADCT0ATrigger/adct0atrigger.__i new file mode 100644 index 0000000..12db5be --- /dev/null +++ b/ADCT0ATrigger/adct0atrigger.__i @@ -0,0 +1 @@ +-c --cpu Cortex-M4.fp -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I.. -I..\..\.. -I C:\Keil\ARM\RV31\Inc -I C:\Keil\ARM\CMSIS\Include -I C:\Keil\ARM\Inc\Luminary -Drvmdk -DPART_LM4F120H5QR -o "adct0atrigger.o" --omf_browse "adct0atrigger.crf" --depend "adct0atrigger.d" "ADCT0ATrigger.c" \ No newline at end of file diff --git a/ADCT0ATrigger/adctestmain.__i b/ADCT0ATrigger/adctestmain.__i new file mode 100644 index 0000000..0d43518 --- /dev/null +++ b/ADCT0ATrigger/adctestmain.__i @@ -0,0 +1 @@ +-c --cpu Cortex-M4.fp -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I.. -I..\..\.. -I C:\Keil\ARM\RV31\Inc -I C:\Keil\ARM\CMSIS\Include -I C:\Keil\ARM\Inc\Luminary -Drvmdk -DPART_LM4F120H5QR -o "adctestmain.o" --omf_browse "adctestmain.crf" --depend "adctestmain.d" "ADCTestmain.c" \ No newline at end of file diff --git a/DMATimer_4F120/startup.s b/ADCT0ATrigger/startup.s similarity index 100% rename from DMATimer_4F120/startup.s rename to ADCT0ATrigger/startup.s diff --git a/DMATimer_4F120/DMATimer.c b/DMATimer/DMATimer.c similarity index 100% rename from DMATimer_4F120/DMATimer.c rename to DMATimer/DMATimer.c diff --git a/DMATimer_4F120/DMATimer.h b/DMATimer/DMATimer.h similarity index 100% rename from DMATimer_4F120/DMATimer.h rename to DMATimer/DMATimer.h diff --git a/DMATimer_4F120/DMATimer.uvgui.Richard b/DMATimer/DMATimer.uvgui.Richard similarity index 100% rename from DMATimer_4F120/DMATimer.uvgui.Richard rename to DMATimer/DMATimer.uvgui.Richard diff --git a/DMATimer_4F120/DMATimer.uvgui.Valvano b/DMATimer/DMATimer.uvgui.Valvano similarity index 100% rename from DMATimer_4F120/DMATimer.uvgui.Valvano rename to DMATimer/DMATimer.uvgui.Valvano diff --git a/DMATimer_4F120/DMATimer.uvgui.ValvanoJonathan b/DMATimer/DMATimer.uvgui.ValvanoJonathan similarity index 100% rename from DMATimer_4F120/DMATimer.uvgui.ValvanoJonathan rename to DMATimer/DMATimer.uvgui.ValvanoJonathan diff --git a/DMATimer_4F120/DMAtestmain.c b/DMATimer/DMAtestmain.c similarity index 100% rename from DMATimer_4F120/DMAtestmain.c rename to DMATimer/DMAtestmain.c diff --git a/DMATimer/ExtDll.iex b/DMATimer/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/DMATimer/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/DMATimer/PLL.c b/DMATimer/PLL.c new file mode 100644 index 0000000..53d2c57 --- /dev/null +++ b/DMATimer/PLL.c @@ -0,0 +1,209 @@ +// PLL.c +// Runs on LM4F120 +// A software function to change the bus frequency using the PLL. +// Daniel Valvano +// October 4, 2012 + +/* This example accompanies the book + "Embedded Systems: Real Time Interfacing to Arm Cortex M Microcontrollers", + ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2012 + Program 2.10, Figure 2.37 + + Copyright 2012 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ +#include "PLL.h" + +// The two #define statements SYSDIV and LSB in PLL.h +// initialize the PLL to the desired frequency. + +// bus frequency is 400MHz/(2*SYSDIV+1+LSB) = 400MHz/(2*2+1+0) = 80 MHz +// see the table at the end of this file + +#define SYSCTL_RIS_R (*((volatile unsigned long *)0x400FE050)) +#define SYSCTL_RIS_PLLLRIS 0x00000040 // PLL Lock Raw Interrupt Status +#define SYSCTL_RCC_R (*((volatile unsigned long *)0x400FE060)) +#define SYSCTL_RCC_XTAL_M 0x000003C0 // Crystal Value +#define SYSCTL_RCC_XTAL_6MHZ 0x000002C0 // 6 MHz Crystal +#define SYSCTL_RCC_XTAL_8MHZ 0x00000380 // 8 MHz Crystal +#define SYSCTL_RCC_XTAL_16MHZ 0x00000540 // 16 MHz Crystal +#define SYSCTL_RCC2_R (*((volatile unsigned long *)0x400FE070)) +#define SYSCTL_RCC2_USERCC2 0x80000000 // Use RCC2 +#define SYSCTL_RCC2_DIV400 0x40000000 // Divide PLL as 400 MHz vs. 200 + // MHz +#define SYSCTL_RCC2_SYSDIV2_M 0x1F800000 // System Clock Divisor 2 +#define SYSCTL_RCC2_SYSDIV2LSB 0x00400000 // Additional LSB for SYSDIV2 +#define SYSCTL_RCC2_PWRDN2 0x00002000 // Power-Down PLL 2 +#define SYSCTL_RCC2_BYPASS2 0x00000800 // PLL Bypass 2 +#define SYSCTL_RCC2_OSCSRC2_M 0x00000070 // Oscillator Source 2 +#define SYSCTL_RCC2_OSCSRC2_MO 0x00000000 // MOSC + +// configure the system to get its clock from the PLL +void PLL_Init(void){ + // 1) configure the system to use RCC2 for advanced features + // such as 400 MHz PLL and non-integer System Clock Divisor + SYSCTL_RCC2_R |= SYSCTL_RCC2_USERCC2; + // 2) bypass PLL while initializing + SYSCTL_RCC2_R |= SYSCTL_RCC2_BYPASS2; + // 3) select the crystal value and oscillator source + SYSCTL_RCC_R &= ~SYSCTL_RCC_XTAL_M; // clear XTAL field + SYSCTL_RCC_R += SYSCTL_RCC_XTAL_16MHZ;// configure for 16 MHz crystal + SYSCTL_RCC2_R &= ~SYSCTL_RCC2_OSCSRC2_M;// clear oscillator source field + SYSCTL_RCC2_R += SYSCTL_RCC2_OSCSRC2_MO;// configure for main oscillator source + // 4) activate PLL by clearing PWRDN + SYSCTL_RCC2_R &= ~SYSCTL_RCC2_PWRDN2; + // 5) use 400 MHz PLL + SYSCTL_RCC2_R |= SYSCTL_RCC2_DIV400; + // 6) set the desired system divider and the system divider least significant bit + SYSCTL_RCC2_R &= ~SYSCTL_RCC2_SYSDIV2_M; // clear system clock divider field + SYSCTL_RCC2_R &= ~SYSCTL_RCC2_SYSDIV2LSB; // clear bit SYSDIV2LSB + +// set SYSDIV2 and SYSDIV2LSB fields + SYSCTL_RCC2_R += (SYSDIV<<23)|(LSB<<22); // divide by (2*SYSDIV+1+LSB) + + // 7) wait for the PLL to lock by polling PLLLRIS + while((SYSCTL_RIS_R&SYSCTL_RIS_PLLLRIS)==0){}; + // 8) enable use of PLL by clearing BYPASS + SYSCTL_RCC2_R &= ~SYSCTL_RCC2_BYPASS2; +} + +/* +SYSDIV LSB Divisor Clock (MHz) + 0 0 1 reserved + 0 1 2 reserved + 1 0 3 reserved + 1 1 4 reserved + 2 0 5 80.000 + 2 1 6 66.667 + 3 0 7 reserved + 3 1 8 50.000 + 4 0 9 44.444 + 4 1 10 40.000 + 5 0 11 36.364 + 5 1 12 33.333 + 6 0 13 30.769 + 6 1 14 28.571 + 7 0 15 26.667 + 7 1 16 25.000 + 8 0 17 23.529 + 8 1 18 22.222 + 9 0 19 21.053 + 9 1 20 20.000 +10 0 21 19.048 +10 1 22 18.182 +11 0 23 17.391 +11 1 24 16.667 +12 0 25 16.000 +12 1 26 15.385 +13 0 27 14.815 +13 1 28 14.286 +14 0 29 13.793 +14 1 30 13.333 +15 0 31 12.903 +15 1 32 12.500 +16 0 33 12.121 +16 1 34 11.765 +17 0 35 11.429 +17 1 36 11.111 +18 0 37 10.811 +18 1 38 10.526 +19 0 39 10.256 +19 1 40 10.000 +20 0 41 9.756 +20 1 42 9.524 +21 0 43 9.302 +21 1 44 9.091 +22 0 45 8.889 +22 1 46 8.696 +23 0 47 8.511 +23 1 48 8.333 +24 0 49 8.163 +24 1 50 8.000 +25 0 51 7.843 +25 1 52 7.692 +26 0 53 7.547 +26 1 54 7.407 +27 0 55 7.273 +27 1 56 7.143 +28 0 57 7.018 +28 1 58 6.897 +29 0 59 6.780 +29 1 60 6.667 +30 0 61 6.557 +30 1 62 6.452 +31 0 63 6.349 +31 1 64 6.250 +32 0 65 6.154 +32 1 66 6.061 +33 0 67 5.970 +33 1 68 5.882 +34 0 69 5.797 +34 1 70 5.714 +35 0 71 5.634 +35 1 72 5.556 +36 0 73 5.479 +36 1 74 5.405 +37 0 75 5.333 +37 1 76 5.263 +38 0 77 5.195 +38 1 78 5.128 +39 0 79 5.063 +39 1 80 5.000 +40 0 81 4.938 +40 1 82 4.878 +41 0 83 4.819 +41 1 84 4.762 +42 0 85 4.706 +42 1 86 4.651 +43 0 87 4.598 +43 1 88 4.545 +44 0 89 4.494 +44 1 90 4.444 +45 0 91 4.396 +45 1 92 4.348 +46 0 93 4.301 +46 1 94 4.255 +47 0 95 4.211 +47 1 96 4.167 +48 0 97 4.124 +48 1 98 4.082 +49 0 99 4.040 +49 1 100 4.000 +50 0 101 3.960 +50 1 102 3.922 +51 0 103 3.883 +51 1 104 3.846 +52 0 105 3.810 +52 1 106 3.774 +53 0 107 3.738 +53 1 108 3.704 +54 0 109 3.670 +54 1 110 3.636 +55 0 111 3.604 +55 1 112 3.571 +56 0 113 3.540 +56 1 114 3.509 +57 0 115 3.478 +57 1 116 3.448 +58 0 117 3.419 +58 1 118 3.390 +59 0 119 3.361 +59 1 120 3.333 +60 0 121 3.306 +60 1 122 3.279 +61 0 123 3.252 +61 1 124 3.226 +62 0 125 3.200 +62 1 126 3.175 +63 0 127 3.150 +63 1 128 3.125 + +*/ diff --git a/DMATimer_4F120/PLL.h b/DMATimer/PLL.h similarity index 100% rename from DMATimer_4F120/PLL.h rename to DMATimer/PLL.h diff --git a/DMATimer/startup.s b/DMATimer/startup.s new file mode 100644 index 0000000..7d725e4 --- /dev/null +++ b/DMATimer/startup.s @@ -0,0 +1,674 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2012 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 9453 of the EK-LM4F120XL Firmware Package. +; +;****************************************************************************** +; Edited to conform with ISR names as described in +; "Embedded Systems: Introduction to ARM Cortex M Microcontrollers", +; ISBN: 978-1469998749, Jonathan Valvano, copyright (c) 2012 +; "Embedded Systems: Real Time Interfacing to ARM Cortex M Microcontrollers", +; ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2012 +; "Embedded Systems: Real-Time Operating Systems for ARM Cortex M Microcontrollers", +; ISBN: 978-1466468863, Jonathan Valvano, copyright (c) 2013 +; +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + DCD GPIOPortA_Handler ; GPIO Port A + DCD GPIOPortB_Handler ; GPIO Port B + DCD GPIOPortC_Handler ; GPIO Port C + DCD GPIOPortD_Handler ; GPIO Port D + DCD GPIOPortE_Handler ; GPIO Port E + DCD UART0_Handler ; UART0 Rx and Tx + DCD UART1_Handler ; UART1 Rx and Tx + DCD SSI0_Handler ; SSI0 Rx and Tx + DCD I2C0_Handler ; I2C0 Master and Slave + DCD PWM0Fault_Handler ; PWM 0 Fault + DCD PWM0Generator0_Handler ; PWM 0 Generator 0 + DCD PWM0Generator1_Handler ; PWM 0 Generator 1 + DCD PWM0Generator2_Handler ; PWM 0 Generator 2 + DCD Quadrature0_Handler ; Quadrature Encoder 0 + DCD ADC0Seq0_Handler ; ADC0 Sequence 0 + DCD ADC0Seq1_Handler ; ADC0 Sequence 1 + DCD ADC0Seq2_Handler ; ADC0 Sequence 2 + DCD ADC0Seq3_Handler ; ADC0 Sequence 3 + DCD WDT_Handler ; Watchdog + DCD Timer0A_Handler ; Timer 0 subtimer A + DCD Timer0B_Handler ; Timer 0 subtimer B + DCD Timer1A_Handler ; Timer 1 subtimer A + DCD Timer1B_Handler ; Timer 1 subtimer B + DCD Timer2A_Handler ; Timer 2 subtimer A + DCD Timer2B_Handler ; Timer 2 subtimer B + DCD Comp0_Handler ; Analog Comp 0 + DCD Comp1_Handler ; Analog Comp 1 + DCD Comp2_Handler ; Analog Comp 2 + DCD SysCtl_Handler ; System Control + DCD FlashCtl_Handler ; Flash Control + DCD GPIOPortF_Handler ; GPIO Port F + DCD GPIOPortG_Handler ; GPIO Port G + DCD GPIOPortH_Handler ; GPIO Port H + DCD UART2_Handler ; UART2 Rx and Tx + DCD SSI1_Handler ; SSI1 Rx and Tx + DCD Timer3A_Handler ; Timer 3 subtimer A + DCD Timer3B_Handler ; Timer 3 subtimer B + DCD I2C1_Handler ; I2C1 Master and Slave + DCD Quadrature1_Handler ; Quadrature Encoder 1 + DCD CAN0_Handler ; CAN0 + DCD CAN1_Handler ; CAN1 + DCD CAN2_Handler ; CAN2 + DCD Ethernet_Handler ; Ethernet + DCD Hibernate_Handler ; Hibernate + DCD USB0_Handler ; USB0 + DCD PWM0Generator3_Handler ; PWM 0 Generator 3 + DCD uDMA_Handler ; uDMA Software Transfer + DCD uDMA_Error ; uDMA Error + DCD ADC1Seq0_Handler ; ADC1 Sequence 0 + DCD ADC1Seq1_Handler ; ADC1 Sequence 1 + DCD ADC1Seq2_Handler ; ADC1 Sequence 2 + DCD ADC1Seq3_Handler ; ADC1 Sequence 3 + DCD I2S0_Handler ; I2S0 + DCD ExtBus_Handler ; External Bus Interface 0 + DCD GPIOPortJ_Handler ; GPIO Port J + DCD GPIOPortK_Handler ; GPIO Port K + DCD GPIOPortL_Handler ; GPIO Port L + DCD SSI2_Handler ; SSI2 Rx and Tx + DCD SSI3_Handler ; SSI3 Rx and Tx + DCD UART3_Handler ; UART3 Rx and Tx + DCD UART4_Handler ; UART4 Rx and Tx + DCD UART5_Handler ; UART5 Rx and Tx + DCD UART6_Handler ; UART6 Rx and Tx + DCD UART7_Handler ; UART7 Rx and Tx + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD I2C2_Handler ; I2C2 Master and Slave + DCD I2C3_Handler ; I2C3 Master and Slave + DCD Timer4A_Handler ; Timer 4 subtimer A + DCD Timer4B_Handler ; Timer 4 subtimer B + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD Timer5A_Handler ; Timer 5 subtimer A + DCD Timer5B_Handler ; Timer 5 subtimer B + DCD WideTimer0A_Handler ; Wide Timer 0 subtimer A + DCD WideTimer0B_Handler ; Wide Timer 0 subtimer B + DCD WideTimer1A_Handler ; Wide Timer 1 subtimer A + DCD WideTimer1B_Handler ; Wide Timer 1 subtimer B + DCD WideTimer2A_Handler ; Wide Timer 2 subtimer A + DCD WideTimer2B_Handler ; Wide Timer 2 subtimer B + DCD WideTimer3A_Handler ; Wide Timer 3 subtimer A + DCD WideTimer3B_Handler ; Wide Timer 3 subtimer B + DCD WideTimer4A_Handler ; Wide Timer 4 subtimer A + DCD WideTimer4B_Handler ; Wide Timer 4 subtimer B + DCD WideTimer5A_Handler ; Wide Timer 5 subtimer A + DCD WideTimer5B_Handler ; Wide Timer 5 subtimer B + DCD FPU_Handler ; FPU + DCD PECI0_Handler ; PECI 0 + DCD LPC0_Handler ; LPC 0 + DCD I2C4_Handler ; I2C4 Master and Slave + DCD I2C5_Handler ; I2C5 Master and Slave + DCD GPIOPortM_Handler ; GPIO Port M + DCD GPIOPortN_Handler ; GPIO Port N + DCD Quadrature2_Handler ; Quadrature Encoder 2 + DCD Fan0_Handler ; Fan 0 + DCD 0 ; Reserved + DCD GPIOPortP_Handler ; GPIO Port P (Summary or P0) + DCD GPIOPortP1_Handler ; GPIO Port P1 + DCD GPIOPortP2_Handler ; GPIO Port P2 + DCD GPIOPortP3_Handler ; GPIO Port P3 + DCD GPIOPortP4_Handler ; GPIO Port P4 + DCD GPIOPortP5_Handler ; GPIO Port P5 + DCD GPIOPortP6_Handler ; GPIO Port P6 + DCD GPIOPortP7_Handler ; GPIO Port P7 + DCD GPIOPortQ_Handler ; GPIO Port Q (Summary or Q0) + DCD GPIOPortQ1_Handler ; GPIO Port Q1 + DCD GPIOPortQ2_Handler ; GPIO Port Q2 + DCD GPIOPortQ3_Handler ; GPIO Port Q3 + DCD GPIOPortQ4_Handler ; GPIO Port Q4 + DCD GPIOPortQ5_Handler ; GPIO Port Q5 + DCD GPIOPortQ6_Handler ; GPIO Port Q6 + DCD GPIOPortQ7_Handler ; GPIO Port Q7 + DCD GPIOPortR_Handler ; GPIO Port R + DCD GPIOPortS_Handler ; GPIO Port S + DCD PWM1Generator0_Handler ; PWM 1 Generator 0 + DCD PWM1Generator1_Handler ; PWM 1 Generator 1 + DCD PWM1Generator2_Handler ; PWM 1 Generator 2 + DCD PWM1Generator3_Handler ; PWM 1 Generator 3 + DCD PWM1Fault_Handler ; PWM 1 Fault + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP + +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP +IntDefaultHandler\ + PROC + + EXPORT GPIOPortA_Handler [WEAK] + EXPORT GPIOPortB_Handler [WEAK] + EXPORT GPIOPortC_Handler [WEAK] + EXPORT GPIOPortD_Handler [WEAK] + EXPORT GPIOPortE_Handler [WEAK] + EXPORT UART0_Handler [WEAK] + EXPORT UART1_Handler [WEAK] + EXPORT SSI0_Handler [WEAK] + EXPORT I2C0_Handler [WEAK] + EXPORT PWM0Fault_Handler [WEAK] + EXPORT PWM0Generator0_Handler [WEAK] + EXPORT PWM0Generator1_Handler [WEAK] + EXPORT PWM0Generator2_Handler [WEAK] + EXPORT Quadrature0_Handler [WEAK] + EXPORT ADC0Seq0_Handler [WEAK] + EXPORT ADC0Seq1_Handler [WEAK] + EXPORT ADC0Seq2_Handler [WEAK] + EXPORT ADC0Seq3_Handler [WEAK] + EXPORT WDT_Handler [WEAK] + EXPORT Timer0A_Handler [WEAK] + EXPORT Timer0B_Handler [WEAK] + EXPORT Timer1A_Handler [WEAK] + EXPORT Timer1B_Handler [WEAK] + EXPORT Timer2A_Handler [WEAK] + EXPORT Timer2B_Handler [WEAK] + EXPORT Comp0_Handler [WEAK] + EXPORT Comp1_Handler [WEAK] + EXPORT Comp2_Handler [WEAK] + EXPORT SysCtl_Handler [WEAK] + EXPORT FlashCtl_Handler [WEAK] + EXPORT GPIOPortF_Handler [WEAK] + EXPORT GPIOPortG_Handler [WEAK] + EXPORT GPIOPortH_Handler [WEAK] + EXPORT UART2_Handler [WEAK] + EXPORT SSI1_Handler [WEAK] + EXPORT Timer3A_Handler [WEAK] + EXPORT Timer3B_Handler [WEAK] + EXPORT I2C1_Handler [WEAK] + EXPORT Quadrature1_Handler [WEAK] + EXPORT CAN0_Handler [WEAK] + EXPORT CAN1_Handler [WEAK] + EXPORT CAN2_Handler [WEAK] + EXPORT Ethernet_Handler [WEAK] + EXPORT Hibernate_Handler [WEAK] + EXPORT USB0_Handler [WEAK] + EXPORT PWM0Generator3_Handler [WEAK] + EXPORT uDMA_Handler [WEAK] + EXPORT uDMA_Error [WEAK] + EXPORT ADC1Seq0_Handler [WEAK] + EXPORT ADC1Seq1_Handler [WEAK] + EXPORT ADC1Seq2_Handler [WEAK] + EXPORT ADC1Seq3_Handler [WEAK] + EXPORT I2S0_Handler [WEAK] + EXPORT ExtBus_Handler [WEAK] + EXPORT GPIOPortJ_Handler [WEAK] + EXPORT GPIOPortK_Handler [WEAK] + EXPORT GPIOPortL_Handler [WEAK] + EXPORT SSI2_Handler [WEAK] + EXPORT SSI3_Handler [WEAK] + EXPORT UART3_Handler [WEAK] + EXPORT UART4_Handler [WEAK] + EXPORT UART5_Handler [WEAK] + EXPORT UART6_Handler [WEAK] + EXPORT UART7_Handler [WEAK] + EXPORT I2C2_Handler [WEAK] + EXPORT I2C3_Handler [WEAK] + EXPORT Timer4A_Handler [WEAK] + EXPORT Timer4B_Handler [WEAK] + EXPORT Timer5A_Handler [WEAK] + EXPORT Timer5B_Handler [WEAK] + EXPORT WideTimer0A_Handler [WEAK] + EXPORT WideTimer0B_Handler [WEAK] + EXPORT WideTimer1A_Handler [WEAK] + EXPORT WideTimer1B_Handler [WEAK] + EXPORT WideTimer2A_Handler [WEAK] + EXPORT WideTimer2B_Handler [WEAK] + EXPORT WideTimer3A_Handler [WEAK] + EXPORT WideTimer3B_Handler [WEAK] + EXPORT WideTimer4A_Handler [WEAK] + EXPORT WideTimer4B_Handler [WEAK] + EXPORT WideTimer5A_Handler [WEAK] + EXPORT WideTimer5B_Handler [WEAK] + EXPORT FPU_Handler [WEAK] + EXPORT PECI0_Handler [WEAK] + EXPORT LPC0_Handler [WEAK] + EXPORT I2C4_Handler [WEAK] + EXPORT I2C5_Handler [WEAK] + EXPORT GPIOPortM_Handler [WEAK] + EXPORT GPIOPortN_Handler [WEAK] + EXPORT Quadrature2_Handler [WEAK] + EXPORT Fan0_Handler [WEAK] + EXPORT GPIOPortP_Handler [WEAK] + EXPORT GPIOPortP1_Handler [WEAK] + EXPORT GPIOPortP2_Handler [WEAK] + EXPORT GPIOPortP3_Handler [WEAK] + EXPORT GPIOPortP4_Handler [WEAK] + EXPORT GPIOPortP5_Handler [WEAK] + EXPORT GPIOPortP6_Handler [WEAK] + EXPORT GPIOPortP7_Handler [WEAK] + EXPORT GPIOPortQ_Handler [WEAK] + EXPORT GPIOPortQ1_Handler [WEAK] + EXPORT GPIOPortQ2_Handler [WEAK] + EXPORT GPIOPortQ3_Handler [WEAK] + EXPORT GPIOPortQ4_Handler [WEAK] + EXPORT GPIOPortQ5_Handler [WEAK] + EXPORT GPIOPortQ6_Handler [WEAK] + EXPORT GPIOPortQ7_Handler [WEAK] + EXPORT GPIOPortR_Handler [WEAK] + EXPORT GPIOPortS_Handler [WEAK] + EXPORT PWM1Generator0_Handler [WEAK] + EXPORT PWM1Generator1_Handler [WEAK] + EXPORT PWM1Generator2_Handler [WEAK] + EXPORT PWM1Generator3_Handler [WEAK] + EXPORT PWM1Fault_Handler [WEAK] + +GPIOPortA_Handler +GPIOPortB_Handler +GPIOPortC_Handler +GPIOPortD_Handler +GPIOPortE_Handler +UART0_Handler +UART1_Handler +SSI0_Handler +I2C0_Handler +PWM0Fault_Handler +PWM0Generator0_Handler +PWM0Generator1_Handler +PWM0Generator2_Handler +Quadrature0_Handler +ADC0Seq0_Handler +ADC0Seq1_Handler +ADC0Seq2_Handler +ADC0Seq3_Handler +WDT_Handler +Timer0A_Handler +Timer0B_Handler +Timer1A_Handler +Timer1B_Handler +Timer2A_Handler +Timer2B_Handler +Comp0_Handler +Comp1_Handler +Comp2_Handler +SysCtl_Handler +FlashCtl_Handler +GPIOPortF_Handler +GPIOPortG_Handler +GPIOPortH_Handler +UART2_Handler +SSI1_Handler +Timer3A_Handler +Timer3B_Handler +I2C1_Handler +Quadrature1_Handler +CAN0_Handler +CAN1_Handler +CAN2_Handler +Ethernet_Handler +Hibernate_Handler +USB0_Handler +PWM0Generator3_Handler +uDMA_Handler +uDMA_Error +ADC1Seq0_Handler +ADC1Seq1_Handler +ADC1Seq2_Handler +ADC1Seq3_Handler +I2S0_Handler +ExtBus_Handler +GPIOPortJ_Handler +GPIOPortK_Handler +GPIOPortL_Handler +SSI2_Handler +SSI3_Handler +UART3_Handler +UART4_Handler +UART5_Handler +UART6_Handler +UART7_Handler +I2C2_Handler +I2C3_Handler +Timer4A_Handler +Timer4B_Handler +Timer5A_Handler +Timer5B_Handler +WideTimer0A_Handler +WideTimer0B_Handler +WideTimer1A_Handler +WideTimer1B_Handler +WideTimer2A_Handler +WideTimer2B_Handler +WideTimer3A_Handler +WideTimer3B_Handler +WideTimer4A_Handler +WideTimer4B_Handler +WideTimer5A_Handler +WideTimer5B_Handler +FPU_Handler +PECI0_Handler +LPC0_Handler +I2C4_Handler +I2C5_Handler +GPIOPortM_Handler +GPIOPortN_Handler +Quadrature2_Handler +Fan0_Handler +GPIOPortP_Handler +GPIOPortP1_Handler +GPIOPortP2_Handler +GPIOPortP3_Handler +GPIOPortP4_Handler +GPIOPortP5_Handler +GPIOPortP6_Handler +GPIOPortP7_Handler +GPIOPortQ_Handler +GPIOPortQ1_Handler +GPIOPortQ2_Handler +GPIOPortQ3_Handler +GPIOPortQ4_Handler +GPIOPortQ5_Handler +GPIOPortQ6_Handler +GPIOPortQ7_Handler +GPIOPortR_Handler +GPIOPortS_Handler +PWM1Generator0_Handler +PWM1Generator1_Handler +PWM1Generator2_Handler +PWM1Generator3_Handler +PWM1Fault_Handler + + B . + + ENDP + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; Useful functions. +; +;****************************************************************************** + EXPORT DisableInterrupts + EXPORT EnableInterrupts + EXPORT StartCritical + EXPORT EndCritical + EXPORT WaitForInterrupt + +;*********** DisableInterrupts *************** +; disable interrupts +; inputs: none +; outputs: none +DisableInterrupts + CPSID I + BX LR + +;*********** EnableInterrupts *************** +; disable interrupts +; inputs: none +; outputs: none +EnableInterrupts + CPSIE I + BX LR + +;*********** StartCritical ************************ +; make a copy of previous I bit, disable interrupts +; inputs: none +; outputs: previous I bit +StartCritical + MRS R0, PRIMASK ; save old status + CPSID I ; mask all (except faults) + BX LR + +;*********** EndCritical ************************ +; using the copy of previous I bit, restore I bit to previous value +; inputs: previous I bit +; outputs: none +EndCritical + MSR PRIMASK, R0 + BX LR + +;*********** WaitForInterrupt ************************ +; go to low power mode while waiting for the next interrupt +; inputs: none +; outputs: none +WaitForInterrupt + WFI + BX LR + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/DMATimer_4F120/DMATimer.axf b/DMATimer_4F120/DMATimer.axf deleted file mode 100644 index 55a30fdfe1f5d405b9ccd0b1d0cb7f6507b931a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18248 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 E1Lp1}zW@LL diff --git a/DMATimer_4F120/DMATimer.build_log.htm b/DMATimer_4F120/DMATimer.build_log.htm deleted file mode 100644 index e65c61f..0000000 --- a/DMATimer_4F120/DMATimer.build_log.htm +++ /dev/null @@ -1,25 +0,0 @@ - - -
-

µVision Build Log

-

Project:

-C:\Users\Richard\Documents\GitHub\UT.6.01x\DMATimer_4F120\DMATimer.uvproj -Project File Date: 04/06/2014 - -

Output:

-Build target 'DMATimer' -assembling startup.s... -compiling DMATimer.c... -DMATimer.c(26): error: #5: cannot open source input file "lm4f120h5qr.h": No such file or directory - #include "lm4f120h5qr.h" -DMATimer.c: 0 warnings, 1 error -compiling DMAtestmain.c... -DMAtestmain.c(29): error: #5: cannot open source input file "lm4f120h5qr.h": No such file or directory - #include "lm4f120h5qr.h" -DMAtestmain.c: 0 warnings, 1 error -compiling PLL.c... -".\DMATimer.axf" - 2 Error(s), 0 Warning(s). -Target not created -
- - diff --git a/DMATimer_4F120/DMATimer.htm b/DMATimer_4F120/DMATimer.htm deleted file mode 100644 index aaf47f7..0000000 --- a/DMATimer_4F120/DMATimer.htm +++ /dev/null @@ -1,671 +0,0 @@ - - -Static Call Graph - [D:\My Dropbox\ArmBook\LaunchPad\LaunchPadware\DMATimer_4F120\DMATimer.axf] -
-

Static Call Graph for image D:\My Dropbox\ArmBook\LaunchPad\LaunchPadware\DMATimer_4F120\DMATimer.axf


-

#<CALLGRAPH># ARM Linker, 4.1 [Build 894]: Last Updated: Fri Jan 25 23:04:39 2013 -

-

Maximum Stack Usage = 16 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

-Call chain for Maximum Stack Depth:

-main ⇒ DMA_Init -

-

-Functions with no stack information -

- -

-

-Mutually Recursive functions -

  • NMI_Handler   ⇒   NMI_Handler
    -
  • HardFault_Handler   ⇒   HardFault_Handler
    -
  • MemManage_Handler   ⇒   MemManage_Handler
    -
  • BusFault_Handler   ⇒   BusFault_Handler
    -
  • UsageFault_Handler   ⇒   UsageFault_Handler
    -
  • SVC_Handler   ⇒   SVC_Handler
    -
  • DebugMon_Handler   ⇒   DebugMon_Handler
    -
  • PendSV_Handler   ⇒   PendSV_Handler
    -
  • SysTick_Handler   ⇒   SysTick_Handler
    -
  • ADC0Seq0_Handler   ⇒   ADC0Seq0_Handler
    - -

    -

    -Function Pointers -

    -

    -

    -Global Symbols -

    -

    Reset_Handler (Thumb, 0 bytes, Stack size unknown bytes, startup.o(RESET)) -

    [Calls]

    • >>   __main -
    - -

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   NMI_Handler -
    -
    [Called By]
    • >>   NMI_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   HardFault_Handler -
    -
    [Called By]
    • >>   HardFault_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   MemManage_Handler -
    -
    [Called By]
    • >>   MemManage_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   BusFault_Handler -
    -
    [Called By]
    • >>   BusFault_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   UsageFault_Handler -
    -
    [Called By]
    • >>   UsageFault_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   SVC_Handler -
    -
    [Called By]
    • >>   SVC_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   DebugMon_Handler -
    -
    [Called By]
    • >>   DebugMon_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   PendSV_Handler -
    -
    [Called By]
    • >>   PendSV_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    SysTick_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   SysTick_Handler -
    -
    [Called By]
    • >>   SysTick_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    ADC0Seq0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -

    [Calls]

    • >>   ADC0Seq0_Handler -
    -
    [Called By]
    • >>   ADC0Seq0_Handler -
    -
    [Address Reference Count : 1]
    • startup.o(RESET) -
    -

    ADC0Seq1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    ADC0Seq2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    ADC0Seq3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    ADC1Seq0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    ADC1Seq1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    ADC1Seq2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    ADC1Seq3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    CAN0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    CAN1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    CAN2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Comp0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Comp1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Comp2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Ethernet_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    ExtBus_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    FPU_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Fan0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    FlashCtl_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortA_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortB_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortC_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortD_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortE_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortF_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortG_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortH_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortJ_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortK_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortL_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortM_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortN_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortP1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortP2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortP3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortP4_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortP5_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortP6_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortP7_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortP_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortQ1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortQ2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortQ3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortQ4_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortQ5_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortQ6_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortQ7_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortQ_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortR_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    GPIOPortS_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Hibernate_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    I2C0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    I2C1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    I2C2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    I2C3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    I2C4_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    I2C5_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    I2S0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    LPC0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PECI0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM0Fault_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM0Generator0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM0Generator1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM0Generator2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM0Generator3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM1Fault_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM1Generator0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM1Generator1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM1Generator2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    PWM1Generator3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Quadrature0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Quadrature1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Quadrature2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    SSI0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    SSI1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    SSI2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    SSI3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    SysCtl_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer0A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer0B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer1A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer1B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer2A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer2B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer3A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer3B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer4A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer4B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer5B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    UART0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    UART1_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    UART2_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    UART3_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    UART4_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    UART5_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    UART6_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    UART7_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    USB0_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WDT_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer0A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer0B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer1A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer1B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer2A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer2B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer3A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer3B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer4A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer4B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer5A_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    WideTimer5B_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    uDMA_Error (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    uDMA_Handler (Thumb, 0 bytes, Stack size 0 bytes, startup.o(RESET)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000)) -

    [Called By]

    • >>   Reset_Handler -
    - -

    _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) - -

    _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) -

    [Calls]

    • >>   __scatterload -
    - -

    __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) -

    [Called By]

    • >>   __scatterload -
    - -

    _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) - -

    _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry8.o(.ARM.Collect$$$$00000009)) - -

    DisableInterrupts (Thumb, 0 bytes, Stack size unknown bytes, startup.o(.text), UNUSED) - -

    EnableInterrupts (Thumb, 0 bytes, Stack size unknown bytes, startup.o(.text)) -

    [Called By]

    • >>   main -
    - -

    StartCritical (Thumb, 0 bytes, Stack size unknown bytes, startup.o(.text), UNUSED) - -

    EndCritical (Thumb, 0 bytes, Stack size unknown bytes, startup.o(.text), UNUSED) - -

    WaitForInterrupt (Thumb, 0 bytes, Stack size unknown bytes, startup.o(.text), UNUSED) - -

    __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) -

    [Calls]

    • >>   __main_after_scatterload -
    -
    [Called By]
    • >>   _main_scatterload -
    - -

    __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) - -

    DMA_Init (Thumb, 76 bytes, Stack size 16 bytes, dmatimer.o(i.DMA_Init)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = DMA_Init -
    -
    [Calls]
    • >>   Timer5A_Init -
    -
    [Called By]
    • >>   main -
    - -

    DMA_Status (Thumb, 10 bytes, Stack size 0 bytes, dmatimer.o(i.DMA_Status)) -

    [Called By]

    • >>   main -
    - -

    DMA_Transfer (Thumb, 42 bytes, Stack size 8 bytes, dmatimer.o(i.DMA_Transfer)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = DMA_Transfer -
    -
    [Called By]
    • >>   main -
    - -

    PLL_Init (Thumb, 134 bytes, Stack size 0 bytes, pll.o(i.PLL_Init)) -

    [Called By]

    • >>   main -
    - -

    Timer5A_Handler (Thumb, 18 bytes, Stack size 0 bytes, dmatimer.o(i.Timer5A_Handler)) -
    [Address Reference Count : 1]

    • startup.o(RESET) -
    -

    Timer5A_Init (Thumb, 94 bytes, Stack size 0 bytes, dmatimer.o(i.Timer5A_Init)) -

    [Called By]

    • >>   DMA_Init -
    - -

    __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) - -

    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) - -

    __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) - -

    main (Thumb, 168 bytes, Stack size 0 bytes, dmatestmain.o(i.main)) -

    [Stack]

    • Max Depth = 16 + Unknown Stack Size -
    • Call Chain = main ⇒ DMA_Init -
    -
    [Calls]
    • >>   PLL_Init -
    • >>   DMA_Transfer -
    • >>   DMA_Status -
    • >>   DMA_Init -
    • >>   EnableInterrupts -
    -
    [Address Reference Count : 1]
    • entry8.o(.ARM.Collect$$$$00000009) -

    -

    -Local Symbols -

    -

    -Undefined Global Symbols -


    diff --git a/DMATimer_4F120/DMATimer.lnp b/DMATimer_4F120/DMATimer.lnp deleted file mode 100644 index 1dc9a31..0000000 --- a/DMATimer_4F120/DMATimer.lnp +++ /dev/null @@ -1,3 +0,0 @@ ---cpu Cortex-M4.fp "startup.o" "dmatimer.o" "dmatestmain.o" "pll.o" --library_type=microlib --ro-base 0x00000000 --entry 0x00000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors --strict --summary_stderr --info summarysizes --map --xref --callgraph --symbols ---info sizes --info totals --info unused --info veneers - --list ".\DMATimer.map" -o DMATimer.axf \ No newline at end of file diff --git a/DMATimer_4F120/DMATimer.map b/DMATimer_4F120/DMATimer.map deleted file mode 100644 index 967ef34..0000000 --- a/DMATimer_4F120/DMATimer.map +++ /dev/null @@ -1,370 +0,0 @@ -ARM Linker, 4.1 [Build 894] [Evaluation] - -============================================================================== - -Section Cross References - - startup.o(RESET) refers to startup.o(STACK) for StackMem - startup.o(RESET) refers to dmatimer.o(i.Timer5A_Handler) for Timer5A_Handler - startup.o(RESET) refers to entry.o(.ARM.Collect$$$$00000000) for __main - dmatimer.o(i.DMA_Init) refers to dmatimer.o(i.Timer5A_Init) for Timer5A_Init - dmatimer.o(i.DMA_Init) refers to dmatimer.o(.bss) for ucControlTable - dmatimer.o(i.DMA_Transfer) refers to dmatimer.o(.bss) for ucControlTable - dmatimer.o(i.Timer5A_Handler) refers to dmatimer.o(.data) for Count - dmatestmain.o(i.main) refers to pll.o(i.PLL_Init) for PLL_Init - dmatestmain.o(i.main) refers to dmatimer.o(i.DMA_Init) for DMA_Init - dmatestmain.o(i.main) refers to startup.o(.text) for EnableInterrupts - dmatestmain.o(i.main) refers to dmatimer.o(i.DMA_Status) for DMA_Status - dmatestmain.o(i.main) refers to dmatimer.o(i.DMA_Transfer) for DMA_Transfer - dmatestmain.o(i.main) refers to dmatestmain.o(.bss) for Buffer - dmatestmain.o(i.main) refers to dmatestmain.o(.constdata) for COLORWHEEL - entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock - entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8.o(.ARM.Collect$$$$00000009) for _main_init - entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload - entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk - entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000 - entry2.o(.ARM.Collect$$$$00002712) refers to startup.o(STACK) for __initial_sp - entry2.o(__vectab_stack_and_reset_area) refers to startup.o(STACK) for __initial_sp - entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main - entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload - entry8.o(.ARM.Collect$$$$00000009) refers to dmatestmain.o(i.main) for main - init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload - - -============================================================================== - -Removing Unused input sections from the image. - - Removing startup.o(HEAP), (0 bytes). - -1 unused section(s) (total 0 bytes) removed from the image. - -============================================================================== - -Image Symbol Table - - Local Symbols - - Symbol Name Value Ov Type Size Object(Section) - - RESET 0x00000000 Section 660 startup.o(RESET) - ../../microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE - ../../microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE - ../../microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE - ../../microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE - ../../microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE - ../../microlib/init/entry.s 0x00000000 Number 0 entry8.o ABSOLUTE - DMATimer.c 0x00000000 Number 0 dmatimer.o ABSOLUTE - DMAtestmain.c 0x00000000 Number 0 dmatestmain.o ABSOLUTE - PLL.c 0x00000000 Number 0 pll.o ABSOLUTE - dc.s 0x00000000 Number 0 dc.o ABSOLUTE - handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE - init.s 0x00000000 Number 0 init.o ABSOLUTE - startup.s 0x00000000 Number 0 startup.o ABSOLUTE - $v0 0x0000026c Number 0 startup.o(RESET) - .ARM.Collect$$$$00000000 0x00000294 Section 0 entry.o(.ARM.Collect$$$$00000000) - .ARM.Collect$$$$00000001 0x00000294 Section 4 entry2.o(.ARM.Collect$$$$00000001) - .ARM.Collect$$$$00000004 0x00000298 Section 4 entry5.o(.ARM.Collect$$$$00000004) - .ARM.Collect$$$$00000008 0x0000029c Section 0 entry7b.o(.ARM.Collect$$$$00000008) - .ARM.Collect$$$$00000009 0x0000029c Section 8 entry8.o(.ARM.Collect$$$$00000009) - .ARM.Collect$$$$00002712 0x000002a4 Section 4 entry2.o(.ARM.Collect$$$$00002712) - __lit__00000000 0x000002a4 Data 4 entry2.o(.ARM.Collect$$$$00002712) - .text 0x000002a8 Section 28 startup.o(.text) - $v0 0x000002a8 Number 0 startup.o(.text) - .text 0x000002c4 Section 36 init.o(.text) - i.DMA_Init 0x000002e8 Section 0 dmatimer.o(i.DMA_Init) - i.DMA_Status 0x00000344 Section 0 dmatimer.o(i.DMA_Status) - i.DMA_Transfer 0x00000354 Section 0 dmatimer.o(i.DMA_Transfer) - i.PLL_Init 0x0000038c Section 0 pll.o(i.PLL_Init) - i.Timer5A_Handler 0x00000418 Section 0 dmatimer.o(i.Timer5A_Handler) - i.Timer5A_Init 0x00000434 Section 0 dmatimer.o(i.Timer5A_Init) - i.__scatterload_copy 0x000004a4 Section 14 handlers.o(i.__scatterload_copy) - i.__scatterload_null 0x000004b2 Section 2 handlers.o(i.__scatterload_null) - i.__scatterload_zeroinit 0x000004b4 Section 14 handlers.o(i.__scatterload_zeroinit) - i.main 0x000004c4 Section 0 dmatestmain.o(i.main) - .constdata 0x0000059c Section 32 dmatestmain.o(.constdata) - .data 0x20000000 Section 4 dmatimer.o(.data) - .bss 0x20000400 Section 1024 dmatimer.o(.bss) - .bss 0x20000800 Section 1024 dmatestmain.o(.bss) - STACK 0x20000c00 Section 1024 startup.o(STACK) - StackMem 0x20000c00 Data 0 startup.o(STACK) - - Global Symbols - - Symbol Name Value Ov Type Size Object(Section) - - BuildAttributes$$THM_ISAv4$E$P$D$K$B$S$7EM$VFPi3$EXTD16$VFPS$VFMA$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE - __ARM_use_no_argv 0x00000000 Number 0 dmatestmain.o ABSOLUTE - __Vectors 0x00000000 Data 0 startup.o(RESET) - __decompress - Undefined Weak Reference - _clock_init - Undefined Weak Reference - Reset_Handler 0x0000026d Thumb Code 0 startup.o(RESET) - NMI_Handler 0x00000281 Thumb Code 2 startup.o(RESET) - HardFault_Handler 0x00000283 Thumb Code 2 startup.o(RESET) - MemManage_Handler 0x00000285 Thumb Code 2 startup.o(RESET) - BusFault_Handler 0x00000287 Thumb Code 2 startup.o(RESET) - UsageFault_Handler 0x00000289 Thumb Code 2 startup.o(RESET) - SVC_Handler 0x0000028b Thumb Code 2 startup.o(RESET) - DebugMon_Handler 0x0000028d Thumb Code 2 startup.o(RESET) - PendSV_Handler 0x0000028f Thumb Code 2 startup.o(RESET) - SysTick_Handler 0x00000291 Thumb Code 2 startup.o(RESET) - ADC0Seq0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - ADC0Seq1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - ADC0Seq2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - ADC0Seq3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - ADC1Seq0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - ADC1Seq1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - ADC1Seq2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - ADC1Seq3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - CAN0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - CAN1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - CAN2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Comp0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Comp1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Comp2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Ethernet_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - ExtBus_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - FPU_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Fan0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - FlashCtl_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortA_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortB_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortC_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortD_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortE_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortF_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortG_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortH_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortJ_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortK_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortL_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortM_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortN_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortP1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortP2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortP3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortP4_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortP5_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortP6_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortP7_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortP_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortQ1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortQ2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortQ3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortQ4_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortQ5_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortQ6_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortQ7_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortQ_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortR_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - GPIOPortS_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Hibernate_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - I2C0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - I2C1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - I2C2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - I2C3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - I2C4_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - I2C5_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - I2S0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - LPC0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PECI0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM0Fault_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM0Generator0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM0Generator1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM0Generator2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM0Generator3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM1Fault_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM1Generator0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM1Generator1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM1Generator2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - PWM1Generator3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Quadrature0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Quadrature1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Quadrature2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - SSI0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - SSI1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - SSI2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - SSI3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - SysCtl_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer0A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer0B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer1A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer1B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer2A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer2B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer3A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer3B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer4A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer4B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - Timer5B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - UART0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - UART1_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - UART2_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - UART3_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - UART4_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - UART5_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - UART6_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - UART7_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - USB0_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WDT_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer0A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer0B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer1A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer1B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer2A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer2B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer3A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer3B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer4A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer4B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer5A_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - WideTimer5B_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - uDMA_Error 0x00000293 Thumb Code 0 startup.o(RESET) - uDMA_Handler 0x00000293 Thumb Code 0 startup.o(RESET) - __main 0x00000295 Thumb Code 0 entry.o(.ARM.Collect$$$$00000000) - _main_stk 0x00000295 Thumb Code 0 entry2.o(.ARM.Collect$$$$00000001) - _main_scatterload 0x00000299 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) - __main_after_scatterload 0x0000029d Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) - _main_clock 0x0000029d Thumb Code 0 entry7b.o(.ARM.Collect$$$$00000008) - _main_init 0x0000029d Thumb Code 0 entry8.o(.ARM.Collect$$$$00000009) - DisableInterrupts 0x000002a9 Thumb Code 0 startup.o(.text) - EnableInterrupts 0x000002ad Thumb Code 0 startup.o(.text) - StartCritical 0x000002b1 Thumb Code 0 startup.o(.text) - EndCritical 0x000002b9 Thumb Code 0 startup.o(.text) - WaitForInterrupt 0x000002bf Thumb Code 0 startup.o(.text) - __scatterload 0x000002c5 Thumb Code 28 init.o(.text) - __scatterload_rt2 0x000002c5 Thumb Code 0 init.o(.text) - DMA_Init 0x000002e9 Thumb Code 76 dmatimer.o(i.DMA_Init) - DMA_Status 0x00000345 Thumb Code 10 dmatimer.o(i.DMA_Status) - DMA_Transfer 0x00000355 Thumb Code 42 dmatimer.o(i.DMA_Transfer) - PLL_Init 0x0000038d Thumb Code 134 pll.o(i.PLL_Init) - Timer5A_Handler 0x00000419 Thumb Code 18 dmatimer.o(i.Timer5A_Handler) - Timer5A_Init 0x00000435 Thumb Code 94 dmatimer.o(i.Timer5A_Init) - __scatterload_copy 0x000004a5 Thumb Code 14 handlers.o(i.__scatterload_copy) - __scatterload_null 0x000004b3 Thumb Code 2 handlers.o(i.__scatterload_null) - __scatterload_zeroinit 0x000004b5 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - main 0x000004c5 Thumb Code 168 dmatestmain.o(i.main) - COLORWHEEL 0x0000059c Data 32 dmatestmain.o(.constdata) - Region$$Table$$Base 0x000005bc Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x000005dc Number 0 anon$$obj.o(Region$$Table) - Count 0x20000000 Data 4 dmatimer.o(.data) - ucControlTable 0x20000400 Data 1024 dmatimer.o(.bss) - Buffer 0x20000800 Data 1024 dmatestmain.o(.bss) - __initial_sp 0x20001000 Data 0 startup.o(STACK) - - - -============================================================================== - -Memory Map of the image - - Image Entry point : 0x0000026d - - Load Region LR_1 (Base: 0x00000000, Size: 0x000005e0, Max: 0xffffffff, ABSOLUTE) - - Execution Region ER_RO (Base: 0x00000000, Size: 0x000005dc, Max: 0xffffffff, ABSOLUTE) - - Base Addr Size Type Attr Idx E Section Name Object - - 0x00000000 0x00000294 Code RO 3 * RESET startup.o - 0x00000294 0x00000000 Code RO 90 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) - 0x00000294 0x00000004 Code RO 93 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) - 0x00000298 0x00000004 Code RO 96 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) - 0x0000029c 0x00000000 Code RO 98 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) - 0x0000029c 0x00000008 Code RO 99 .ARM.Collect$$$$00000009 mc_w.l(entry8.o) - 0x000002a4 0x00000004 Code RO 94 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) - 0x000002a8 0x0000001c Code RO 4 .text startup.o - 0x000002c4 0x00000024 Code RO 100 .text mc_w.l(init.o) - 0x000002e8 0x0000005c Code RO 12 i.DMA_Init dmatimer.o - 0x00000344 0x00000010 Code RO 13 i.DMA_Status dmatimer.o - 0x00000354 0x00000038 Code RO 14 i.DMA_Transfer dmatimer.o - 0x0000038c 0x0000008c Code RO 78 i.PLL_Init pll.o - 0x00000418 0x0000001c Code RO 15 i.Timer5A_Handler dmatimer.o - 0x00000434 0x00000070 Code RO 16 i.Timer5A_Init dmatimer.o - 0x000004a4 0x0000000e Code RO 104 i.__scatterload_copy mc_w.l(handlers.o) - 0x000004b2 0x00000002 Code RO 105 i.__scatterload_null mc_w.l(handlers.o) - 0x000004b4 0x0000000e Code RO 106 i.__scatterload_zeroinit mc_w.l(handlers.o) - 0x000004c2 0x00000002 PAD - 0x000004c4 0x000000d8 Code RO 56 i.main dmatestmain.o - 0x0000059c 0x00000020 Data RO 58 .constdata dmatestmain.o - 0x000005bc 0x00000020 Data RO 102 Region$$Table anon$$obj.o - - - Execution Region ER_RW (Base: 0x20000000, Size: 0x00000004, Max: 0xffffffff, ABSOLUTE) - - Base Addr Size Type Attr Idx E Section Name Object - - 0x20000000 0x00000004 Data RW 18 .data dmatimer.o - - - Execution Region ER_ZI (Base: 0x20000004, Size: 0x00000ffc, Max: 0xffffffff, ABSOLUTE) - - Base Addr Size Type Attr Idx E Section Name Object - - 0x20000004 0x000003fc PAD - 0x20000400 0x00000400 Zero RW 17 .bss dmatimer.o - 0x20000800 0x00000400 Zero RW 57 .bss dmatestmain.o - 0x20000c00 0x00000400 Zero RW 1 STACK startup.o - - -============================================================================== - -Image component sizes - - - Code (inc. data) RO Data RW Data ZI Data Debug Object Name - - 216 48 32 0 1024 1579 dmatestmain.o - 304 64 0 4 1024 4619 dmatimer.o - 140 6 0 0 0 443 pll.o - 688 622 0 0 1024 960 startup.o - - ---------------------------------------------------------------------- - 1348 740 64 4 4092 7601 Object Totals - 0 0 32 0 0 0 (incl. Generated) - 0 0 0 0 1020 0 (incl. Padding) - - ---------------------------------------------------------------------- - - Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name - - 0 0 0 0 0 0 entry.o - 8 4 0 0 0 0 entry2.o - 4 0 0 0 0 0 entry5.o - 0 0 0 0 0 0 entry7b.o - 8 4 0 0 0 0 entry8.o - 30 0 0 0 0 0 handlers.o - 36 8 0 0 0 68 init.o - - ---------------------------------------------------------------------- - 88 16 0 0 0 68 Library Totals - 2 0 0 0 0 0 (incl. Padding) - - ---------------------------------------------------------------------- - - Code (inc. data) RO Data RW Data ZI Data Debug Library Name - - 86 16 0 0 0 68 mc_w.l - - ---------------------------------------------------------------------- - 88 16 0 0 0 68 Library Totals - - ---------------------------------------------------------------------- - -============================================================================== - - - Code (inc. data) RO Data RW Data ZI Data Debug - - 1436 756 64 4 4092 7369 Grand Totals - 1436 756 64 4 4092 7369 ELF Image Totals - 1436 756 64 4 0 0 ROM Totals - -============================================================================== - - Total RO Size (Code + RO Data) 1500 ( 1.46kB) - Total RW Size (RW Data + ZI Data) 4096 ( 4.00kB) - Total ROM Size (Code + RO Data + RW Data) 1504 ( 1.47kB) - -============================================================================== - diff --git a/DMATimer_4F120/DMATimer.plg b/DMATimer_4F120/DMATimer.plg deleted file mode 100644 index 6958414..0000000 --- a/DMATimer_4F120/DMATimer.plg +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    µVision Build Log

    -

    Project:

    -D:\My Dropbox\ArmBook\LaunchPad\LaunchPadware\DMATimer_4F120\DMATimer.uvproj -Project File Date: 01/24/2013 - -

    Output:

    -Build target 'DMATimer' -compiling DMATimer.c... -compiling DMAtestmain.c... -compiling PLL.c... -linking... -Program Size: Code=1436 RO-data=64 RW-data=4 ZI-data=4092 -"DMATimer.axf" - 0 Error(s), 0 Warning(s). -Build target 'DMATimer' -compiling DMATimer.c... -compiling DMAtestmain.c... -linking... -Program Size: Code=1436 RO-data=64 RW-data=4 ZI-data=4092 -"DMATimer.axf" - 0 Error(s), 0 Warning(s). diff --git a/DMATimer_4F120/DMATimer.tra b/DMATimer_4F120/DMATimer.tra deleted file mode 100644 index 8a121e3..0000000 --- a/DMATimer_4F120/DMATimer.tra +++ /dev/null @@ -1,21 +0,0 @@ -*** Creating Trace Output File 'DMATimer.tra' Ok. -### Preparing for ADS-LD. -### Creating ADS-LD Command Line -### List of Objects: adding '"startup.o"' -### List of Objects: adding '"dmatimer.o"' -### List of Objects: adding '"dmatestmain.o"' -### List of Objects: adding '"pll.o"' -### ADS-LD Command completed: ---cpu Cortex-M4.fp "startup.o" "dmatimer.o" "dmatestmain.o" "pll.o" --library_type=microlib --ro-base 0x00000000 --entry 0x00000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors --strict --summary_stderr --info summarysizes --map --xref --callgraph --symbols ---info sizes --info totals --info unused --info veneers - --list ".\DMATimer.map" -o DMATimer.axf### Preparing Environment (PrepEnvAds) -### ADS-LD Output File: 'DMATimer.axf' -### ADS-LD Command File: 'DMATimer.lnp' -### Checking for dirty Components... -### Creating CmdFile 'DMATimer.lnp', Handle=0x000002A8 -### Writing '.lnp' file -### ADS-LD Command file 'DMATimer.lnp' is ready. -### ADS-LD: About to start ADS-LD Thread. -### ADS-LD: executed with 0 errors -### Updating obj list -### LDADS_file() completed. diff --git a/DMATimer_4F120/DMATimer.uvopt b/DMATimer_4F120/DMATimer.uvopt deleted file mode 100644 index 1a1c4cd..0000000 --- a/DMATimer_4F120/DMATimer.uvopt +++ /dev/null @@ -1,282 +0,0 @@ - - - - 1.0 - -
    ### uVision Project, (C) Keil Software
    - - - *.c - *.s*; *.src; *.a* - *.obj - *.lib - *.txt; *.h; *.inc - *.plm - *.cpp - - - - 0 - 0 - - - - DMATimer - 0x4 - ARM-ADS - - 16000000 - - 1 - 1 - 1 - 0 - - - 1 - 65535 - 0 - 0 - 0 - - - 79 - 66 - 8 - .\ - - - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - - - 1 - 0 - 1 - - 255 - - SARMCM3.DLL - -MPU - DCM.DLL - -pCM4 - SARMCM3.DLL - -MPU - TCM.DLL - -pCM4 - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 0 - 1 - 1 - 0 - 0 - 3 - - - - - - - - - - - BIN\lmidk-agdi.dll - - - - 0 - UL2CM3 - UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0TM4C123_32 -FS00 -FL08000) - - - 0 - DLGDARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) - - - 0 - DLGTARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) - - - 0 - ARMDBGFLAGS - -T0 - - - 0 - lmidk-agdi - -U-O4622 -O4622 -S3 -FO29 - - - - - - 0 - 1 - ucControlTable - - - 1 - 1 - Buffer - - - 2 - 1 - Count - - - - - 1 - 0 - 0x20000800 - - - - 0 - - - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - Source - 1 - 0 - 0 - 0 - - 1 - 1 - 2 - 0 - 0 - 0 - 0 - 1 - 1 - 0 - .\startup.s - startup.s - 0 - 0 - - - 1 - 2 - 1 - 0 - 0 - 0 - 0 - 26 - 27 - 0 - .\DMATimer.c - DMATimer.c - 0 - 0 - - - 1 - 3 - 1 - 0 - 0 - 0 - 0 - 1 - 1 - 0 - .\DMAtestmain.c - DMAtestmain.c - 0 - 0 - - - 1 - 4 - 1 - 0 - 0 - 0 - 0 - 52 - 53 - 0 - .\PLL.c - PLL.c - 0 - 0 - - - -
    diff --git a/DMATimer_4F120/DMATimer.uvproj b/DMATimer_4F120/DMATimer.uvproj deleted file mode 100644 index 2ea1870..0000000 --- a/DMATimer_4F120/DMATimer.uvproj +++ /dev/null @@ -1,433 +0,0 @@ - - - - 1.1 - -
    ### uVision Project, (C) Keil Software
    - - - - DMATimer - 0x4 - ARM-ADS - - - LM4F120H5QR - Texas Instruments - IRAM(0x20000000-0x20007FFF) IROM(0-0x3FFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 - - "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") - UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_256 -FS00 -FL040000) - 5919 - LM4Fxxxx.H - - - - - - - - - - - 0 - 0 - - - - Luminary\ - Luminary\ - - 0 - 0 - 0 - 0 - 1 - - .\ - DMATimer - 1 - 0 - 0 - 1 - 1 - .\ - 1 - 0 - 0 - - 0 - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - 0 - - - - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 3 - - - 1 - - - SARMCM3.DLL - -MPU - DCM.DLL - -pCM4 - SARMCM3.DLL - -MPU - TCM.DLL - -pCM4 - - - - 1 - 0 - 0 - 0 - 16 - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 0 - 1 - 1 - - 0 - 3 - - - - - - - - - - - - - - BIN\lmidk-agdi.dll - - - - - 1 - 0 - 0 - 1 - 1 - 4097 - - 1 - BIN\lmidk-agdi.dll - "" () - - - - - 0 - - - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - "Cortex-M4" - - 0 - 0 - 0 - 1 - 1 - 0 - 0 - 2 - 0 - 0 - 8 - 1 - 0 - 0 - 3 - 3 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 1 - 0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x8000 - - - 1 - 0x0 - 0x40000 - - - 0 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x0 - - - 1 - 0x0 - 0x40000 - - - 1 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x0 - 0x0 - - - 0 - 0x20000000 - 0x8000 - - - 0 - 0x0 - 0x0 - - - - - - 0 - 1 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 2 - 0 - 0 - 0 - 0 - - - rvmdk PART_LM4F120H5QR - - ..;..\..\.. - - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - 0 - 1 - 0 - 0x00000000 - 0x20000000 - - - - - - - - - - - - - Source - - - startup.s - 2 - .\startup.s - - - DMATimer.c - 1 - .\DMATimer.c - - - DMAtestmain.c - 1 - .\DMAtestmain.c - - - PLL.c - 1 - .\PLL.c - - - - - - - -
    diff --git a/DMATimer_4F120/DMATimer_DMATimer.dep b/DMATimer_4F120/DMATimer_DMATimer.dep deleted file mode 100644 index dc0aac8..0000000 --- a/DMATimer_4F120/DMATimer_DMATimer.dep +++ /dev/null @@ -1,8 +0,0 @@ -Dependencies for Project 'DMATimer', Target 'DMATimer': (DO NOT MODIFY !) -F (.\startup.s)(0x53416DEB)(--cpu Cortex-M4.fp --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1" -I C:\Keil_v5\ARM\RV31\INC -I C:\Keil_v5\ARM\PACK\ARM\CMSIS\3.20.4\CMSIS\Include -I C:\Keil_v5\ARM\Inc\Luminary --list .\startup.lst --xref -o .\startup.o --depend .\startup.d) -F (.\DMATimer.c)(0x53416DE7)(-c --cpu Cortex-M4.fp -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I.. -I..\..\.. -I C:\Keil_v5\ARM\RV31\INC -I C:\Keil_v5\ARM\PACK\ARM\CMSIS\3.20.4\CMSIS\Include -I C:\Keil_v5\ARM\Inc\Luminary -Drvmdk -DPART_LM4F120H5QR -o .\dmatimer.o --omf_browse .\dmatimer.crf --depend .\dmatimer.d) -F (.\DMAtestmain.c)(0x53416DE9)(-c --cpu Cortex-M4.fp -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I.. -I..\..\.. -I C:\Keil_v5\ARM\RV31\INC -I C:\Keil_v5\ARM\PACK\ARM\CMSIS\3.20.4\CMSIS\Include -I C:\Keil_v5\ARM\Inc\Luminary -Drvmdk -DPART_LM4F120H5QR -o .\dmatestmain.o --omf_browse .\dmatestmain.crf --depend .\dmatestmain.d) -I (PLL.h)(0x53416DE9) -I (DMATimer.h)(0x53416DE7) -F (.\PLL.c)(0x53416DE9)(-c --cpu Cortex-M4.fp -D__EVAL -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I.. -I..\..\.. -I C:\Keil_v5\ARM\RV31\INC -I C:\Keil_v5\ARM\PACK\ARM\CMSIS\3.20.4\CMSIS\Include -I C:\Keil_v5\ARM\Inc\Luminary -Drvmdk -DPART_LM4F120H5QR -o .\pll.o --omf_browse .\pll.crf --depend .\pll.d) -I (PLL.h)(0x53416DE9) diff --git a/DMATimer_4F120/dmatestmain.crf b/DMATimer_4F120/dmatestmain.crf deleted file mode 100644 index fb4be1eb96ddb3c05d6dcc78c1bc46676cf02665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205712 zcma%k2b^R_asEgIAy7aGC322p!iGB&C++QWGdrVsv$uCbFi1im0g?zJM+Y*9WTHUi zV3I(92*MZ)je*M_Sq1T*_MyH+E`1h+m^^|Kg@ZXESeq!U$>kP)-`S}-|`%oay`s^i7 zW#qPB?=%j*)!;AA+~ejanZOHSls?7)acN| z9(?XY&%fxtjm?S%#R|=FlQiSrpxH(N=rju&Gt{w!oDYjR$PQZAXwu&c>{lt)@|F8T zTDjK3SMFu0EUkr9ZkGi~oueDi@0sY1# z6TQ9E#6)qInV2-i-yJ;FDd#vMnv}_6B`USfxW{N)S1qiW@E5}{+F$|u_*2slj~GGV|MWRPUpvK zoe%l~|Eme3pAz`hg2L(tClWf67>8~^~vGl(+F|qWwn}Rw^Kf`Pcw)9`yigT8Jw8_<3`qVIG=-gZSznE}o>7O-a zVoU#b!_o(VrT?QLm&-A0oM)&BAY1zDjZz0<=|3~c#M0kwV{GZKvRRU)|I#EAOScB- z!9pzkQj<z*+jUO**l3Yl=2l zh^4>4q!UYjn<=QX^aEyNu%-XXR-Ci+qfD;O(kF%~L+9So|Jj5~OaF{16I=Sv@KGk; zlh-MVjpm|1Yr<^)AxUi^^cs*CzQ6iV0wf$pMUcZm>t{(8fhZEQMV@WF2_@e=X7AzHs zzljpLYCjBW46ah+ag>*9{F|sOsqssrRH^Z0QL5DV?}8dbE??u%N9A#iuNLrVyBdEq zNu?TpBw)~%8vi;<1|4q`x5{{44oh6(Yr#nkHA{It0VIF69mT*`sBwIpSQMQDQn73HM zW}GaRa3HhmeAIgpq99)Ssmsq;SF)6*%H(&LP*#W z-WBF`gWPLENjuIG?iMGDC7c=aU`u#aSgnq?gg+CO_OQKPePmT;X|7_o#R zX5%d3nz4{<328;y64qnhVhQ6oSuA0HXbEaSerzm^vxIBJjKmTKNp`V>{|zmnqb))0 z2T-#*%vr+g<4Ut7sM(c}uq9j(=3SC`!mC3`mz*WsHBJ^wxM$3RE#Z}6wU)dk{7;fD zmT+vG?kpi1HI}?3Tssynw4!VYdt%;V38Oe!EMYse1nAJu6CM)_ z<1FFoF(a{rev(}*;m@HZENM&leKEIu>{)Eb6=0dd3nK>a9LQbWp4?8O47v=j)~KqB}AjfvbTi8V`0P+PLJ6*OHdzt zA|zWvT2Z!ywV1b9LNt*?m3YRyFSG>c&|AWzV_}>nTrK7=me5PGizWO|XbH>O5`Gt2 zg2S98yf$tbwuBeOsoW>LBTQWpOL%1{>58+2JIBdl2?t^xYzeOjtF_`S;g3nWSi*JV zbY}_CsIlTLA)0@$xLwd`%*I)Q`Vb~dfH<@Okyex~VHj6bEFqdmf(Ki|R%i*(p|^xb z#lkpCI5g%jme5VIizWOiw1gFH3BL_3!C}r4UK6(rTfz(DRJMf6!_-x=gv&xnSDhu? zDNYtk*dOy?OL%!$tyOOce@N2B5{{13oh3x0#;Ui3X#TzGEMXF}ah9MK2*?s34p~B4 zQMQCZTv4%vXd($7Yzgzw5}-qG36G40ah7mM%wH_w?n!pBgg=Isu&OQLze7uKn6rde z$1TH_@V9X)TY_56-)Q%n3$U0EXNz&sWsfP(Yy@DRK7LDTCKhYIeOy>ZFXNR z;$Dop`-Y2R(xpnh+y?vnb*@(EnX#i}P5#U#6ji;*21QfPwLwwT3vE#J^r}dURZZ{} ziCvEyxXHi?TH0=ZuZ+*13|O~9le#PevPp$Xswi0zFAs#OKryMm$e^O9&@3uiQB*HO zE1KGqK}A)wTz#m~UlEv8RcvKarvxTd|%1DbWi}`#r8b3OQtiN`eqs}fszSpk2}M(v*p#BE7ucZa>9Rsa+XV^c0#!MJtNBdxlmtHO!!*s%fUOY*Lp7 zCRG(%nbb*vNmV(VNi`zwRYRa1UTTA4Qfl`VCe;Z{>fdZaQB`OdC822Q**2vp>iIS( zdJ3m4C0h*PWK!n_CRL)PN&Q2m$nvEtwlbqo&EJU$Ege3MR26TH6XQ=IZJ=0Nhg+W9fMnQmi|1GPAvT`rl8K!x6Q_2#r?uo zoU`;JOs>w-$A&3G=ibu4Y{I3bf6A1JE&V6e$2q>rhd4vhU)ux2xoNd)@6zX8{(Ajj z3iKGbD&@rY6pl^^iUXUpt@o~kK*qjnC+T9ZS5MNVS3W#R7dt(^TEHl)u)*EfLsO(D z$U~||C~0sZroT>~J8GWi!CnczAgSiO%ZmZ;Pk|l-?@OiVPFa-?NRgf(=O=ZY^XK<< z()1pQoa%DkrHcZG8Tl#wnn}sCd4EdBAs&)eqdTQ_lJ})RkAe55KzB-oye9>E47|Hq zKynJ^l^wNR%E{OkW*fap#HY1zHhNVGh>dYbEJoqsK-1rYd+#EDv$GO3$5*J~*;buC}*PHE}G-N*jHCQcY*0aT|iA*ywu= z`Mf2j@(FTYQdhCj*cPb}ve8tRVx!kg`Si$qu93*(ZS=ub{m4dRQ{?&)aHT~-g}gfj z#75s0*=TFQHmWvqS?@SU#x{E6h)>(w=m%0jZ1nw6wZVyP^vHz3+2}hH0qkJ`U6L-j zyL?y5N^JCs$VS^@qiTzp^^TK&Y@;`d_;kFD#zPkXvC;QM)dnZF(IXO0&PLyn5QvS& zHrH`BdPtIAY&7l@a8845^q5HBR0Xloi&Dhd=!KDua<#pUJ}(6;8+~q4O=qKVcR~u| zvHm@&6wXHPpCZmi@0aL6Y&5n-Duiq_)uq^IJa3}>)WuybDcRfTg;xD6Q{?&)5ORzPYA?D zW1GXN67EOU!BHow*l64*-~T( zo)CzQ#x{rZE^MRfNUIZ7Y&7l@{6UbTBYjg9#6~Yj5oeYgA!MVeF2zRUc@yO)8$Bc`+1u!Ytom7| z$n_&2?k)j{jlLsgB{q6_WTVSsqmwHCHY?tL*ng&y)&uUV=^O(QGdAZN7KO|>Cbt1P4vkj&Oltk~__4OVQpZ%d2!mV1&>9r@f} z7>IoD-`haMc+WHtvEF-DzUgbjpHqK|W%l3vpN?7a*DuxoYy%PVJj{845COle8pKhoZLCcQQ5}~@ zsA2?-qvDHVGNtsDB%Ru2hLAz!oy$rrx=#1C1b|os{K6EA5M_{BEP_T!@slZ~FDK~( z9A=?v7-F>nd^G_e76Jchibcpr6hfT0})gWL#z&fe@y_0MZnKZ zu?TsyEfzudNQ$3KDZP`V53s48R%6hgZICUlMN;v03AMWFo>(Oeklv57D5&OY^{t|y zvelAD1>h60p}sRK0P}LJ$%jhh!dCzsZUH!@iq)rtV$4>3tOZa#jiZWtxs2p^vin|D-3;XteXn|QB%k!E zpN^QjUiE@FGxw@rjf(WW>L6%mOkaGj8g^d*Y?u*jV*^^y{-4_9_R}H%_0!S<(3A-;wNGyWF?u#JlRm1L!(xq1oyDv(ISmYI9 z_eFr~Rm1L!01}Hx!tRR^5{sa)`yxns)v)`bbm>+1T8&73%U2S>^{W37^r~JgBKfNK;`?;Q*2;>^vPn zy;0bCI)Hkku=8{P^+sXm=>Y1D4vVyldPuJtcAiWz=FvLrJRLyw2s=*)P(2KlNUv(B zM0!<2CDN-JDv@6G+Cg9GW}w%N6RB6dL6pe7>TRp$?@z{4^s4gRqL%Pny7a4RNzSEj zY|c3v+J%+vd5Ym0Yy&0VwlY`;`L5+jRVz5eS<^R65;CVJS|kJ0 zsv;!X##*aCI~~9uRNXx=<{R{vrw9P5{6|fMtn(u&(w+5)=Bp+`H2<0+W6|8(QlST3 zVs;w~AYQjN050AHh~icWMOzf}`$VjEUljB96mg14tKSAf#e6uWaf(T+-v&Z7UrA}4 zV&0kxEs9C2*&cK=)f}*5jQS6_^jj)tCBvBSpPf#+zlo7fCEPel-`p0F){Jz@Ka6TO zF7~vaA zXXe&-_NOGWzH@mBNVlg#)p%agPrf~+kmbquSKXnf@asD#8jxGxxn8`!L)*RO@}xSm zU-GP$CwCbtlJ%Wr*@JhNXK15)8KSuLouduNt?#IDt(1cgA|=Z>R1lS8C|1^Yl-rc7 zczs7r{5;^-cdlnvwBYKL$5K2IwhjnM79q=hbQL8-(a_4zfyzxh!eh!G;x_kN>7R@R zqm58L)0Hd`)7~i~3xgS(uiEU8(s3kPmM6DU5;5Pz7%>Uquc0@k6k@)rJNJc%`Mxi1 zeX5EqPhQV}ocW#*n=dQCFHfrb0lqM`Jh^HqkGFl2wK-BABPz&h$U5M#>c>Bw2(c#quJg3hm(wf^x`w_s8bz zHran4%j|dAKM@N?d!)`tBfp|;RYvY@Fk|z*B4y^xcV9{(=9?HJru=NaDu|TSamgK2 zPI?c&+y36T^{Faiz9$%vGvDK5^JN8i^IbL2s`p(<>+7~Nldgx9$L6adr}}z>8=;~yt&|EPz)-B1Z?bJc6l6Q(Mjg%`&NYcjw5%b+|s7=gw zJ2qdp|Ngt!eEbId$75Esed>%fGGE$pW#nE4GdACMrp%oAZlxq*zKJpVZTL5&6w>=9 zy@%h3zcOxps*0HJ@do6~_qfPxnwGOd&fBEV3rm~S#GBMLHK6B{ ziTSF?Z@wI!Jp8sY>#d^KT&%gsX}6Bjr;}~mRG&5er}}v0{PX?XCHAA_nI!9Q55yh0 z=~MIcG&dy|)fY4KX3i=wq$E;Kbs|rso^{8Re#1!W;dEm_TTe$v1-e-KYROL6xGf#E zl31qGhmBgwE7RLZS8HiydI#xhF{@0cb)!}!CN1O9vQg7WUqSjEjdWTxQtu})|M`C6 zRGb0mnw4KNG^?O%RkukL71|wS>ei1U6YOVIzrk34vI$=T(cj176~oCI(yte#k6ik7 zqjX$PP(3CgkA> z4T(+2qiwMXx?w~lVw0V#qt{B?gqZEHPDrXb(zZn-ViRJv19N+nEjAI|z!aO@@S+4E zZ4+X)!#W|U=16RdM#Ls0ZaYSp+aqnUiRk)?a8wZW5*H>2iA{*v4(o)Zn)BRZ8WEdl z;d;SSKXa9Eokwh}eXf?ZDhFw#6nQ6@GwqI@>>(?w$9x)&@Lwey_TT=TsiR z---I$!A!nybcj6~wFfiq<`+qJ*|0o58W(WWPo56>ax|XvgyR@K?N z;p-lk9lW8-bv-K=JvdaxMTs-;&DKX$RgZAi%vD)(x#9ZcJkGaVAChNJBjQK1i1d<(Xd6;f`(J~)fZ%OLm8 z;~d@LqAV`=zwevH-3Z+!5^&Wulr+8KND zvV-xuY?kuI?8~xp^3kWO43EOoB#}qG!jM(vnl*MA>U0^{qaJQZAvk-~2eRbiQGb)i z*`pquXHOpWku14*l!`!7YFeZdk9uI1UOeg%Mq>-T_oyG`6(}CHt0n_`)JjbT_NaDN zNbxAkBSc8?sC#AU<&ODM_` zoxDfAHk+mNsF!BtWRLoQ;Zb-3CGx138?vfgv&O2SPM3i_>S99*!P%qUpCuQM`s+N- z9(7TkJ$clJv*hAYDgaCAQ6imq)C02g;!zJb8e8bSNBuCbK=CMR2yzOPC=JUs9N42; zSs}%vERT>9#G}s4(u+r3kj2HL&d%cEQIE@3zqJy*Ptj}d&k9wFPh2ZQ_@5_>lNBvbE zXOFrt&z?N$Ls@e1C~LwZ(uqf%pQRU%y4YxJq4ys3gS-O8qpTswDNsCWsfGi4R5L52 zc$DQ4Qi6EYJ+t)UQP$K~=*6SX%F>HRJvLhb=TW!HHX?h}hx1By9`(&^3C^Q#V7QBG zC+|_O&Soh+>cv?(*`wZPc+@cQsFxYCs$6vDJM}1+fj#P>h7^LcN4+;oE*|xld7M4! zf;@ZjsK3vWi$_@#7LiUoN=45s$1o>7H}=Df#unUr)c5lW6pyloAYtJm33X~Xut(i7 zTS@UK%Oj)&@u)Mh^x{$0)K}=mqwbTX7ms>OwgS$hZkcUFR`Q4PN_HOgjcf_dqpokb zi)$zEQLoBoDLv{%SvlFG-fMUi!WuyS(b)<(kGe&+5n0K9pI5T;sDs%OoJXB% zxQlBi?@_PJW+^@Dg;_b-qpqyZpRRB87TEKogTHU8Hsf6Cn09#{lq8R6N9sVeh)B6* z(d0LHTV0+=IGhrBd9oK~6m$Mbm?$><^N5;+8YQC6k^169rlLS{Kg`SzaMNkq@_oLw zQMXuMtl>fSS>v2End)_)G@0a3*Fzl>Tpyw`KUl54dVs5~PM`U7)RI`Kw{*Nbd~fOw z)rz)D-|opl$cvIPwtEz8`&!isucIh7&Y=BPb^liYT*hNSJ;*7*Y%-oti*3;SCT2Es zM^@iit#b=aZ!(!nz>V8gTb2TC6*vt&#Jlyg#&+8GS2J(Rex= zQfW^$5i08`CPF1W*+i(EzcG+0m-BQJp>m#PB29p;o;vkgiw6CP%Ae8B}aid~K zlAR4AXw~X2ecGGMq*r-uf{g|f*I&M|(z>H7X7b2oVIriHnTe2ARA3p$ zO`QCn6YXw{$(4VSG?Vjj73j}18nW|0KjAdv&iAL)u^UG~6XW%sXyD|e98i(K>P=`z zHl7sa3U+y%$;;5+!^Wa^$P_}VQJaAZp_0^on?nl6Eu|rZxY;zs?SV-X3>>$|nFw)v ztceh}$5g|elWkCprU>0Ez0|)Z_Jds0*<=dRM^|x494XWe4f4_S^OHtlkZz@bR6Ski zNk^l#+3<97U=<@W1gRzuP6V2cMvm(XlQL12>Gn*j@@KQAC9J|3xl#xH-6&AK#pu#E z_l;eFD$K9L*t=K(A4s$V3^x<`?3;@EUl9UiN)?f~0tb%rEQ>8brc~Rijqe$y#`bj}*;hFl3@4h5pUiLFhiJSoDxz4FLfNkgxy zfap60k=%km%|HnQQoeODa~(q~X^LL>hi*uyYN6&>)hAPjy?&q~XsnXmA(+l}(KWLmDg4 z5>6U^Y6#~V{=bcaq~ULFAky%=4MZA#w^5L5c&i|3_rG6|;{zrp=8?`Ls6b~Pc7b9ZA5Yq!2ut($ zoC%lap<;iz2BBFdo5#_Kc@X5y<7SD12zBO>nlpi79_dt*Ffos>m`t5{JRs2?5sG=d z-^9c`er94~9v?C>F%Mf%F^}(>f;#hfvdL7;`Us5y0Jp{}o#L}C=`C4drf zCSlA@ok85mC`im9{oHvA}Uc$rTARbr&mayt2_69p?cy;-)q>+Yi88p)HmT=PWg&~}4_}?4sq~UL6Aky%6HV|p} zI~xVLhPMimhF?qDwwg|k4X|u@{jx80*zOa!SFIawQL=n%zoU{`Qs<){PSBzccua(J zM{|cfuBs2yYrQfa=^OyqPX~WIIG`Q|W_B6nAqLi+}^|=zTlG6Bx%4RnAAtV_EOqd_w z*dO1k3SbB!0=eD)Txpimu{zS9&nTM0Qq_ZbWHua4y0l87o;mece+$d?9FyekRV7Q1 z*JCcNoP&WOB1%v!?=r5ROC=S)D@i5&sb|<-UQ(WVlG~*&Ayq|F=2RS*r{d178rdgP zdG}3|sX(>0<8xDqXQ#QT$g?6PPtjIX=JkzqD)dw%ok~^l61i03L&d6yUu8O#ds5Vh zTbsUQb(w`J1fjCkeG!FF>FP>`La2Oo>p>wTfx42x2+V6^A8&K~btIc0B*9;q2ubjl zCPETC$wWwkCq_+zj(}8uMw(1zA4rp_;QeVbmAaiKQ<3}9WZKBsN|R|HW1c3{Hb#*q z(=Ns=O{V2nwXMK3gA-ar;4hJcx5`(^yUU1s_M;*bgJu3jdZH4 z3J_EBr`oCjF=aYc_eKUEs;|24>GQX#zDB*;R9~ZBZK|(PuQt`!s8^fnYt*Yv^)>3% zrurK7YEylUdbO#(R=udcH%Rr+q52y2>QH@+dUdG2alQJ}tqtn9|JN8HTz~(cQMbKs z-tCQOj`FTZrtVY%@%%30h1sGXI}Sz=O@mx9her@mkrkt$-`Eh<=hrqwP57(o(~M1o z7_M&)e0l1@OorFGTcf$3uFa}B5rgXidaY{O!{`9hsXdw7E6z@pt6JVCg22hZs=1 zp&0c3s7Y~{VLscS=joc&Y-D>dU+^qwjQ6O^nM;{k=o2NBigOoR!^IdoAm!PSD!IU& zoFJL@!>~h#%Wvhb2<4_^$VhWJ#3?SLvwCPYEQXtn*QEex0KB$3B105()Od{cKh_+dDjfS!UTL4B(_wu{DMY z$~NI--h!NVSE0<4XFi4Yh-$X;(mdicPyBwEa=z8FsnLpglD{h9>1M zBi83ebG|=UETY+9P8uCz6w)Ooo$YU^MG7r3UMt2R6?uFE!I6NERm37a59O?R1uJ!;pJOeFz= zv~84mNe-Vk`~7JP@zbr!^r+cSwnakU{seLwW-Uu?% zVzIxR!?D^!s=nMVo6PD|vweGPR&8qEEAs&Bj05Wg}!1%7$L9u*)X9yuMvF z9_?!Po8*Nrws|A8RmauaY%a1}+vX7@k$J;QGp2y3Z^WDGW%4GwzM*NJh|IXvg0hoK zxS}vTB+zD||HWoZc5gcj?t5>wpvmN_jW9+G7h>E*OioMUKKX@u6+(F;psfxhzOC5~ zK)0QJscZV0oZLb^ml8r-9f*7foAZj}+(f7hQ)cptlT9u6mls=0kok65l-l4lyWC}z zD~|rCY7(l&2J;r)VnDQfQ!H|rQ|yA5AQmcoS{9`iY}sNhIkB4hIFl9&%v&>v^<7&m z@}*O&Nvx)Xs|+TM$D4kH*!c5hHpws8e94clZ}Wwl3^s81#u}4wJdOD_Gu?Gu z;>Lz!wY>0>ae;LUlP|y}miNoHyyQYRwE4nG`g?Kg)8q?~_~v|mKpv#xZYp^JZPB=5 zdl1lVr(yLdYe>F1-oWuT%i0FyUbf=`+G=Or3#b&^gd$DOgt|vm(4i&{@>bVw_Vvy1UoX@ik!tBCA4IT4m&i|X2fejJQ=oB7$U72@;Q5~#Y!rPM{|g??b10zi!$6dmx0B@X#LDw1`)5B z@u4AEy6r=NwwAM&4irVVNi)wi8x|Sd>+54y#6GcbB8z=^sIY|zB>Hl|=?9;et_$;$4bqGz@8;`WLCXH9wLW6iVXyt?^(>&D{nrFul`g^v}(#dcKYzmEt z|NcWIgS!v7e=%nkYt01>;ZMqe{pJL5&Mlt;C2HK(uMojv7j%W8;1!>@RLdGAFkRPs z9#!%LJ$$*$6e|cWV*;y)kzoS6f_pQrnpF61tBwS;npkZ~YR^augSm~gF@>;^ z4#o)^S;Dl$MwamrY9lL+XQ%Zft0-^^sa)(5?c?2{$z1Q7`Q&0UKveT`$Wv%s4@JS6Ij_u)acwYY3l9`9_@LBcw&)cH@U0i8&eqm2$R(+pL-f`NdkBa+#` z#qbd;*yv;k$4^pwLkvtwDwgk`pQgg*US6rn^L0+4LIDQ|t+JLzCC9yBpAbgbTA2)K z^noS5WP;of=Z*#w$fNcjn8^?=4;Xl25+(Q zuQh&}rX&9llfEQ>Zwo!ax1&m+T$*<5t_FA(XJdpY()i&#`E_-0(YUN~bfNCe2DntY zkM@ejjbm%j0z=yMog$7GML62E8J<@gH@;s77maULUcl6&{%n0wObc8R!NI##pF$XC7_e#Ve>ZRh9 zR{)N%;4wCXqBq-%73k0ss5hAHAEJv))8|P4k&!-vSEx&*Tr%+)ZERvII_0yDAx#I< zCNHA=G+h2?RB1{t#>kn2Va@ zt-OpB^Zg{CDaCw038?meE7|A!Nx@o*XAs}5L9jf;U7NDGKQrdc9I56C@J zZoBbd7m$ZUCIoJiA=3YlruQga-HR5H$LODt{`)ll8l|iE;eCEOVVt-C%H=tTIssVb zr%A{U(i))i90Qp}?oYD>QWZ@TK4xPr!aiwYMUSvI8W<^zF!lAo5+V&MBSgIuRU$b2 z07Revq?RF?DIVPYZ3M(ldk9y_D%yM1rqkDsA9x(G9+YTAU#ITG>|DHv6_h68YAkUL@B#W z`R-zHlj);6Kv2=}{4t(uP&sUYMME7iVj`Llva|LvNshVs;hpA3hvs+H-AdS z{@O?X8ICnn796(Uc)tO_WBai4lmaf>Z@kX{;In=G;aW<@6JPb=5nno8|x?WYhPoEXA z-?Dh0N(7h&m6k&3#RLz}(Z8_{=pG^0Q(4!HuB>L{^@$Hi}H{0y$elYb?z%+O$fl}6D_4YDwK(kjlqZ-HK;qK z<6TMwn7~JWAQU6m5q)Y(K%b33-jpKU0X~QJ;%VbRA;hYfPp0}YTVD^HE5nrf<6+H- z03F+8)=+O;dy3iCraqSMllimpm{6p`FF1{L)E=TJkpc(QLXA{3&&VJ}%nf0Z@Li05 zV?7gL$vjfvm^yG&V$=YD)*>>Rrw~V)sHj`DOePpu z5~yN~lpygW?8i~1NlX|Uin}B-5JHfAVOXy*l>`Ffby{Qx1X21?k>E5xAi-%~^YN;0 zVA%wN-~>L#ASA&F`(-FcL8CqEw+}hW0Y!Ak5b3wy_@P0@`t4)IG-$CgiGrF@VY{N5 z5k%?g-UgL4CLu_BeXMwf?nMZa)vZDnjrtVsSTMTWBoe#CU}x9LVg9_T?vdpfi}#!ZoO#H^BW#vVhu%nIYZBRJ%V%;ei#B$Rket3)yt#f4}n_%2J`x6~I zLT;T?Gi<4KKAoYI);TFdNv)&4tX*B4Kxmy$W`yO|d3=T`wa!N}7`4uaGfbhPF>X6W zZo}^%@(v$D&>!>&YQeo#%ow3Fy^C8@|T$|OWC zyUhxBslsZRtYV0c2_5gzrY^c(7auXJ>R{5viFFxB7k4yu;W)4^4w|~a=NsK1P!|p> z(dS)AuHG&XgdfYKA2_RqX1sS5+SI@|C)g8wcr1LtV%}{WU!S3eb=C6m7o!kd*6v{r z5)BTj5IW|vs9~|RU^yRABL>d9bQ>qsXXv3Kc{zy#M$R_mJgbI9TjYFHjhr~@(oL;e$%za-R3tAaaX=PzL^d%E zIx%y04U3k@sbUBlEFkAeH5I|}mmVsTmlGLC&L`C9lMcz8Q^NvBRmhK2^zcMZoJr~8 z*izJEDt#hD4;9JFNgR;niE&R=@?dv=Z`{vln5FzewxVDFA=Rq}Q7s7XAp&L8tLqY2 zL={3N=0KkQzB~ix=wHl>$bNodE#5;FvLZS!Pe#vtgT>Gj#1LxWQl-Clu zCAN-og9cs~g)Kg~t^~HlujaK#Uj4y51LxH08cwVw_Gxvb-oSgPLRO2;qrVo7~aT~qsww!8Dq5m0e#RC$SW<3Cey&w#aht_(e-6_Ozp&JjOjiUPrQhZ zbV5wG%mVSaIWTntxMB*e5SDy|5L2jyFcn9xqU#IK+o=M(EXQ&;@ye3 zjCO_eaTZ_bhbbR!fiN8gUuc8E_SvRHP!W^fyjlekiR5AX;CQJ93T&;F>qZXX_wIuO ziW;B;iqQ-Q2GO1O*P(CNH#%H(fy|esGZgxQjA!jL&`0kW3v6)_J)NOINQ~&a7OO~9 zK8`Q0gZ`bdk}4SJpX!JUoWn_0n>=sqkorjmvz|eL z^D40fngMmy<@&8REwY!Mm0UFLoFw-sch^cT8h1*PyZew^#WL_k?t>kuSO(sPDYrU# zSS3?LfyiFb5lj)Igny2)@>B!UjzzQ3R+u8$3N$;A&yCfQ3bBetClq_(Uu{)LKbbEIrm~BRWUPl4A4W z1TD0M2ppRo91qDr?Zz|*we&HykYN+Ya>_20;{aj+-PoKB`VgYr>{CET2dq))Z5`l7 zrMGlI9F^WgFIeu+Q98En2mQ%rQFIW{z((4*7H%Ug9JsWRX5*z{Jx~tquy^!Uk1L?2nkgph!o!+76rD9e_M?&L5}`pj0?Pr8nlHq#+VNx7ArSXbUrCt5&${;@fIFLoT(tn^~)t zuhq}ZwxTcX$C1YucV)7MHx z1S8@t_T4S`?gv9p^gtUYI0F~;Kuh1I(yW@;ZV7s<0V?vmzHrtJ43m$3QBe6 zE2P}r1ZCi8c-qEE+G z3tK8ydJ|h1LC;s5^iR{|1zZlp~ zTtTgs{g~i|oved8C~2P!t)QsWLs!7`)6F#Jt58qiCJI}DigMU8)Re=PuuYW1I{H`& zRZf-H#+mLMT?^p{a#&M`jA4Zpm^Y#;+rljox(gB*Q&EBxMdgt>kanIQl>=!LNIeo3 zmPrHNV{()<{HO)Hkdg)iwXha~)HOdo#};ACu$7RlXMsih42V!-@Td%kSYPNyGa$k! zAoOqsYy(uwfMHc|Y$V?*xZ{pi30;F;LBvd_Sk>3Bg(o8$!&NM7g`Oca2)De78Dr?t z0s;74rkoXh0X!&YMMtqz2+CQ(9L_9f1s8wp`YdBqw2+PAGByJ;^;yP_vsunER^Tjd z^J1y-LKE2-E@2NKQ_hmU<)^ATSkljVDPW#{nirz#jbTSeno~3s4jZRo%=&b&mTA`~ z`Oq)RX(L#8rao<)G%?F*;~=+PPO@xJmeay2Y^IzRhA*?6R^!i^a%d64l3-)l)KT(6 zy*2gqdj%oB$Nxstn__KaZPN7DexuK;LZby%F(a2=qmPB=Vr>hjcwUk)7H~M8&JSP( zB%B)+j&yyBIJIMhL$Tqxz+cY5OkFh8KB!dIF=y&RFP8~CL16!46-!2VdpI0Auv$Ra z3S;UOL`ApE*r6uf5@T00u?}NbH?cNj*Dx^zeSw_UG_fXQhsD|%;MGp5A1)$5w>L3i zR8ioYnlNf9@XbsZ6&3jACXBiYtRBD?6|!ikuE1(HL&2!Az_&7)qtXK3+Js%j3d{;3 zo8q!v#R^OeEZ9}7Ku9kI$7{i^Vg+K6TCl5Fk!ccFu>zMwB0s})1rva+{j%DX z0cFuB1IpS<29za?3`k?SHPEv_G?rTfJ%cosTLV3VG?uHYxYGO>v2pYPV}&&)wH7p1 zSYr|vcxbFpH_sJ20Dm-kP%5V#FBfwkPUW=CF^S7*n`2UIfuKCrm_+5Y;>G8(oR&Ez zaXBq>OhP#=b4;Rgn(sE7{Ij*irg72k|~%fW7}_)-RTV}&}_6EJsU#b?ug7G^Ac zx6!WylfK*N*MUjjZS?EFr0aTRmw;-dCP_k|ux`Y`M3i9zbatgj~qsSmTho*1M)%=&s_koqv|ONK$}!>kU@ zm1%cyu1xCS(%D&?`!H+%j!44j!>su`mfookv*z#Z1psUQPUW=CzLLsmn|&ph6GZ7K z`%0A4Hv38{r)Bn)R8Gt6E4iGO*;k^Rmf2TQIZd;#q;i^OU&-Y(&At-lG|^WYeHakw z!=kMp>BAga;8sv%!`#!fr4M^i!kGFnh{Ju@F0&VEFI*q?jSTGiFcmydbyAMHz!lGE zcH!i5eVDp3A=Hy8Y+U*%2*)FbPZqDK==4KaHF{dsrYJcgzcmc`mi7-DSkh+YtSLm>HM;p{ULL+uLtXl=< zEM2lgy+YIUq7GU2pAsX)*BlVB?t9mu1wsNwwPP#lh;^%H<&_0O9JX$Csv|(1b*pzY z1K3&j7h-#H1-lVCUJ92_MQD${1?k*gu-HdmZ0O#_60aU}9w1ybVcwR48V_)okyaUT z|8>tQmTCJ&GWwW798j}8fJ#k!cHC?wA z9ROQN*KJE|IbF9cv88m~w!}K=x^0QI({T;A& z*AqfNRK_>MKG!B8iu+AbG3bBhPPAKtqgSuy;s*A40X92tgdev>cXK4s7pmk zD^)@Wsp}|1A%c;*&ds7^U5_`aB($uqWkX#Ale(^Ms7o-Xu192eJ9XXCP?ykqb=}@j zm&?KG`lg|-4y)@bLvBJyT}K)U5scJz-z-Y%dYn-up=EWcCoRiXBAC>5HA7v3Id!Q^ z>Jc$l_7;Y^gx;&`c80oK4(6a9Un&bgY;IVWI_wxAq^=_jg%FkWUFT#`QrBY*bqOu2 zt7Ehh!KAK34Rs0T)OB%&x3jLB8|o5zuddq~>T)?)T?Y;8LJ)PROTBVls*4a(*L4hq z2u9WwowniL$x%XGk1?twD66Y&sEc4ymx`(rh=fPuvO>)M981S54tdjhO3M+tR3+NhGCtge=!E`mv24a2$wbLx6% zhPPAKO$~Jky;s+*4RyI3tgf#a>RM%Wsaqwbx(Fe49d4*gFj7~vEXL|`lu(y7*bB<) zY8vVynAG)uhPniE>UxNwF3G@^y@{bNfxWtJWvI*LU=CkRDvslme1wgbW}c8mX>I0- zSrn^AP)j`f@|@{w>d^*@5gSM6sNBbAQ7YGx%G1(ra$2sSRIVizhCWyB;|y9ssa#7c zPfIJ`X}O-(mI`BtEBCPmt)Nt{C6%Y8)vB~yPisqs&e)av7=u<&D%XIcT{FXkWPL z?w}UkkPXjyO&3)60->y9fl-e_KLzbnf_hMN(l9r&QZ@F5gA0!P`C43VAzX=fSP0kQ zibz!9M(>;ih5N|o_YVh>GMXMmK35OOQ#Eujz0<1l$sBQg1Q!r-siTEsnB_NjfHd`U z1P-BVoka7rghmj$Fi?IlI~puNAiyM1{Z|%i;u2a+Hyf_u8z0MLxG_^MiFi2#n{DpV z4=sk^J}^LIy`UQU47@<~W9D+Yf#Y7iERl+r9p)2Ar5-MJj2Y_|vp$R$%hToRKnmjt zW?VlgKmW}PO?_uD&4JoA&Z{~Fonc;#C}`I>hjP5nyV%9gaiM52LIjx+CXZ$fIL8`= zcR9Bv1MFdlBZzqp96e^+7I8x=us?@#1=j5fpj=-86<9^9hjVZR9&F3U8Mp#x)@0xc zoNXHjuKMi5K{Ly;TDU%g#(Aklh^=0-tY22sy-IFeR&bW}Crc;~lV#n@(u~T`)UU3k zC6HyQMKhhjS=PvE7}}@ihPks{yt1sr?HW{;r5*qai$?+6Fw+_i+%W2vi{{`g%d|Tj z50DD%u`8e~ONAB+xkEm-tcz^mv;C93`h5aVFsF3&Mzv2L4Qb+}0xf8OL*1yz4jL=wTaZ}=5!2ur z9%jKhQ#pUr7zJrn(Iqv67=|r8zfldnP7Nd^ux8^sHp@QVI9KnmX_lK44nKx_fMt+i zf)U|$F`MF{lt8nb$_lw61?CLABL!vv3Y^JJSP?~m)(h0YksgcT9&GIE2kS^E57Ecw zX(2m;ihFDWcuflQW;DX9r;If->@(^ZA{wF(;#;TesGK5J4GBQyP(_3KU_OP})O=$A z5!Bi=l~X}%NViZ^p8%y9&Q^g46G0Qr3&h{wkE>bb)R}lvD!>1rHl|cM{=~EglbLF) ztB8v3c#1H@r>pU-0tX0zvDrnSi}!?Lx&qP2xZ=67Z>aZ3eZiw18TDt>EY$HWHW1Bx zj+>i-Z4k>|7eQhXa5m5-6g(s?)7Q_9a!`RSvVdx1t<|5MPQjNCG?v1OJ7~PQMGHI6 z$b%GCI8Yf;ju8uddxneFc)cd@Ne|LxWGqG|(hwmcJL7Ctd47OY<;ie`dOn+s^o~^k zk7lr(DXzMyRRo=3bGVI-XT3F~QM|BlI{N#LT_4)9?&@7lO-f)7`=PPas1HWt0aa^^ zfu{y8u$>jF3S@Bh{qq4-Wn&c8^jM26j-$9zkFSG+sK%~B&_Brxfz_>*2&3?m<#&9A zLE2&u%?h8AG%dKc7gUw|*$~y_kx4C?ie*u^Yjk)xjiY1~l2QP1 z{c$0d#;CI+bw*IrZn6EoDG`@R@m|6ZA5}?%kw|zlVTfoUvBNOkY)rxVUu)OJ*`|72 zN6Ryu^bi5W3r{ZTpdhdbs{%ySG`}-{|yA#*iYUkDKjyfXO`{@s0?)`+;^?vGfp{AAIFPiyp ztO+Uie!on_l^%|Izh5T?rg}g1q^vH{*=93Q9+OhY<>>EYzS z#E1$fVLk1C)u08Qqzh;_F#|*RNuG$I+-Ud>(4w&?rA2g2Pa7F8(UxfN3J#eP48G+) zD=k(cA>#;)L4(MN$&}+QV@2mUrF*9-#B$WS}gubP4`iv^$Z8`e3!pC@# zsSYn1msTqdcw7amIRm^ALV=#kwUsKF4icAhaY~*}w(-u;Mlso%HhxkyLIo9*wK>M4 zO+4vf5YC3haITlaD?&h9;~}2=Ej^&Zimd{#Ee^06j9V{E<8^eI=I1 zr7y?wxb&r19+%#U<#Fllj65yu<_B_8$Ig1bhMB&Ck1{L&GD4JE=}WL2E4_om3s!m? z%lKA$3rA_J^rl`dBYQx7MgB-0m%b9qnq4XQico_k<`jHs9lQ(86DT;OhJqsnhBy@bmv!_|@Z&=Dg!H7~ zjk*k^;HU*c4y52wsJ<`*EBMs99IW8u!)k~HV~V$M)4WS-@d8)!3^gkHSJdJKX3v55 z(b5Et0B+Nq5FNP+;Xnowpamvm0qt5boUASQCj~0HWerLfo&wqt)ACQEJ*5Vv59MH} zz=MZ~%Yun2rks6LD6m)o@v`pVKwlq6;pzw>zYL@HqZGtE@qW5d9*rS1$9<~>Vn1Uv z8dA8iU{Wo@;CpLu0JAIuVmaffIH=YU`C_zHtm}8rq(Qbe5f!69!7r%om{4t;>`@B* z8+91t?tVJf*xf&xbm>cKsXha}s23<=zMm?DLyV)@V2(xKsJ|7^tKtVXEyFr$5LL@F zmO5W(Q*LbzurqpoSmlxu-4vb@S+z-}1-1-<*KsOgYd)c`p3j91#GC=+TS~7smEr;# zPXL++U~)jjy+>`9=sj=@1e7Lc(M<{B-JtUfG+W-O3iw-!L@9<=NUC2aHH5f0BiXtyHHGS>5b&mY}7SwFYcq+ap`cdxb@k! zc!5KYfpOq{Y&bR+F-ynp)MqHL4V@b82&aVEvDLkv(%J!fn=4T^E72L&`^ zacp&zOoKH4fMc)Ne8sWnVN;1KA!4j^Y!yMT44)la z-9RIKde9rk_iS1*4s%e(jc%T$JjkXL$5to#bg9m>_L`aivb_*q;e4z{BL& z*9q;>L+sdJG>Tlu&2}EKRZQ4YT7cx(CxvbAdAhd0YuGg6*t+ea*;bq(nQe&=`L>H@ zTORan7tOW;IG$~JP}=UoP{$thj{Vb6ksfBpzS71xW}AADr}SMIqByoX{aAufvUBX) zhRw=F0+oqaVBQ{*rhAT26KYrI*k1~p&(k``zP*jQ#=X1gxOBZm9Q!`CIE5@S92@aG zOUG{2XDHCy1vO{m8{wV{JGQzjSsE=sZyevXX~nV4L3znJ_5*E7acp%_TbJq_Tb)bN zs5tg4Y$|c3rP8rK9a?~g$pWq&+MI{jvAdI~#S4dpFZ@ z>He5F_M#T2?Ki`*5yiK3>}Gw2qH)`>4cYicxJbs1t#0*}Mhnmz$9HU6acpx?UUrWC z0Gm=ATOBmfr8>t}M{YDKj;&5wmf-qw>DZqNEkHbNnJwV((B?eEj{T2@wBRb;zKU_L zizLTZXWca9+WyXA(}>^dwu@$4afW2JCBER>E}Ct5(6?PQ+X`SjbD6pW+TG8#49A8x zXn_jfp6YoYsI0 zLYwmtJND-dY1dbrV?V>@Nsg@!j+UYd9oXXSqoD1?Z*|*6v#mHoGTRbA@og8)wmj$^ zJDP0;uzpjK1oxmg_5(v5d(b=fk3&Uzm>v6FHpY(q!BEMbP8@q~d6Bd$99um_T8axj z%S6m@Y~OUxGHOEY;~e`R?LwVn-^NCrW8cMeT)F`*j(x9MJa}+VOb0GKMa2HnvDH(H zRtCC25!7598&{#(u^$rF+=JdY)TvxyPK)M!|SWvTdj@`0J z#jz)b!0W4}V}HVO!d13_!$O-A$A%_pRa`|iD+K~q8L^*k^CZVsXCfmya_qmb99y?t zG}{u#t}-OEE%624cF}ChgTC#e*;WAKdGEj|JSdL+fKbOC^p5?bP>~*H$G*bG*s-s& z%M`~hEH9FFg=60`YyvJ4?L&@zxWTn-x@X#4o#(2s+0=TTt9Sd)+r;H`EZW&*kERd< z;@D@Jj_q-}LLbo&rhDhTtu>U6;{~hf&S`+JAP8w4{jxrHD3uH7mk=Pij=qCaICXft z@v>UHg>!)c{d|8={;IxbF0K>cE7+T?qhF5o6Y*b)^%LQpSU(Zoj`b7aEqx)Gg?DJ;z3&Qhn0I2Y>K2uEzE`2cEw}H#L=Y>7K1K07|qsws9>I$Bsp3L`P zcRM(R2U0qO`h-M04lzPeW@5P+pup!bz!jpv4P^oA8|dxu4mGNy4*!*@^sae%de^0n zo5=hSE4k2jkzMW)?bqKs$&Fw{9zrb;dfKGx68819NZ9GdXw>Clm1?Y)sq;Cxk&YkR2w8S)BVuIL>0fOW+9#@x)i() zPP)P$2!B?tI0YG4Ta-b4yhIs>%;560Qd|NwM&v5|XF$$6qYUR{1YoUEhDjy^>y0uz zFl|qffCW(NzkvW#M%97u02SpNNHjY}6o2tv_37&<1;cln?i3xi-J_dSYuhw!JT0-X z?cS#EOP-Nbh7T#blgh_c(+S78LU--$;Y%iN%?fX=AjAD?GIZL=pr)-!2`fv;khWJ< z#BM4=1?NgQ;50LGG^?}5X^!0_#T{#M;J`C-sB>z<0|772z|{@IwEV1Jyz8+$R~hsqYz^+6-gQ zv_L?W?i!64(dabeo3FhtK18CPxi^{2`)hj^o7?z)ixls%DJG$4n7^vUyQ$&>`W_~@ zb^QBj!vypLTxF`GAEM#v@HNEftHbvox?df>-gs)m}NzUZWWmD4EHq2ke?YlXbJLEbBs^XsH+V#&{s&L7V{w{pfr_N!8CNH>1@6^0gsO#yrtuD z!xSEkm)2VC=KAvKGu)pr8l|~XOr~;&j6W1pT0#w3$W2+GG=rbd;@C63{R)H z+>)nWJH4S6&^$Sj)N^(Kk%vhpCBH4O}1&chaLN ztroa;S}p{YI%_Sq2M9~KY(j|X(L$gLiwaOv#}QWyr`zKezSt}(K+T4V52mOPL%W3; zkVOTkspIS_DnvEJ{|z?w!3Do^@FvbAPBwE;hx=?p$++BBa#>kvynBZ%%S~LpPn$|} zS!$v!>a(<$@$||LS(8)~-NEg~gf*Gsp+E-PnC)i47Pe5bV6*W`6WnO`TNwM*u{$LY zfoM33DWE3k)H&Rcj-G5zRoY&hKHO*_azh4cA~=BsVZEk>9f1tgL=S7}daFB|x6!ZX zuoi}e9M;6Bl46|&Mz-}c@a3P1f=e9z=`tn~8E6TC12Rwt^OFqJ#v2V8sD)`y25KU# zRx;tjJCoF9bT>9v(E>Fvg@~wumoXQrftL{fpa$+hLp5+4TB?Ct&{PfFgtjagL*rU^ zYc$szsHMH4;Sh5Cd4`!2GR4I-99c=G#?WTJjj;{r$mmvpB4GLRZKf?|sv;<8Sz5w$ zY%@i;^B34mo6PhjwxmsAx@j5=w6l!s1C}iTTGAIJm7st+`ciZVwRME*5NctyI8#>B z>}{9u-H4rI97s>eaKoaHGg(%*!O#kf)uP(M77;3zjt5H%th=J~N}Ydcv1ht5xd&pN z=CE~ah2^k4_{hm&Yp}~4HpFgV4jVMSmBsox8hY6PQimR*q33vZ8{akNMav8CLLEel zP3KJ&-qwdK%5p2b)p$cKeG`W`QfFiO;Tk;n_J)HCS{&HyH~!gZZH8C%QN>WM6@5H8 zgqHP{gb-T7!Ti*+xU7!pO$@b7Z(^urdJ{uUYrUbrLIt8f~$K5Ys?$cRQ>P6CLaMQi7AhI1S+IrIk+Y!vfxC-8a4`o&yB=wD#1+1THyP57zQQ{Qds2tD z@tSoV-oj#Y9p2P&?aQvWEPr?7&PK0P!n+!Gse@M=cddh0(4(eZUdenJVRdTYB`iJH zz@0{~4sIhjT@5vTJ=MVU1(ne%&HT~o*;ZwIDc`D$ck->ucst*!jJMFLb@DYEDqwfm z>O{Xg->d}h$~P;)tNCUncqQMg1TW{CmEfg(vl86NH!H#Ie6teVGC#@KAPH__mK$$& zOmWbZcJlCRV=}{o^l^sKU^1l)`?`aBVDEM{p8+{Bk2osXKq@&7tH+m~%IAo;>d21*C;Y%%!s+O{C*VzEIMln+kE@yi71&L3>g%@DeDG&bDzY zG9H#Iw1r+dk2VeO6gV@}#gT6p_H{*l2?@sztg2%WzG2P-Lwf}2oz$YEnxABrkfi5X7o;Y~)cZu}~ z|1~1rYl0XG2)swacVmnb=_L3D?R&@LGoemy;1`&<6C3y=lA?*8qz0I-s|fQoU>``j zE5c~_8e?u93&m$jS!Vo&UGp*^t+Nouoz#@$AM6}XZp!ibq&=AjNlx$w6Rj~ko~#ji zT^oh;gr+lPTsjk_u5~v?_)3aZ_V?h%YT^e#KrcIouS}Yb2yuQ&a$s9BsXK5E_TP9@VoOAe zYee*f;lc#>;|4S)DOq_ZUo>}9meInv~FVAI}@Qd;+ zmhoCNWl>j_ViqfeUzlgHvS@K#UYF0Zy6CJDm&@|%*hTn*@+@{OTC9#&q}`RTYpY2- z((^W@N~NlI%NNpWFIXFIuF29_uuk7llVxeqAxYj?BPuKPPBlDMgvaY^c(BTL=QFff zA1d@}+_G(MHx)M~$-q^;lj&I)K`_9<#^0TEX{2xuNWbgD$A&C~%QC7LEq|^&Wk+&;jN( z+!3wMF~ov=eU1T^DT92#@mbaIaV4fNW7(S ztoo+M$wGbX(vkd49=j2(vR00Eb0>|pTRUm2-QG!K?aodb!>a^4Xbh)VtnQ?- z&aNFbw%a%u8Q40GjqTu-ORb$Ww$$E9V@sW#G`6&~lg5^ochcC>%1#`IhOD^cP$fi)=N9& zXg5>@NG&S<#uN|JES%eoD@&7Pn(1y%=&KZ_m&-sIu|#t7WQOTE^l{l07r5h<$XS06 zPB8Nt!^<)tFI}fQqC&|_*XfR^fV_15q6}MJx>ipylqw;C=!_ap{HHp1pgWy=^JKkV z3MSrkDwa>ZK5d6geD3w>J7nUMug^5>L<@vdy1&ZH?9S=lB41Ka6ZFcHqP^ zKPxY@Kd+k}QWY)I7D2jRE*NhSTxxuic%$Ej1+?6wI0F2fdwVVnA8?tqfF2ws|@1lUBN zFI$hYMX*tW(lN?BEuEsY^x(D#(o@D{7XWFC;CUurzeRAD8gw0-vzAOky9c919$mxY zQyv{+XEu)xurZrQ``DMwqdjcP=Fu*8Wn(=SRi~S_t$^I=re{=2uxXr85s*9G^j4yP z-06NKBM^7GA5B(bg_1ghpJWKRGe`}Q2z_UuLOwVHuh15v?ZpbL&?dTy*k1*8ok61x zZX?=74Ry=tD-`o4`U}Fu8RS3wP!6!15JOle=2IS7*bs3O5 zgD>X6X5&jqXCMMmXOM0^mNg+0jvJ0Z-x=Ju2Bo_ud0M(r61%f-cAde|bugVqtD&aD zXf-gMMY9^ubp~I{gH5bJ+mzfHq;qSj63-0MxwU}Y8N4yWmOFztW%MYWK|22uzJ#_g z|FYXaI)ejdv92?CYYwED!7EL^zB5qI#JVnsWD;~;KN6pyd$6!-dl7)=oakRrE4Zz_7`Iz!7?kPkStjRpB2L&sQ< z4>Bx4?eSMwkO4~sC)8Dg4vpO=`36xeCX0#=h{4qo1#khJp-*8;u9;|AXV|320H08s zg%24#vNj7J-gthUBqZw9YcilN1x{qdHl;+R4F8)-F&eEQh9_db;*oUP41P^wb~w1= zvS6ndInvAaRSsrSU^6#q*MJGd4~&ON#{{3cDC47fm;x$&JP)6aYF?FxHvxahg1Nyd z_#6)B$FXM6VPdI~dQ^6-DTP6K+QD16i|jXWhLz^poQ-j9bmx4aM2x8Tz-z^idIT=? z69;eZ3cY?(sLMoU-el)&MehLi+wv84+#uM+2{Y>O5`Fa2kS=L967I79pNyoDmnY(> zf=iV=G0|_Di;Dfm|3^Mj%E7woR$569P7eCJ`A)>3zluO~>6q=&6=Q9qqFu&a&phoC zE^X$~4u-%y+D4qAJlZnvrh1v12tk;kZBl*H)f!hLpey+r0bS152V3=-P~agYldOleTu-k7hWqeK63`=pEXc{V4K zzV_K0TjBxD=RT7%eLW36}x~=;IEk7);Rv(fR7F zE-og9h9eWh_2Lx>F+e%qm(4M7IX;!EB4i{E_srpIf}fkivF}Ip`;()}nDz`7(-ywT z<3r4XH1RziuhLAXysorBOpkN&;8Nqhd9Y&yPbt~9@sXD;vxR2>vS1Uz?^2MKO;N`s zT;|P!9ULXhf^A&o&4MjVoUd6r zB^YN8>tM9ZVQu4Xg0Ei-UoAO0ic}S!wTF!(%>A^9GaM;|#Z`h%F*wrl+X9g;-ju~w zu=JWrB6Q2xX3Swr7~6ALr}5S-*2WVhIl5Nk?OCje%T{UC{~uxJ9Vf?;-S_SOP3P{J z4Zuk{IkY8Nl5N@EfGA70Kma7+BS3f;B=2Nf(4BNAox&-eoD`6A&N=6tK|~Tn&O}a3 zAV?w+L?*!OSHB56J5#;)2R>7aUv*bkc;ENBy1H8CE&KLvkPs|Es+S#c6QnxLD-FGS z^Mti>>s)@6yz!;Xx_rx%-n}X5wmiv6x-Cy~l5WeBoTS_GBqymYPs*=QUQ1B}0UAjr z{T0f-oh0c;mQ47oqkctm6s1~u1*^O>yL6SUFy%UqXbzL-3+jwdlcZXiqbjeMOl+&8 zq9mzSUNbE}N@hmYWu!Hi*t>gIIivm(pH)p&E9;m_ePZw4-Mh=Qo>V}sv@BO&DWKnP zMQtbUGWpmBdG9n?t(PW9R_mmy$!e`kW|sP~rbh8_jcQ9My`px6D&==mW44-&?d2t$ zM6sRh4wxu5$ewD6V!h@SokE#)G6k4;WNpRwH6k5Kqj)&oi<3FAL0+6JKW$E|mrvd# zigmIVNupRQn{SkwM^j_=w4F7K%xj%AjLd5tHH^$_9fXld<+Ya}FG*`xu|832kb9-1 zgE0FB&|;SdUf_XYsE{KS6w+I+1~F_l2l*uI7zCj_%unX zE&d!(esZxBNgJ4vdQ_j=2ZQXWn&qv%tpg}$VROSnYk;Y6w`^A=5wIS(glx&ISyQ9wU5$L7^` znirFrk8P0M9!kAbvsy1rkgV2e-fnI_wzl|V&$)(Bi_EeQheZ|$*?{X^A+9I=KSZ}WU*Ghzo{Ggc^_K7z)cmJ^P+#FJuk&tnGV-oQO=W= zPdus9QdAR9x+8Pmw0wIxUXZ$D6t}3q+?+?9ST@I~4sG_SMITu%0!ZF(s{I8^r*YNs zd0p)=*qW~P7;H^fy9~Cbt9=Gr)74IcWwDUDKKTr6oos}Wq}9qtB1&DLTH=^>piS*% zT}dl)JI!0rMMpQtj-{;}U9a)ZMMu|ZymOIUtMSfCrjKiqd&;l1W#{CE;%`0W`n%}p zdU+8_cjdXG>k<|s=j2*hh+Jw`%_r|HPaKogPMVEDn~&|N@y*R@2aRuTR@-ZQbFqO;WWw`vk zR#g5~5Lvzlx2h+_q*18+s~o9cFi){o*4XH}oBmaWpY*lZk z`D&OtfByIejejoI>oxwlSg+Ig=VHB9v!jz*&n*76TV2JiGXI*_YAbG+ITEF1{cE=t z-}TG6p(44(R{_iA7T**sms@<1uv~8OJ;QRj#n%vvWcs*n;$Q!nwqiM1?e0+OKvl(Z zvf3V^6c9K`&l8@~u)9uM>hlFM8*-EufShk*3+sW$f zs=8bi6zZVlQmKVXu` z_QQdBQTxe35tWw|IPB405XE+~Do1y<6dPprGf}LUMZ1Y&oh-dc6l-OTk4{wnRfbFX zJLhVkDHke;T(3QnV$vv7E>w=x?WO%(SBmO!ysks(U*(F*pE;>3QvOxWTfUQLL9CT^ zqq>SJ7b-`VM>gt6inW@^Mv2P5$^|XfUM~G>;^iv;D&pEQ|ESKJ^RJ?B(ds$>C}XL7 zXFGL#UT-H4VoL8Xi}ePH^;*;GwI7jaK7XB5y|v?OCFm=C&e>aeS9!Gj`w5D!e`Ud) z`sR{a4Dgp_U04v?X@aYQ*q{ln3Sxal`LstttkVSH1+i8Wg!j(+L$$`I{KGN@u|X4@ z7Q}kZEmA?O(|pmiAgXDj(rJOb*tz2MM6HuxDe1V5LZu|FgFq=sYcEVn(%K15>SV2Dl2$7#bxR-T^rpX*wFSSfk(9R->DM%8q&Ji`KAM$J+56Pq+Lcc^ zO}p|br)gI{ z45M69o=wcUW0KTPwogqss-dEDl2l*un@LigY>b_7!rF@8(n!h=%0Q^pNXpR(%6=_L z(vK|V3Wp1`vRl6XS#thA>+C?c@Rl6`H zt7;dgWL50~Rp#MxYkXczP-^A2pfnDVFE`V}$zp)={c;OpJI!L8g4m!5j0$4Ce0e>w z%sSo5+5837>Q>I?meh!cD_@M$J1;iKVx00ac>~i}SFhQ^yl`Zl%nKwQSu2wQW#&;> z<5RvKCx6yXn)Nt&t)pf=PG0MvS&x&~+H2P1U8TRvr=uv=b95L4<}~* zt4UHjo&U(M@zF#kS*c$0Su@$LUX@j+TQQrJYBirVlhzjxClA`nzn0lMzsBcVnu}M? zPma=!Eak@JGGfh9l+^yN<%1{xeDZ+iFg}2+(=5vB-AJicvnZ=~qq=#M>(E3iS*cbR ztu*GIO8S~h%&+m$U1IKuWSeqtQMATK<4cOx_>`~2>0MCUX;$Jit14P6^HPOlRlt_4 zs+cWVRbgA<9#8EZ)i?Wcch4?epYPI3zLX$u`W0B+tgB4jMJ#$rq*UzD?S<|F`ogO^ zrFvtxzFqq?z92Vlh4*MRS!5kr_g>w4%dJ*xxw++IoZ1am@`g6%!@x|{7mu7mU zv9Fv;Wjdy7m29nF>C&T*e19RaVsa8ztZ(yMJf-ExiRA0aadH{m)QjcL0NpF|c&nM{( zS^YwiUZ2%3Ch2uq{Zf)%o7FET>8yW~Ec|F`)rIz9{hQ>2QVBZiuQrZI&{_W`*>5UA zXZ_VnwFx@w-&AorNoW0=lKYSKZ>l(3Hg2TvA19KQTkD2Nxt}$aUeu#0RV_PZ^;3ygkn6^oi5YVJI4dzjt|N=S zBhvB`>vBCgC-DrquAG~gA=j7lbYnr)lC97ruQO@JQlS-^1Tm!yk!G%!B;+tAFAW16<1RfcRkG*xIv z12g3MGVvnobA6e3k@dO0OuoomXHH4#tU9(slZ258y;+w-+qA?CIkrvLWsontKi`n+ zP3?GKhFouI$AijHpX<#TNk!D>dQ;ofJVUNGwN1?ox!%+^H8bQ0r)_Fx$PrFE9#n>G zJ0y$;X2|ts@ZQE2$H*1 z$cL%7T9cb(XQ7s1YVH;ye{|7D4#~$Ba#Qg##vDG?CgGB)M=!MvRM9&K<#H!^ji{7- zMMukrp!c_?%PwjMOXAqB&lerfJ++=DouR46@2dN@e{5CnBoD7j`!`ntkC#jQL8}?$ z8vn4QeY4jneUxpX(&ld=caljMT?^%omf{b!rc3EZv@Mi7o-Oo6(iw6s)W21|lRSsh zwUCsMZ=oNynnAAdkF+IpX?!Mk1(RCU>tw!D*GBo{>x&;g7Y)L^-cH_$Z0-0?G9#y} zVg7jOg#X=Y2C3oyZ8d{zT=-LMHx-JIuedzZYL0sOUc~RTnxnl;MRzZ`r_7GELMgTK z(V8~eEB)@X-5YbAQLinf*LVB8l)KB6jooz3rB2cF#cs;xo^RffsHi^*8JhaM*jx4h zF6?8b%Of|^J-W&yUtxnJU8XKC^?6Y?bS`Y1rpwd2N3Z94zt~HC^0VclvD4KDRJ2#xuy)EpqEC-$Z-%#TU92?|s}-edU>#o-JOr z-BRt@^?P0AfoIDz%g!@uPN;9!7hjU^y*+NWJRVz6U-(X6AxOpd5{{M{%FIsDD)$yg z%S^*FGUaxzc~U4ZH+FyF#V%?))1pm4O0*`yL1CURuXTN?v9UXME$p5wHp!y0@*`!_ zpI$FE${f|7mS2wA5vb`q-CvO+3qH6|q-Zkt)l>D~#@1wY!G%Y2Ji2?YT8@F9Le|2p zMX^#_@u6O*lW0JDM7_KZs1+Jy7Evp-6W^~D+RK{}TA_oyQK1z&%9|Kkp_9D9p%psI zn;+UXkx#B|NKn)&Fa0s~;$iekgZLJ`(oWu{*DLLl`b!+is)S=Y3M=$y>m<*F^h#&( zTUw=Ft&P+x%9rXD{9&2WE~orK^UO1?Q+S&<+@CKwC@-mHPc1Jl zuc*~hdPOa=(kp6hmR?ayy7WqWnK0KY9c101Ug;>$BlJqAiZKaF=Zet@%_BCP)N*xo z5|06OBuE`(lad6fqfG54NS)*!e;5 z!`4(eZ`nnUck{z0Z`wr%)+0gcEQ{U?5AWE%%~fu( z^;n5kCu^OOj;ohdQb}5aJjqYe+R10llC<`+xqOn=L2jFpw2sA_%aqiilYGY^>A23a zi$;PbCZAY$vH8Thi_s_6U93K_?qc?dbr-u&th*R~(Z)J0>n@g`Sa&h~q5-Sg&Ow1-FGI`j5_TvJ{i07dU67mmvl;AqLs%S*iqBU@tnqSqmLWRa?t zlefH)C=%6L^h8lDWKR^;D)>ZEEul{o)%yEHv4gyZpD1>e?`$NBo#X|>M6t8Hn%MHz zvA7XxWhHyES|@8MlGS=yKcB2N$jy7Q+OFa+T2b3q{G=7NgRGTEK66L;=zX%Y(MoFwJz8sx&J{mS zZYv>3E3F|6(YHpPBEP0RGgX-c)VD@fZAfU1tlBQ2HL_~^gx1Ka9THk2t9DFijjY;9 z=ALw;E~|Ey>4ij9zHh7_8$4FNZQM$0$ajtPV{g%S-w@=N^8h>iuIO~J+^&9 zYvlc6(PjWe9xU$}i&nrFsd?X6v^eK zD!#Fm))3#=N^6L3Y^62CH@4Cm;u~9O4e^bww1)V`R$4=RV=Jv8zOl8|=qwv%B(|0K z##UNGe51ZK$P$Tni#9PUvadW#iZ)p(Qu8b++B~gD&9kKFEh4J2^o}5DkWw#}#_l;y zeXsjcf>tNmMu zry#1HDB2D+-}5}OvuH&hjBKHG675uSiA`lUEJY zuQ#{6Ak{0H&d!&q?d*J++RpC4da7R0oHi?}UeR=RR#YQi)7e>3jd)FG=gVv=eqTIa z&wQEM&d!&q?d*J++RpB%>e--rMKi#%qUse*XH%?KBVIFxvZ5OCnlY3wQ#-)&WokP+ zU#5DWp=`wG%WNusQ9s{&omfxRE1EHs6;-cjIy)<>5wGd&tf)r3rnB>9HWhCU(DH(m zXP8u8m3*1n&d!&q?d;C1r|K2WX|tm06%8=5q8jlzT75x++2Rm`EvEWpD$P6`}uNJ@0Verj`4|Fq@=O@tf*GjYA~M_pAoTW zKbAaDvSJqzi#7{vDavlEvJq>-1<4M36(f^G*`csvRFWufQp&UZ^3yWPQ1vX@%cyWc z6jeQSjX+V=Q`ZO-RXuf$kSnvPc%$CZGWCs+D^uSHxia;Qz$io2Q{w~bD5`qu8iAs! zr>+qws(R`gAy;No@n^CM^~{y2Z-iW#`bNl=sc!^E8LFPT&Zem9scQs^s-C(=ps4Dp zYlK{xO~o5S7V4QRQ{M==GWCs+D^uSHj51U`bt9gls;90ID5`qu8iAs!r>+rlWi}P> zj#;Q@u1tL+Zu7Dv!be}CTPrxs-BvlF<+(@jQKLPL1Vs5ZP1u6 zQyVnaGuBb{)PON7s(R`gfk&!(>KcKfs;90Ia%F14m@iY`2)Q!#jgTu--w2E*R6R9d ztf#2zscQs^s-C(=ps4DpYlK{xS}^9z)Hgz|OnoEd%G5UkqX<<`4H#t}LhfEwJ#~#h zQPoq|2ozO4b&ZfKQwzp?nfgY^m8oxpT$%btD8xe=FxFF4_0%;2MO9B-BT!WJ)HOn` zOf4AmW$GItSEjxZa%JipAs3ry!B|gG)l=69x!6SC2)Woq-w3%f^Kh?froIt!v5D42*5_gq zeIw*z6MZA(ViSEMj$d{>agj|{WM#z<^Z-iWI(o=VjB(r@v-fDuStf)Ao36`>=;*cg-%8Kf~Y*6_P zRK84oBNXDHAxTH7`?8`>?B>I)hC)1~0b^EF9MX7)tf=a#agkY3)l(BEZxmlTx_Cmgj{T*Z-iW#S}^9z)Hgz|OnoEd%G5VP zE;iAEv4Nthr^ZEQ#e_H^D<;GVSutTgAz!Ax5eo5;##ZuWszzw}tgUPBmwI&T+e1DN z+f%lcYdKrftaWMZDSNZ)j(oXGqa0cKR#^5(*{Maeoh9#JWwqY&8RT9siu^{&D|Rj9 zu07kyvT0qpjon|CgV&ZEEaNi!mRzr%@=1j5ePqYW@;ChW8l75E+PCRt$xzrWh<02! zLw3=m%JO?jS=2eWIgoryBjGIBEV3PrEGK0_9YoQ_Ej%ewQR$ZEFJpR|Ew(S`!@WnEbaQX`&n5U`nLaBS?c?C_*q%%`gZ(T zS!(-sk}NHUR<_deIgQ5d(yy{5n5=8iHH+#v?jt6HOQI!R>oW^aBcCg3c@8;$mVQm$ zUw)Bm=4EO>Da#A8hkQ5rClf}kW$FH1*{bfxCDlg&xoKs<>Bjl0uGW zo_+pVVUA=e+Owa7t&pW#kC$uZE&Y~PQBYs%#S*%All6-US$cNqA$tcaLe5LNQ0^bs z=lMo?f460$sy0*4X!^d?)a5z#j{VPp z@a1x9lF>%30{fwzt+E zS%3K5)@sx9#a_}Lt&}3w?IK$Tw~|BrcNf{PxRo5z=v^wdx0XX%q)YL(HEfY*yS(&* zY(gkoh02}^LWz+jbuH3!oDgcZ9DzkydcD}SciGq|(tGrJxp!A-@s{JOWd?OE;`CdN zuc9p3Z8iUGa)xJ~?b7(NY`~FN$TKfA$p#jU;@T4nc}BR~UGU$s!Hcd!np@>KmV63{ z_$B82m&unQa@QUb1C35@&mPK@{xrFap0bhS%ksuuVpV(Qs`@vroP!nl`Q)nh%vN3U)z z&&!UXQj@PrUM=t0Gry@-(MMT$?!3|@?;N*$P@QeR+=j13-|{W8Yl=-0qqeM4&)zR( zcVX$#*!{U4yodaQq%7SES^l`BR)w=Pb(ech*=tyCdwxbaP4XsoLY90vYN17Wmh2s6 zV~>|*OI_JsWr*fdn1!K`Y_cLzNJ~hmi)D`74lG5V%FQ;j=)GR*`HXCT)3c&aNlUAP zb7GTxjI8|3#hd32C0WvqNGvs>oMNJ0PnDzM{O)}g1 zT#qhI=#Bcmg&r;1yRuM=qB5FfYXW_b7S2(=q&eT}^{Pi-N$63jgzC|q2|Ze$>(Sp$ z=n1)bDVXOUC+2DH(V>ZXntSv|iPw_t(W1Qv3vH!(RIVl4qiIctWi#Y@w3jA>YVC%6 zkM`7DLN-IzMwcY?MniLt&TGAlCYc)5_h{i99jw^O`3Cx>TIrWao9`kj}0 z%S$>fW6h!*O=@OGJ{i)|2Nh*dL7u$p*3wNE=|YsoZr_u4eG;xz7Bu$i(p$n-`2ay# zIGS%XnU0WM?`1Ml=E4%LM9$MkuJrGcbzW&{%b&!Cobk;>>Q5z5{Q|kLl zug0=DgBBUGJ7yQ{)>&xt!Z{k%7dy+V(X6Y_eYU2nZ-us|s}GH~rni&FOs(ndWf@0n zdIwql(3;*+f~VH>PG$FjEt;^gvpg;+ACX1vqc&S=HG|r6snrZ>Jlu)S*h3e@Z@p>l8e49 zP`D;_w7S7n`u|BdyzBGdQS#My?p*dWs%)ZB>zJ26riE2Q3%Gy&t+1#=N zTIx-*Q`Ik2RQ?OgsHmvw{*&+j;Lm>8<0pUn!@vIPpZ?|F{*8P*Im~_UBGvm@^)aTR zKh;OQi~dxf05AGeeK0)A9c#VNy_<^j3UZ^|@84>cpLyY>?jomi+3n}#+eE$Odvt~T zy`NQ|ColR_eayV*&knNla?zh1WvJFvRQ{G}RK!8o7hia>@s;PhcYi@%Pc2-La?rBe zx-y%qpX)sH(;xllhkq@5S4O$Uu>Sn}KmLh)mNBewtAEL;NbUPK=HFKQ-4(0CFuoms zAit*Zi}Cwc{0bOxKO>n6gh2(U+8Dx+i?deH^RS)Ps(o^ zzZ4&r-wb{^J}SSJ_?7su{8r&##|P!N8owIvm){!vTD(_&+u+yZJ@VTY|1sVszu!V_ zyj6aG4t4Qn`Tcp+#~bDM7tj!|m)~!rUA$I)e-Z8D)$;q#&>>zazyBP+9WRvMe}VrT z&zIkSiT@JMmERb@6VI04e}yjbO!@sKJQGis-(N=8c&hyV3cAIU<@aBsdpuEoe-+Qh zK@Ax0&w+{a;{(tgYkH+}_$ZrFh;{PST?a(Lwsru{BhhQzg_X;_`k_-H~dNbqWpHppT<4q z_gVZ|{2lpy4u2l^kl*L=llVFL?Sa3DyUXu?#b3r<<@Y=ItGJ8&zJR}u|BL+g#NWif zEx*0+xAA|H-xu-IxU>BB#^1#q<@dkgAL9Qgzm53E_}|NK6aFdwcQVZSpq~-{nj~IA zen(njo6dK zA7Y#lJCgVz#v8FEi63Et5knGxgo#FMNaBw%$%wy^#E&uAh`*A=pJ0j+e<6uK#cU&f zD2YGA93#Fji9g3&Bfcw%pJ1L5-;u;$V7?LGmc(CTff3)7#9v{d5nq?YUt^IGe<+E+ z!D1u6CW*hr5+lAUiJxMr5x*;mzr!*kep?d%3(Jl8iX{FwRv7UmN&FwIG~x@A_`g_X z#OEaO|FGJK&q(6$vBro`N#Y-{)(}gzEB+Dd3^7%^;-9eI5L++e*+s0 zu~VmFfPqbhSgKPo(7tlFuVZs39;cI{NmFmTZj%XTVe8hFzo}G#X20k*x zqMeF`2Cf_NUr1_^fg48r=aO1%;HDA(sic+|xMzrEI~7X}+&9Fwor+}!9vEWXPQ`Kq z4-K(zr(%VHM}}CqQ?b&(V?%7*saR#;Q$wuWsaS2`i6M6GRID-Z)DTN|D%KkK%n)05 zD%KhJ+z@MbD%Kn5Z^j2CwZXsuGu|hujRppq@f(ubWMGgPzb>iG1_qn)Zb@x1FvN^^ zN@}Ztp=P{YQm+~qX2!2dYMX)KX1qmG+YO8`<4uygZ;;eZ1Eb7%ouqad7;VOD zB(>YX7&Bfasn-mQHRBbMdfmV{GhQaCJqE^`@e)bBVPJw8FOt+=0~5`7fu!~sm}JKD zB(>kbWHX*4sRIV4nDH!09W*f8j3-Izkbya7JV8>24a_y;agsV>V4fL|kdR_V8$aPb=<&0Gae?X69yKU@eoO!G_cr=2TAHp153HNTQfCdUFysF#sdENan(_aZ)OiD|%=qslb-}=DGyYpiT{N)9jQ?6vmkg{m z8TXOYhhmpz+$gD!#4gRax1_F% zU7B$(N!<{;G~*W}byMupjQ^{oZi!u*@$-_pEp}K_;r0yFyZpObUsRv@yX52|q55+FcxK>h+#4gSFKS=7a z*rgf&hNM0fyENl}E2$?2E}8MKOX{hC%VzwmlKRZR6*K-7NquhMEi?WlNqu49Z8MG~ z^`(J#%=lkO>MOBnGyZ3i`dVz-jK3|ZZ^Wj}_~#|n&&2yC3DV!hHIoDxVB!Ol1Q}@J zLz4s%8rL57;RX_6qrOx!XhIuQPuxNnjmBTPInNsy5y9-1V` zC=-uN5@fWA$0i9f#>A&42{P8i6O#lPXX2?zf{ZuunMs07F!8xbf=o2=g()$E@Xy4T zrbG?GKNDY>5;q9{OnhyUFH=o?W0Eh^O!Pzij;Pa3^hf-bq-K~HfcUbcW||m?_@bm{ znHYrlyrgEE7>xL=q~@3yg7~zg=9(Cd_=u$DnHYokkfi3D7z^@cfr)V-Uly7e5AtP^ zi3uQI7Mqv|@@0vMNg!XAnwSjoWtoX7AYYc7m^HFuUZ2I&R`1$d?l)4uO0*Y2q-*mp4ru0r_&u#8Hqh zr%fCK`Etg@agZ-(O`HJva?Zp_kT2&=yb1Ex8YIXav1!EL zlF~jAn?~G5Qg_9s5m!s$6}W$ z#vq@HU8YEoCt{Z=66C4aWr_s(Ozbj6f_yG^nIb{HFflYmf_!OWSc(Ms%EaG%gx z5h)Vn8xtc_BuGDCLQ3u)CH?~@rsDS`H2|2DA|nO@lT&2GAYe+0j2H||O_32pfN3c* zVkj^@MMew*W~9i7;lTV988HG_kRl^S0t-`Q#3*1? z1D2)8i1EPk6d5rASdk(lCITx{WW*$3Ly8ob3~Wr10#krZDN3d{tyrAUEU!1ffQjM>1R6e%zVcq2s$%mwzQNP&64z7#1iAK0HF1r`7Y zQl!8_;9!arSOgqOkphc>!zof=32-Du3M>VVrbvNh!08n2d^vC?MLS;soK4ZrR|4l! zwDVQK`4sJZHEsGS-c}T0}Qu#M{*VzVM#m@ zRGb4w$~imsGtS6S=YdfcV~PvFXp1q$MPQ7@nBo#J){>YasJIM_lcPHIGn7xg0*tp9 zSG*;5YDruXRJ<*ADmgl(4-X3TV&AW6fRg~(3BJ|T4d1F6fRk0(6kgTTZ}}er*Oq$ zBr+p~w=6~?GgG)`kwLRk_`o8AW~cC>MF!1D;UkL-nw!FPiwv5V!VQZInxDc=EB<4t z+kzBsS&T#$rf}P0B(f-lk1Y~vaSC@V5^6~bpI9W+(iHAmB-FAL?pY+%@)Yh{B-Dx& z9#|yQ$`l@2B-E-D9$6&R>J%PZB-EM|KD9`wwJAKYNT_uwJhe!u^(lO2kx&~__}n6) zHm2}}MM7;#;Y*8z+ML2y774W_g+VrFL$;&GYcM79y&W5~}!f2bbA+M(}#^!9uo)pH~B-0xyjI&9m zy(x^hNv3@%Ot49&{V7beNu~oSOtML)gDFh5d8czIg()`gbPlI5)h3mWq%h4Um5!z` z-6oZer7*+hozC$TX4<^dIg!FFn?yR9!fcy&I&Y>h$CjB;VPgu5ZN@35Q&?h?FK1F% zYLhQ#Q&?t`FXvKNZZl3fpTY{8ams}hR@#hHE~c=`CVeiYu-YblE~l`@CVj4?u+}Dh z-b!JeP5Qi@!g`zZc_)PpHtF+j3L9GQGhz$Rbr z2oG%Xh{ZGo}(F3J>hKy`&xp5A3)>QV)d(c3dZ^N5TVJW>h6c z6du?zrz-pt9@sLgD*O{3*zv!S)KlSsEfcK5KjDEbGpxct;ejnvtinIxfh}{a!aw1G zEt9OmKjDEbv#i2D;ejpFtinIxfi3f_!aoa_ZPKT|C6l70&j1T=*`&`v3vb(`&mar$ z*rd;33-8*b&kzgm*`&`<3)gM(WtfEn@aNA}CG|IxqHY1?X z7Vg-LfW}z(#3p^lTDWVIKI1Ihvq_)v7Vg`m&jbq(Y|>|9HE7=4(YSP!Z?TYS!rRsL;9?;Fu@^xR$G|pkUncH zOmaw{wH78jq|Z7FQykJ~y@ja`>9fJYG>7!rXkofT`fRc=!y$b(TbSvPK3goza!8-8 z7G^u7&#M;ZIHb=u3v(UPXS;=Y4(YSQ!hDDH*=b>cL;CEpu-qYEc3W8CkT0)USm}^2 zuUlBcb zDGR$C(&w~=-45w<#=>h3>2ub?>kjF2&cYst^f_)KH47&lvgrd0Z#rbthZasbWYb3$PCI1Nbqi-4vgw9}vkuvG)51B2Y`SIPyhAqK zws65An?AO1(IK1eSh(bnO`ix$9J1-Iu*4yo?g>jAvgy9C#37p=2umEY>7lU1A)6iv zOB}N4v9QFE2R*_+VTmJ8dW3(%5=S2O2>*m7jy&rT{s~JQdDtWT6P7sgv`6?SEOF#< zkMK`e;>hzJ;h(U?kq17)KVgX@Pke-b!V*Uw`3V1PJaEXS{x%*uWYYi}j~udTppC~4 z*)+(;rw-XP*v1owY#L(YsY5mmwegulHVw1!xkEM$xABETHjS|Hr9(E2wDFZgHjT3J zwL>Ho#<(QcY#U=;l538QaW2U<*T#64=IGZR~c*rad-ZbIGPRY`pH0O?z$Zaml8AHr{Z_ru{bdx@6M< z8~a?c>7b4MF4=U*#sQaXI&9;hOEw*`amXc`j@mfvl1;~K9C68}<2H`EWYY;7$6T`M zq>bY)+4QE36E4|w%En2TY&vb@O_yvsW8;)dHl4L`+9jLL**N2pP3LW#b;+g+HqNblJv5mu$LX<6W2ZdCSIoF6r~OjjJx{^Nx-8UDD@W8`oUY=RF%A zxTMcj8y~u)&-*q$a!H?SHmJ+4QOKz$1O02oF5c=c(|(BYi#-9(bhB=fVSz z^!Y+~;E_IG3J*Ne=PTiXNBVp%Jn%@LZ-fUP>C?}_2rs@Wb?fh7q(}M;a4^aveFi!h z?U6o%9E|ZupTQ2sdZf<~2je`_XQ+em9_cg8!32-=8SY@BNBWF#Fv%l*Mmm`6kv^jw zOz}vc(GI41q|X=!(>&5=tb^$u=`+s343G2~?_j=1zD#hiz$0HKI#}qDFOwWB^2nFT z4iRxUNBS&uu+bxZ7CG4Dkv@wZZ1zZ>B@VWD zq|Z_ZTRqZenS)n7(r3AYZ64#M6%Mw0jGIl_^LNT2l%4tk`|1_y^c(r2TC!yf6g$-xni^x5p-s7Ly2ad6BdeYQF{?vXyP zIym8xKHD6e^hlrW4&L-gpB)ZPd8E%y2d6#KXP1LB9_h2&!C8;=dCkE&kMw!n!FiAL z+2i1XNBX?s;G#$R>~(O-BYpNcxa^TW`yE{INS^}^-ttJFgAT5F`>rq|f^fzV=9;YYx8g zNS_ZJ^z%6@^r3_PK4*nKaxlQ>UE6gB1AX4L-Ec6-=Uv-P2ZMb^MzZ+4QNf#AjsmL|EeUuI;I?#OGbxXTlPncWs{wOMKq7eIYFIdDr%(u*BzG+gHL8 zpLcCv3rl?7wSD7Yrq4N}elBMDWK(|^vwgB@fQvak*)-6_T%T+j62XJT&(g*uJJBb`y|%{7i)ZyYod#_KFKx7#X6tln(Sh|PjXFhvB4*~rn=bZ zlU&nWZ1PF2=`J?=B-acVTYQphri-mU$u-NxZl7$L?c#Nx_xp2P?D2WOKi9<@K4%-} zx!9W>SMy!$%Z{rBF7{`~)j}5svg2xzi-Xy5wb;d>?6_Lu;&66cEp>4uJFb?wIGP<- z%UvAHj;j?ej%UZ!N*5=x<7$*92FT&;6)COfXyyEvO2 zR~uZM%Z{s!F3xAi)g~7gvg2yAi;LNDwZ+A|*^#r=#Z{j~dez1IK8du=#WkNq+V0{5 zpG4Z>;zOTA+UepWpYhNx7uS8pL%Utv@EH%i=HjMLUcK((mQP;oadF!xuikL+u}@y@ zb#cchulBk4#3!%zySVFE3lQE}*A-&&BwFp6;rP2?0Ib`z|I1^mNx;ObY1fK5#KPpr`xL z#gu@a?jsjd1A4maE~W+abT?c~59sM`x|k8r)7=t_59rHoi=77~&BtQr0ZDU5>^vZ8 zJ`p<)NSeE1=K)D`PwYG(Y3_@i2b`ULAa)*bcKV^%dBEA}M`GszXQv;Fod=wq{#5Kd z;Oz7hvGahl(@(|D1I|u=CUze1`Pt`U=K-IeeIa%p@cG%7V&?&$pM52E9`O0u*J9@Z zpPzjrb{_EgSw9c21|&^?58DEgW`Kw70ZB8^!;XNY8RX%OfGip8VPC-K8bdtn5BOYT zsD}dqpKA>Ba4^aAt9YhrrTYrGOr6riaS`J=iP{R|0yl*&f~s=)vZAxE9by&GqnMz}RP= zhmQirKJz_X4;cF_@NgqLUKV<|88G%)sa3^5wv&_RM z0ZFsm!`*fScK+>%Aa6cevR(W_3kTk13JPb&hH69)XB+Xh6j{}lsorg~Yl4iY! zCjm*b!Nb#lq}k}tAM0=)x)5WPsFx)7##A6 z*me&?LOv1O;bCaVCt^E23=8>0Y?p`OA)kot_Anyk$a&4f$dDuFbq}LLj+{LnMu#NL z8y?1l965VEOb$6V_Ia2Ra%}APFg4`ZIN)Jg$gy$I!}O42LoKjUygr zg&Z44J0aW8+N^3qp>KQyvzE92=)SEDAX` z&UjcHa%`OSuq0%3bI!xkkkQR~56ePEHy1oC4>@u!dRP%My1C?GWyt8}vWHb6qnj%p zR)>sk-tw>}WOVbkhs`0W@{WfsA*u4Nhpi#0@}AglNUB^F`wdBz_r-ogQstW1Z%C?q z;9+M-s(k2SS4gUS4e7B)_;^30#~SJ5T1byI%Et#GJ=SO+ zABOZ;V|;uR(qoPFaXqBR8t3CiNRKt%$IXx)Yl4qkAwAYaAGbq#tVupT4(YKb`?wR5 zPg8t+5|U3-ecTPnr)fU!h4g3BecTVprx`vTgyhpq9}h$FX_k*iA^9}h$K#NEn&acs zkbIi!<4H(9&GYdzB%kK{_$(x!7Wnu)B%c=g_#z~q7Ww!xB%c=h_$nlymiYKOB%hZ0 z_$DNumig!xab3`IAN?b)3tHi0K*V)HD}4-%xGrdwk3kXF4zBhwIO5vDH9m$!e4fA7 z$Iyt+^Vj(p7V&xhdLP3h(rbf{5fSON(Z|S$^xEWOR784h_Axply|(xm6Omq9eTh<5!tri$Lxq~JK$qZM7ACDF*hRH4*8fDk!^>4 z%#X;nBR&>HWZO|63nQ}an2$vf*>>E=;)rZJ;bTceww?5`G$PyH^sy`=+fMmd9+7RQ zeXNMcwlh9fMr7MrAFCp=?VOL*5!rU$$C`+2yWnGOM7CY@u`VLpF8Np=F`l~YV?)Gv z>WYtz5#y=1d~AwHzPEjBj!3?Dd~AtGzIT0WjYz)te7qWwd{=#Ji%7oreQb|NzH2^q zL?qt_K6XYV--kYSMI_%xK6XbW-*q3aMI_%1AFoFw-%THTB9iZxk2fNc@3xP<5y|(l zk9`rzcgM&6h~)dk$AO6CyX)g%MDpG9aVR4B?)x|#k$ew)9EnK2hdz!*B;O++$0CyN zv5(^sS0#Sx<3z+&iBEi-j7YtwKHiK-z0Z7{ib%cBeVmR+y)S&6iAcRKeVmO*y{~+n zi%7k%eVmU-y>EP6h`464Ux14dsnJ1EVB_j0(1$ZkW^#%ucJ0kUl z1b8PR^@av`HzM_h1$Zwa^@azy8j*S<0=yrQdLsi|i%7ju0X~RGz0m91Z+w885veyJz^#bXn;77BMCwfn@E{`BCI@&Jk!w=|Jc`J*sR15G z5@~&a z*=Z7KLx4GH5@}<(y%}I3o1U(j?M_0DIFU(!~J#(j?NQ0Q=J<(&YdL(j?NA00+|~(pv!z zrAef>0~}71NbdwVk|vSf4RAC~BE1*jSeit-8sK=EM0!8Ki8P6HEx^ficAa#9H`Cd5 z(g9ATv+JY-oK9!gNe4KS&aRUVa5kM?CmrBiI=fCf!1;7`opgW;>Fhdb;YON7x+C03 zlSrQkH_{~1UExNWM7k&3NRvqSg&S!S>49(~O(H!MZlp=1N5YLXiS$^wk>)DuPlX$4 zuA+V-+(>g3^;6+SI<_Se{7kr!j#HBQT)2^rO-X$r+(^e2lKN7(k&eHX)K|idbo`~H zz7}qz7NW()sPBRW05#rM{6XNv@?R;*C zH!?#0pkiK#eHpG(eN9?(eu$$P+VFx9XEJQ1g(1#n*h-5+oXfD47Kb>WVJj^OaUsK2 zS{mYFhOM+L#H9>dX?cjt8Me}j5LYs!`pOV*Wk~f^A>PiA>Z?P%lVKaK3Gr@*R9_q7 zy$q?oF2vOgslGnM`x#PwLx@`$THnSHw==Z9O)?fTw7$(U7BaNHEix7|w7#t}7BaNH zS7j_@XnoscEM#bX+hr_dXni|mEM#bXJ7p|nXnnh6EM#bXyJak7Xnn8ASjf=&UYD_u zq4n(v@mYq}_eO}%Gqk?FA->4a`u2tRGDGXzAL6SFt?xjHuQRm1gEEdXw7x?!jw(5m zdpJb@O3vFI2{E9O^L9r=46Nk5-LViOD@pa^Ax2e_>L)^su4HeY3^AsXz5S+)yh>92 zl#IMeQvI}yyh>92jEuZWQvGa*iIt@Kxe${oN%iv~CRcJqTnI6xl2pGKVrnI+eksJX zN>cr@jM_?4{fdm*N>cr;5Hl-D^|wRJswCCl2{F5pRDUlh((p8`bQxaSCZ=2LoBHz)o+AYQ%OI6Q*5M?e*RX7 zb(Qq}F5McCJRTq6ol5d} zLWFlK$>WI;u4hNYqzE^%BVuxdo7oXDCBm)jh?pATc6LNei|}!FL`;uxCp#i$MEE2- zB4$Ron;j9eBHYW4h}jYDSJKbViSVG3etvF*hn4j6^CCQ|q@SN3;c+GX{DKIdR?^Qe zjPRtAq*)ZSpu8A<9iZi)uBMh%%gt#ukh$=o6S|4F#6=!lcL>N`Yr$QSe zjIQESp-mCSRPm|M<_P1eI3l)07+=K^u{FYkDvpR(BTTH~h}afkQWZzU_6U=!I3jjL zm{P?Nu`|NdD#nkyB223yX?91LUPaQp7GXveN%MMynN=jso(Qw5NSZey%&sD7_C}af zMbhkxFt>`N*&ks^6JR?+tyiLjxH-sNb7jaBq6 z$0BU6qW?G^VMi7H$B76#tLQ&YM%YzF|M6yo-Bt7-ry}gHA`ecB%~X*GXCfT0qQ#$$ zaH5J9e=fqwDq8&c2&bypZx>{=SJ9F$${4RA`7g=HuA=>3mhoIg-d~aNTt&NlOGa@O zqo}uK>{ex;1Ivi5V(j#;jI}C0-+fO;SQTTUt1>pKWETT@4@AaBHQVZ1grU`Js}CX! zt7cn$DC3}-E%cG}YBhO!U3#^eJiQ^kT1}qblwPeSPj5-DR+FcorkWOTUwWpR7Vsd#x@wN`hY{9SbBsTdKB{J0J(fPI z<{1Ap!lr6^(KB}fi{8HFdoxKN^KB~^% z0}G|98B=~El&WS-*)NUr)x68?pT>o1GHgH^7puvzfoWW-Cc_4$ak-id8=S_KYBFp{ z8gEsTVMEh+yP6Cemc~2PWZ3XDKCC9CMx^mkHRGX?XiYHjcUe2qtm!q&3I@` z8n>z$4~)jYTz_ zyI7OPk{a@5Z5m5!$d`3#EU#f-u1{lS4XLsrjny^m!HsFGtzp!%DUJ0t?6=KnY^YG^YD z(s;Lqam2wi-m768aVU+eHH;$;r}2IbYSwjw; zkkMJgIO1d)cWY=zZ>DjthLPo|H15}sNT+3l)$q>kjEt}v-npHXaaF^$C+B2b)sRi+ z)A*`}E8i~22&>`Bw~J{EZbPD9N@GYHQtGmdmo{wiD>7c%kWz2SIA}xrcw5Fn8`{S^ zG7j3X?cbGg(1z{&o{WPwZ0D1^& zZPHRibIrxS2ejECLFQxa}$W}IT4=lakCjLxP zUrX<|iJwU78|nQv@ncE#%i!ZS^alMixYLHQ_kau@wV^i{n8D*V9OHvB__7V-=fN3# z)rRr&kPHU3LBKZC1nIsO)8aHB2nG#6%Yvn|Kpq73e} zC1V$7aK9}XyCj3BZ8^f0X7Ej0j<97J^!pYmx;%sa-{RAY6&Vct7TaZI2BW@3POi#e z%(uwN)&HNQvs#XGYqD)e%!_kzF05i^5UZpTSVq|v?>9JaV`gS%W@ct)W@cvg$sTpr z@keyTcIKQTXRfvCQx}c*@``6|7ftk%*Vc8>BrkbweHTsklGiqL(G)MW+SodR zEiX>qZQb%x(>-0Z+DlFMTHn0XbYB;(^)d(dchPz;WIfPD8@!~EgI%=AOPvo{f4$WC zu=UpqV~<#Wy-dHOU9`>1X~3~A+Utd^$F0*|^4f_mI^ZRPoa~~5UZ&rvE;{6ev8TJ} zu$Sp~ri+evNhoJc8(tF1In#!hjDEh0j(f@I7rN-A7cyMzqElY_cBzX_d)etOchMOy zEWToD^1|Y)rY0|4y=H3i!j0>uCNH$TVH)z1`fhg7Eib#;tuDIjWkb7dYVyL3J6-hH zTgZQ1^we9(f2J@mumA3M(JL?9c+f>}z0l&JDa;Ea9(BcDE*kEG46nOrl#g`y#(eIhA8*a) zJ{a-Nl;~sTy*JhQNQWOxYd-q%(X{4+#h*-JKDzL^i{|;L{TK7TkBWaah549y-%MdX z>ipdl<|7^cFkSh`gg?7zosV;sUtP4(M>_m%%JD(vKc*KSXDENWXoruS_^*q0`CEJE};xeC#Qsi*(0_7seFnzK=;awn&eBh5T2fr#^H)zDUn~ zWbX+@dg(*$6N~i52Wci1>Aer#PcG6AA5(2gk$(Bm^VA~!@j;qtMfz8$>GUEE@RQ+Y z6lsv3H;FTgG{n!n!>l3=^^@yn7iqYkt#VG0M*88<+#*f%vrEn^(qum;iSvsz)z1dG zph(mGYpZGNh|u1MScOttkz+UbWh8;Z2s zkBT=I>98M`Y_k6P$q}22bleZew-o85AMI|nPW!3uHtV#Xytdss?T6?)igdw`ig#Mi z{it|Xk*@fm{BG;7AMNfb(mg-g-D_R-LxFwPRX>W|ZyofL84eWbgC7bUv|jp2T8E1C z)6WU|Ve4A}W*;fizyO*&Y8?zvwPQsZ96+7Ni!>_0#&V)aqXX3MWRb=M$h)VCG&X=b zPZw!QfU2D-(zF0oJ8K;bP_=VKni0VJ=ZiEyfa5O|X<-0OUbJonsNba`Ee_!Q%htC5 znd?fCRtKosRqIiJ3SBGG<^bxvUZh2rW&^t?#l0`}!U`&L$w`Ug3Id}*~07Wiki4>F@(TkV6?<&F6xh=$%; z#e-<*omD)DL*HA)gVg0ik;Vn7%SZD}u)sg7c(A}f^Gp!sd@;`inLS_4GeIi!%{&ui z_I$T~1erZQ%soML^|MIJgXrp4kyZxL)o<%UkgEMD(%K+<^4}t@52Cey=A$5$?C;RV zAo*&5Lz{vmih&O83>MD+9NHBuoc}qrJ6JgXb7)VnaQ^4e;UGz2m_tW`B!%G)9SxEc zMmTgVh?7S;bUeuBHOiqALDK(dhfW6Z^caUu1<4U(9XcK4?Zx;n?9TS2DUT!(H4Nxt(Ox)X#E^BuYy6SY5J_sY0IrJgOPPg2lkN^86R{I^WL!W|7x|I%n z4ss5%%AqeoX5MOtz6QBfSmV&QLeJMa^gYPg(mIEJ1et^D9r{`5{sxDB1<4y59r_() zB5rc%Pmo)M%?|wyG8?xz^e@Qnx7DHkA(G`bhX#Zo`gVr~hM1Q-92ykjR$-?@BSR2r zmqVjM5NWqVqeBpBk3(ZZoUrV5Xl#hdxzC|-A@cZshsKBC)d7blgy7XdhbD&L)ggx_ zh2Yg;hbD(0{}G3#gqW*G9hw^Al=zrK(?ZbfxI@!JB#(1H*X z_OwF_LuAY|4lN47wX+T_4#Bl^4lN16wet=w4KZ~uIJ72&e=j<;Hblm}qE?iD-LZ4;qI&Etq|0^X5I?1XxTk}E)#=bKz zgkbD@hwg{iO+T0yLNNBDc_BpZ{A6ATLEFy`y$q2+zc}=A3`3 zQ`5t2i_@H%5hkTgcWP#sEqaDi3&Qw!rc;Z;uzi+OOTwg#*-kABbACU^sTE$HUoH`LM-2XatGR&-9WhpOhVb})XgyScbikU!gzJN zQxC%=lpRhz3bWnqbn0;!hwgIfNtjci-A+9XlVA2Y^(>56_d4}F%WgBQ?J5>{O8o`FzM!yQ*Xj}`mj@P!+83LQ}4of`lwUy!+83bQy;>3`nYK~jB8Jr zcEh;#r0FlhOg?4$i!hTu z|Cs(F@#prx{WaA^;N(BkON4I#_IK%1p+^H;`cml8K$pH1dNjzT9}yU zT$&Q)eacvuW=Gj7$GJ2oN-7=i(%dMibb?FsqU@IwU78;)od3DBAj*l?WS5pl3+I0> zt&fs7rnin3?8v@1&5oaxf;C~0$+OM9Y_Yqm>!qv(E)OZ%dv z&ABe^kHWBdE**&CfcY*RjIt#xaOqGKnk{tcaFi`!kxNISYzd29IvRy*OI$h@#VJc& zIvZu;EOY5xl!>$4rSnnzvBISbQT(yerHfJgvC5@OQ6|o6mo7({IBQ(G5@q77b?Isp z_pEd2S`_!Jcj;~ve{68+UKD?9bm@K+e{6E;L6o$)*`$2%NMxMN4dXAANuevlf#ss_O(zF;%yl#4qF{5sno@30Y zo2KU&F1uxVj^VP~E-j4VvO6v0zDrAEOt1$oEsHV19=fzP z#*X;NrFAiO#K-1}7|HU9OB-TLu%|9!$?}`|BSy0PZvKdoEPt3kVkFC-E?tk2EPuIlBSy0P?b6K{ z$?}g&w_+sAzozjR+3}xgJVtix@7CiOULD}plNeqd=+^5P8~q@+-o%(-gWY-?!>dEw zdKbg1L*4osE95`7zQqdp&#mvVLjH5>N34+l-0B}E;f-=@K)i7O;nu)732%&BgW@E- zv2Klwlkmp5H7ZWR8}HWWICrTN+!_<-7GR=Vlj9`3Np4Mvlkg_HH8oDco8s2AI03b*#eanwq;_QrA4Dz^^C>C9@kPQ>Bl8n;fxanD+}F2xJ{bL(=v zz(2Qc#S8p%>vp`rKkIoM-EXp<$I<;}x1Pq){T8>L#nJs%>v^1Pw#}_Cag@E?dLBpF zJFMq%l)ck>9!J@`tmko*z1yu{amcmDt>1C(NcXz+C(i5EeQy1YGxztq^)C+B4wy<3 z)cK&PBte}InMxAW`LL-ZL7k7dH8???kGeG^L7k7eH8eq;kGnN20oP8rH8w$=Pnt>+ zkn5DGBmucjn@SRp>x^5|6V&;vTQd^W`J7v`5}bpacWZWnieGSRP697nG+ia|!X?vH z0xw)PT_xzp71LFMxpmcam0)gNGhHQc%5~FK0;k+CT_teJP199^zTGliCFt92x7H@; z+a0&oCFt8-x7H_^Tld`BkYH}zH(e!|TMtZE3Fg*Aw{|9&Opn~!l_1wWc58QnT=&Fu zl_1wWHC-i`ThH9umtbx^cWZxwx%I-WV+khHOSg_Em`txsbqOZZYqw4&=wE&5eRS(W0-Akt>tX_$eKzeTpxGDGZi1VduWnsQ zaEJTNw3~ot-`%>CfM!43x|?86{^{1e1bgx?x9%rMeZNh`2{z$BZaq)13IBELMS@NE zpIa{zY{LCLdR6G}0FPc5`a960H--KV^5|`$zk@ycQt03ikG>W5# zKHQ^!36l8;kNPKJ-AIoHBn#g`@MvHX){XXPP_pnH1dj$M3*SNTXh^c~9R!btCL!T? zkH#eV(!m6e#wOWyCwep`3F{_#G&Kq9CVMn3$ywDDkLD&}-Bgd}C1Kq(kLD*~-E@x@ zBw^hQj}|6j-As=bC1Kqxj}|BK;B1eUB=O)JkCrC!;9QT^Byrh1kJct}*?f<-ByrgS zkG3YE*+P%DC860OkG3bF*=CD~z@d2~F!kQn2Zs=_N&`zHfR-k*Ob;UQ%T0haO!>!KO#1mlSMzY&}nrnx9zDQ~Y+~sYee| zY?aSEdYEFXeD2YURQ#iDi!VHSnTo%+|LdhkA5v_PuRQvgia)jg?X^cgQhZPTjYmII z?2>QI=V`S2&U~ImyYD?3ktV%<@MvTj?S8brrBUZ6>suOie)eca8vT9oXl5GyeKoJ9 z(cd@oY8w50_h>~L{r&K0Wg7kc^k_pG{r&Q2V;cSaw%VuB-ye^5rqSPDk9MV@@;{Gu zr=fCxulA%l(;DE_-ZbhQ=+%)l+u|Uvj;7fb2YYoajXH;Tbv%tahkA7)jXH;Ubux`Q zhkJD@jXFnobvlhYM|yQBO~xGM)#Wr9bF^1i((Hp{ytW=s7 zMw+QR!K?de)H%_s2Wiwf$*YHH=IUgx9;KP9Q@nbdX0A^4>PZ^yPV?$%8tqQ^>RFo8 zlo?*VOGAN~UcFC4fmvRCD0E@AS04*qnB&!_G-+wBSD(|QrFmX`Nt2f5d-XfbN!9|d z{-jAu3%&YV=+Ppt{uO$(*sJ~-_V^`U4a;!5wA8EN8E%)Bc{L)#3FLCGMrPRKS9mol z!|m`&uO?>b(JHSdW$4jruV!ZG(HgI2W$4jbuNG$L!aA=OW$40suU2NDzy_~YW$402 zuQq0=^Cqu0WvKIJuXbjjz!tA|WvKI3uMTFYvV?sw!=D|fdV_dx|qS| zyR6e0GRSVPZf5ZL9SA(+5x657)&XO^& zcr_$T#=Pp)m@IX^=GE9Nb-wP^)GTDU;nlP(Q|+c#bF+})mRIw#OtsryEzLrPJ6H?ize@TwKWSF9(c7a%WnG6tL<4d`N*psSv2|B`kRFtPprRLxbf7h z-B~u*XGVc6`Tn_AhqEO37uMe_+<0kD&ccmX*5537?X@{MOI~|p{mrs{zV+&MmhJPM zS9h}HwfA1#&63wXcy%vJUi)ZH&XU(YnUk~Rwa;EX&yv@^c=aMnUi)g=$dcE-nKrWI zweO~lEH@WFOdDCg%=gp!o8{Ykzs#3ezPT|tUK{Mw$YK)N5T8aBvzrd}X>>8W=`f$h6tkNS z_i1b~d2NJG({4d4^BhiqZ2-pSBmH=UG1OD`qR2?bH5Z^4c7qjums~FxRK!#pJblKAk8gug&-A zWHB>uflsH3QT9TgP8Xx>MLwM=<~(PyPiKoc&spNrm16SRQlG9Clh>B{bgh_)xZJ1f z#pr&8PdAFu{Ysy17DMV)K0PQ#_p5z+SPYBT`1GO}-LLiOWih&6=hKH`l)c`kkHsi^ zgHNA|*<3gJ^tqUMxyh$5#mvjiK7B1l_gj4WR?L~qR-gVBqx)?>{VQf(Za2M@z~UXI zml9aK)AUk8n%iZ1DIv}6HocTEFZY;UN|={>eVSOpMBL}oq!RMlexD|nkk=0QG^GSm zA2hv`K7|4;ch2-uLYh18)9w<^Kri^Tr-U=mi$3iw zA17J+z~wR>0SwG?x9cjOQ8HC(@P1I ze{6awf$~p$dQ<}CpZfH;1j;}2=~YSmrIG)+Pp?bJdM|u>Q$p5z>C@X1`>VA7=YL-L z^sa=zEcDu^_a*#gp*Nq>FOaKE;ea_2C@uWh9yl#zaIFD0Rj@@q#at{Cmt z&Qe@4#;;waq{y*;9W2Ea8bidHA&!y;okzZd**+70dkkQHm>;`}MOFSFG@BKpETnO1}n{vAwVIYfu^6`)a=imoY2W_%)=A zS+Ulyp=Hd9b$*R0V;ZdYYit>3WE=dNQpPmc=-1RTrokq^=9H0NHv2WVjQq02uX$zU zm#u!yFJl^P^J_sF(_p(_3(MHvclfoajMM#{rk66N!7kHF8Pj05>7|Tmu*dXL#x&S# zdMRTX>@&TT;fnpHmoi*&!1PjvD-Qa#w+!7M@@roixG`IcwT}BGJ<;>r2#)xt%{@r?B4)1?h&&%QcPh&(m zHT`9bD2M33jS=Nk_m456ym0^P*UfU6{m-vk<*>|$_hBXD4-1$U0qw4!&MN{sR6!+I26VWBO0Ej%R0XwK9nk3tG`=RF zOBI|qtqtgM1$*eafUZdn^a3P`=h`dfjD zw_1NIAj3B6Zv|x7ZvCw&+<#b)Dp2uG>rn+N-WAZ>3RJv1pm!Chcuzp@D^T&?fId`^ zBKHOKv4XSk{Q-TdfFK8~zZL9O2Lt+2!ESXZpx+g6<8VNKE7156>u)7n{!#01B?i)O6YwmpwX4o{&YZNE7AR#fTmVb@v{L_qX2xxUB)9+$HYbvSurGVB}Qt`_Ht*fNsR{~mJNyV>P_baLRHS2z5;r!3K zUs*W+v+h?G&i}0YmCVLl*8NIm(i0YC;ufTEl{xSjF3v;XzHRf-fV2 znpp*3Mg}#jiaa?gs5w>Sm(fAZts=jS32H$Vsby?X3#-_0#|5>hiVb&sP)n+y&xD|s zRY9MLK`pQ19%52ZE33$plY?4SMV_1z)W#|}G&QJARk&hWP+P0mt)>UHy^2gTBd8r! zxMF5dd#mumtf2N)F#~1?b)brjIVY%tRj_GpP=~5;%DkWsSK*ZTK^>`L{w@gWXcaSH zVNl1aAlIUxPE>KSvpA?zRgiy4P-m*hIZJ~&TSfX`7Sy>a(*N?H&R3ECR|IvTiWIam zsEbvkpjAO#s-jz~gSuSBJYN&kl`7`>+MsS%F|pSLb*GAny*{YBRZQ#+LEWojVs8xU zeiajYQ&118VBO}R9#+A+EkQl1f^}PidRztTwgvU1ig~_0sHauT^BqAwt74w-4C;9m zB-|C$iz-OCJE)gch5L`7UR6QDy+OUMf`t2mdQ$}n_XqX13KAX&>RlBiJQ&pbDoA)J zsBcyLLg8>w->V?uk)VE5amsWwsGn7wG93%*R~4sB$AkJ^#VON?p#D^G%5*ZQzg3(v zoiepo@dDzsX*@^DJrmTR95d={P(yNs``@63<(N$8P4_tzaUrNtITUd*sL?qTaVe-V zITUd@sIfT|aV4m6ITUd>MuiXr4at>|W3TjG@RB$_} zsX4fNC#Y#TCf(hjrsqfn_kx;{BNf~?m*t@H19MppDnATrb`B~(G9TsO?&F{q=iu%W zb5suQJ`HMVjyd?uyp>}PJ~waWn1e5ZT9JdwFU@5+sQk)YmV?T#gIb+~%5Q>NlY`1{ zgIb$|%I|_&mxIdhgIb@1${&K-kb}w}&7nD{{K*`e<1F`cP@8jX`Co$CmE*MbYf!s$ zWa@80?a9IH@8;DUsqcq*HAlMs8Pxt9TmCO|Z4RRUHrM7L`X6&`4x;}x*XAJlKXYvk zqW2H!XpXb50U;gBu?r0h>3EJAIw+(Q1(ggA>0}OW3<>E}4sHw$>2yIa!$LZfV;348 z(%Bp=84=RCf^tTNbUsH~9~IJt9GlYUkS^xfl*WW~DaWQXHl)irHl=YPUCFU2jSuN+ zj!kJoNY`@QBuxzIdJd{g3h73U^Ww=N-OoXgDIq<`L6E5-J3NQgU`|Lca%=>1LwcEmFY`irm4h$yLwcQqFAG9? zlY=h{L;9S9Ad5o!l7k?NL;9M7AWK5}mV+QmL;9YBAj?Afk%J)1L;9J6AS*)pm4hHF zL;9VAAge<9lY=0uL;9P8AZtSUmxCZ{L+W46iQKx722^t*w?3rd)g;voA&sbJR%{Gu zWHqy5Q%Iw#IeXX~(&%bZ)s~PZRde>RHKfVaOpR?JO{peJZ4YT`HMH0f(zI$4?aq*< zSCguCg*2lYZtMgsv*e!kmgoHkOLvjtA-#4Lz-U= zK@Nqqpc;Z44ryUE1UVAYqG||oG^EAV5ad`$OR6Er@sO5QLy!|8EvtqgCqr6Z4M9$Y zw4xex+FlJou7tFs8iHI6X=gPAxfar{Y6x;Yq}|mJrLGFZfpc;bQ4e4Mt1i2T|p=to)1Q}c8+e0gS`u7)qq&C}KJ<%M~=8os1q<=NAq+wiSd(px|+oJIi$PQWWq1z%W6{JSMy~x zsqdTlvYOQQ-P~Bs4aX1jU^Q9qr#Y{hZw~wl>0LE{i~M&;AF8?Q_!H8nYEs`{b5u3A z8UM^t)x19GAJ(5je+Pv1x6t2#Vf`!gcTiaUYq;SU9M*suZa9X7HL!*oj-g?VsNwb9 zu&_qfaKkY?tWh;=nj^v*UBio%kztLg;n!26!Wvt{uctAu&z}YjO>Vabj3gYS>LDg*CN?>^M2BX*FcWDPc{oAv;bDYhDdG zaavgOYk03RJ*)*a?5i`vT3Ew**vzmN)o>m*E3Cye+>Xo+Ye@~e)ts=F)-WOFhPAAQ z2{A9M5Q!t-KCCM>FndE-S8HJQ#;~r};MGlG-K)Wko5Q+agB!Pm^`HhfZVl^U4Q|{P)}tES zxIL`LHMns{SWjwjN*WkBZVZEurZ@a^KTZ7;Bg!QflzwHg{eGPuw7uJUw{I)-= zk2U!1KvYR?z)pQ$}hFVCCW^UU)LVGYWY z1TTg)I8RqEg*7D4Jii>)&^+_}N?614%=4>Z4bRixYvzjAmEi+(SL?ddM0ox-Q zS<4LA5z(kxX28yfM%OX}c11L{7Uk@YXnZX!*%Q&kTJ*9vqDi&rWnV;-YthU8h^E#; zkOL7-uSF#XBbr$YHx5NKs}^n?j%ao*+&B`^qFTssG@`||Oo(F-L>%LMnrpR zjW7TAe{M#!x0b(h@&D}P>Q+SiYGKUni1ydQm^%?2sD&|iBRW_MW9~(Cs20ZDH*eNL zkq73@S}5|+yjcrH9+@|5p~z$NW-SzXV&1HUB2UemwNT`ld9xOZJU4&U!ig8=uUa_q z()?A+9nCBAS1rFHdu{%z<;}_)^H(jmHE+#dwY*t*Xa1_?&B}Z8S1oT=KA691d9(7- z{8h_ell)}Yg6CNBelF}`C%TZCFT7z zkJR#_<(GM+mS5KXHjmWuw&jm`q?WfWf6XJcylwes9;qb__K)goEz@K`RNrbL!N91# z*Fu6pQT?mM>w}}}U&o7YN8TG7)%ZH{-nghH)RFhbM>VmIyf-1LNpZ*o*q>v#<_C8}w4+<#7uYI+@~hSQ>&QAZk_9@We`(%_7!X4R1fXGS%< z4ie0YYEd0tpB>fWI=nt7swH)JeQs1s>+t%#sFu}nA}~Ly<#n70EQo4F9j;#()yg^& z#GX-v7qS{`^99S9EjymSR zs;G9>F$Y#hwX2RfuqLYAbU*cjFEIvlfrm9sLs^k>#b3ptApy>qPkGWsp0mhF4l2sxFf2YbTMlq z@NiV`>PUk}qIzFP8a!$`t;4IwqWV#XSC2>avktGGi0W4zUOj2*tfvd7Or7;~;k2o< zo-Uj*b=E`Sv!>2^h;=I;h7z*R1>X5b}CdYwJm6H=To^PeH_)1dg%Bhs-yML@o7}Y>Z$WH zQ$#&j- z@jj}1^-%9aRQKzl-p8mO*0bAwvYyxT?Yz%Xy{c!A{bJp(=k?xK>wbOwu+4>U*7JG@ z_dTkQ_1s?ki0X4aT>EJZtLJyOzf2MJ?6$v+QVr<&k9EHRJ^!`tH_(ND*7F9s&_AZJ z4cu7_h-q8{zo#7-)A)wMH(+9#*Z{8v$27TtdyFA5O>KZuLt~oWz-yRcG0kj%O~YfF z-M~52h?tf%aQZYdrlk#>K8=cLSp%m}qhng$!0FSNnASCLQ!zHC^$napjf-hR1IcuJ zOdA_WrW0b?+yH4N#q4rB+y4%26;nJAyH9(bRG2L(I4A&_IG% z5!1s462!`w9yQ>KRWUtoAVI8-=}7|{%9@y-Hn5?rjp0w<=&l^Y&>tlM?fIl|G z^tAy8Y>eqo0~+5H)87U(zB#6U4QPBzO#QoZ8n`v40bO}Xy)CAJUAb4<9@C(%bZbXU zgS*nLoiUB-%BHX@rqNy56n4inrYp&Bk14Dxo!J}Hl&*APpJ}KoyTJaKrgdco956L? zWdT3k(u{2rb&$`_L;f65yd{Y9yLOX7uKUjXz|i|)QDnVS&te~>}%^$ zBZ_@vJ!(X;Z)2L(h+^Nxw6GCPzPBDV!t4*$nMTe+KANW+sqUwkHZ?NyKAXE6*-O5d zyBj$R`D*TNr1sxp+SbVQ`)*xrWcvNEt~PSo@zc86$Z5x~m<}{@+VMN4gN^j)PfRBo z>B8TbPBzkoe=(hEaKKgbc&tdQ#}Z@VH(V>O3N@&y8${Bjftgh!RJ|^}7)zj*jb3BT5_-*Whl2Gr+h; zbtCnSi)&)H!X0p2GrK|232`m##%?w-u0`G0%_haQxEpzGa$HNgk=LfgwX_>~ZE9T0 zx{=qW#kIB@oSYul`fj*!MqE3(;lY`4?drzdpB2}hZa8mtT>HAA#5r*t=tdTp8`q(3 z=x?4?tsAPFZ?)=1eqIpQ`EF=!VO$rx;l@RAUG9d$7RPn98(CmUT-UpytEF+>?8X#Y zX4UOh;9p#KyHTMPaoz6*^;X99up3!ml~ueOx>_CA({8wSOt(;b>^i)&nW z64ds%rgev5JK~zrok_AYu36n7*RHtcbjQiNtsmXt)gJ3YcV^1oxK?y0i|&hSRd?#Q zKdv?1so#OP)^(?T2jkk-omw5TE_A0Zhph|UsmqbLPIRXRN8>uxof;goI(O&n@wip8 zJL%?xRkAxiI%&1)PHH)2wd&4U;c2T?ce2WvxPEkJLpy7=>cQ#VxwuC5p!?_Jn$&~; z`U`PQ>A`>fMXNy%{_8JU4SMijf7xo#ga7&~R)ZdN|EkrX2c5oVHRwU7ubcjQaN2Pr zu8lpIU^nC1+yfThifd~R=GN`Fw)fy<<4#;Vdyw_+n*Mq)!S2O%qzAOPAJ?%SB)11v zmmVrfe)T^*OGAJt6QH<3Ufj@infYJ>l-RxW@K`7T@C<-;)IJ!x+(% zt>b50lY27vf5kPsCll;@{r(v@dQ!js2`%jjUj`(!wkLcU zn9$aqq_05kZXgbwzEm_rjf)e~+EOXyNh7%@DdD?MSvh=lI+WKNGv z=w44I)2M`=75=@W6MEkhMT|-4dry2mHlYE%$e8028rh3C)#DQy-3t;oVw;_k(Cl7?H!um!?FAF3CA6#;iE(;DD|(SjW+b$#7rW5R zgx2)p+;Ubz>v}={*$Hjv1s&%kw6ho6=iG#L_hJ&yOK5K|+&$mw(hGkqu)6fZ9}5#Y z+zWp!O6X`W{INKpBWRyo6y@{Y&+|$y1kgI>l6Ce3leTf=yNZo>BfY<_9FFd zvfB6JK4Ei0KYNjGwj}hs7jt!MLW6sAqPH!fp}nc!_JoG_rhYrDN4=@vPU}K%YPHL{ z&>KbUPH1XxCdrQ_r%Zpn@&4(A z-u1@kXRHRj*~`wF{+i(Uxr7Ea!SVA64QZnL7ZMuQME5TyG@^;_UrK0H6Wza@(4;0h zeZ^|fRM>wLn$^S(cFq31O%VNhLUWqv?+sID6RF^4Li3vN!mWhnH}S8$ZHjGzlXntY z-o(H6u4%W4p5IGoWfR1_Zz^tL20XC(HF3`H(Dd9yT^?B_n>ZDIY|3te3{MhT-^8qV zY8r21UOr1`V-t*cp3tTy>h~g{%}r?NWkOq;pv5b5KogaGozS5sRPx5U&;&c*nx31; z!0)UdO=RHrrtBst`XQmSO{A}nrtv1y*QbQeH^I}-ruHUoe!nDiy@?lnUlY2~1X;f& zbhC*Uecuzh)x_UL`;pMYChm5BCiJL@o%mNmkDK^=6~E0DO?>P4PeMFkx4D?LrNQ!)T%!4baYai`oPmMN$u)WcmtEv?mi@n zaY^mzgOA21wYN{<4NOw|`k={)N$u~0qb4PFtPgv@CE<|X7r`@JCd5&mkn)aQnUI(hFwX`?hDs;Tlf3YnLSC(?OVuyNiFHi9Nd@G>b`Vg ze^P7u(uD&_ZSITy4kopwFI_lfis(z74<~iFFFrq#)RDgU{Ag0A`{LwdNuBA7laE_} z`{LCTN!{v;S5I1x`r_47R^7gw+Ml+X_Qiu|lKRva51vixb6-4o&Ro%#E%m&)qAy$O zg`~dq<<0Fyb46b~cqyrWeR*?nIjR2rsKFKMOh0OH)jHFU8eFq}^h2H3tqc9wnQmC^ z`?0;>Olo956niVF(fv4izilq-M~b{-F6+lMxNAM?2T$)=kNUyW`_`j=@bp1a)BADD z_Ase={UGL}q~`a7n2(cM)(<8=NoqwuwDvTq_5GNa&yw2KuW>3& z)VY2z>{U|N`jPrxn?L$-Bk{&G-j5rJw@JP3$DPAFt7$*Z;oc|pvmd{h{a|%zhW8)s zU*1fX|78E7X8!v=+rOw8qJJ^1HRF`8rm$xE`z@&j&9L};QVW~u?~kMwHIwgu8ef{3 z?7vK5&1B%;NiA)r`+w|T-pq{uo7D1V{%!xP2F-;xfGMqP#zzBETGfn?2Bx&S86OQw zX-zXe8l2MFW_&axrFG5tXlP37oAJ@Gl(sdK35Tb&y%`^kNNGniJ{p`e3==_wfHp9sUDP3!ZlM7S2-V7%frF5ei|1M7HW;2{z zlG3eaIJq>X+s$xtSxS$ZA>s0r9yg=T6)8PwhJ-6qdfE&LSEclIJqvRSIvd}H>KCjD0@RnZ<;yv+nCbZ=0g5U>0L9M(&m)jH?t#dN$Eo~ zNpNdQADh{kwx#r=nQd`Ayw4jB&b~&YmEzsvmN{d=>_tlgZ zx3INcOKC|9Y3_PTOIu*mjg*$P;QgB^EpI98zbUO~f%3P_mn~5Kj=8Y~ZQL~vwvgfO zne$pu#Ql^uwvgN&q_nvO9Xw2FYYU8cWNvJs`;X0eE%f|}xu=D$J~j8WaDVhHrIRgm z^?6FCS_=DbN~c@6&3$RQZ(%OHGTpZ@7haq0TbK)PO!qC!g|{i)ZDB6FOX*$RR~5z!y_p3&i|ts%zoS^_!`#g*(^pDgA2U z&h#VePx5CcZY3*r+opaLK+sZaOH?4iGD`Z`e z*1=ZDx-hLnt&nw5T8CQ;=YMG(X@#sy(mL7-S(m1DtQE2@OY3+mWL=)tiB`zEBCV6H zkacBRr&=NFse%u1o8DD`Z`t)`eCQ=!Uc|wlY^Y zrgf>61iC4$%dL28b6Qtg;qI2SuC~J6t!Z6r#bw*ly50(Rx2JWZ74Ggx>t-u{+nLs_ zR=B$>t=p||cXwKkS|RJ6v|hI2vb|}2XvJmw()!-YiPHYG{PpY=fPLO{ZM^+E#c2Z8~j(ohMDFZLsr{>9h@Y zo;IDf!OkB<7)^yqiJI|R;+hFH;(`g&*ykI(QgPj*mr){wFlIgS!c3w7}w!zLT zrqedqdDV2<20O2rPTOGTb<=4Z?7U$*ZG)XRO{Z9nnI{%1OE z9md8g6F2wHn!OprqedI*_Wo%Hn!PUrqec(;A_)q8{6y~(`g$?`mO1-jU@ff zblL_n-n9;p9oIEI_`)xRRa7GW>aPp9h9=74+p&7ks!>hwGdfA3ohiCMv4X=*K z=ye-j9huRaHoQ72qql8%b#zAW+VJX_jNZ55)v+0UXv3@HGWyttSI1}csSU4A$mnw$ zUY(fHmo~gQDWk7#cy)3{-`eo%l#IT&;nk@b{b<9h(=z(mhF7O&^s5c8&dBI@8(y86 z(VsS^?O$%`_Y+m4eLXEd)JCojopemhQHn$d!GoV+Zfh3zmj*K?99idupUmh{J5D~8(c^ZUd^)2i z?Kt^NMo-&u^4W}@wd3S-rqg!3dfs%}j#n?3PTTS7Mbl|JUcF>GZO5yZO{eX6^@{1V z9j{(BownoEYo@h!+<4uz){Yx*nAX~H<4x0AJ8ryXTI;}#w@qsuxbaR#13Pfz-HZlx z;Kq9yjqG4@-p^=M2b1$bMx#4$Dxv;#+dG@W)Z8$X#&JJ>otn@&5}I=+}rJIJSBO{X19&Tpo*4kqV!(^?1l z^oMD!gM9kawAR6E!(XPg4(94_(^?1bZvL3oIym3`Yg+4Id;gcw!49_f{#hOBz>Nd4 zI^2O92WEAo12+!J>SzaU9Gum$4%|2-tK%KGacEX2I&kB#tj>4fx8Ye`=)i9yvbxxT z-$rJ2sRO@_%Ib0lejAQ#cQ6~LXZ5B7N6pCUZ3m|dGqZZv z!RgVgtloDpIcI0}p##6o$?9VVXAg6;`qaT*F)yp19h@%A&+1nPb9F&hzdLZ_!mR#u zaJsN4tG^wbJT1=ZUk6inNml(kNvcb;8qi5nU6$4GPR`+$XEmaeq`D%jk)7Nxtjuau zC#MUmvKrmV>B8!)#&nWn*JL%elhcK@S&i%DbYWdqQ#(07SfACjPRtr_W%4&HhvvGG;D>_NJd$L;DiC6b#wW<@Z?#pUpCvM!I)uv9|cp$6Iow)H}R$Drm zjfb+@+R1D@oYl5YX5*2pws+#yqgn0f#H+`$+TV#Ak7sqD6E~j7>R=~sJZT#5Wcr;l zjdwErPMgL%nSN(X-iaG8n#MbMZFtEv-pLu+ zWz%>kCj?hafh_?e9a=cqcpOBhz>%JLhB5cqccq zPfX*Ty#0M@8t>$k?papfJJ~s(XZ53#UwyqWjd${^ua~CrPJZ?E$~4}|M*7+`-pNM# z#x&l^M*7w?-pNM#E~}yc;l}q_4f_u_elU&yhZ{ed#{Xl!eKL*z$Cm%uH2xpwlV42Z z|KZiIrt$yq>bI;W|A!mDXEo(N-1x&Z{vU4qX&V2Jl>5sx{vWgPw`u%8P6Gd!#{a{s ze@)~6;njaxE&Tswo!4)b*%igFS)VLrBIO|ud5MxZlPG(iWHON^uTiAYOkPg=8zSW& zF&)#vHrRA*3^pBCz!hWDdoy4#z4zWBJL|qg8VMxiPgmFa&ibvj_ID5GdeT@eX!fLW zvS6JjjZ*|Io^#_=!FtbUebWRRJfHPV7qoh^Iz!Or$?8nOc262-33hnWSR-inq;a;O z!}D3+96_h&%sE%k<@u~{o}k;4)%k)RPgWNQ20Uq8C>Zplagkuilg7n@J)RS3tzg)5 zBCQkb^-Rus!H6fTO9Z2ytS%KC@uaaqaMY8=M!_*p8kY%8=nVc&H zr#x9*B{=QL>T1D7Pa4+<#yx3VE4buIW0T;rXL2?RCOngKo#2XRa<&Mrda}A+aLtp| z4T8I#G`0%vdD7S>xbI2hM!^Hm?Ca~My6`T$1w)afW zf$jCa={a!Hd|-MGoHQQ_ZUwg2M}pgd?e($XPT+U_JTW~7o~QEE^c=X?<(cU@@H5xv zrsu$Km3?7)4*Vvdm!{{y(^g)Yo&!%?d2MS1gX40%s^{BlpM7RMbW8Ihm!XkK9{UqgWC-BhFT=jGPhY zC{{)8D4VNjiQIECPq997m-2kYhRD5T3ly!96XZfgTO@gl6dNPSTdZi0Y%;Zqj>slc zr|67qGWCkCNbg*t=#KQxrHYaDFYZM0}9doVXV5DOIO>rqQ8@DSi zM`q&=#Y7~H?TRarG#O$mc%2ijR>*^(j6@64kGmp6G-FiW!McIH;JHII|Ba<|jJg9>s!0CmdEROkA10 zrneyPGWaFrP!62R;NuviD`AlG?bWDXH7$i zX?4ytl$cgyijl;-dtNb`cy})-_9b@5i;De;ZZ>XeN=&Ourj5irx@_7=^souV$;3Rm zVk$}Oj#o_^iIe&@Q$%88yskK(=wUZZ5sCBpO~u8;`TUmRTB3*DR$NbfT6RZqBXK^z ztGJmspWjp5N_4pUiie3F_CWC{(Ze1p9w&O(BgK(Q;HBbA;+X)i6xEq5yjD!kY=>_YQ!?}Dt$9S%xQbELwDx0uUdzmOpfXtc4l%^@31SA zqa_ZzGdWu7(3{CogF|1Y!!>JGv`!oB-I)?+9eWS(UczJ!-JDe!5?*@ml%tq1b zaK600Z4MX8>$}n6VtIWxIgFRrceBH#Oo!Xza5>ZAwmM9dS9+Vnl}v}*?r=4;Z|rcm zmf1Jj9qwi}iVlZ+*&4;qOP#LxZFNQQ&+3Y?@vllxk+ZDezB~_Ms zT=BKRURm1dia!|ZzbNf;#UHDRf7lCutgiUa_^(R4U18_We`7!RzrVk;3%#!R(@!q^ z#xC@^LVj}L*Y+m;u28e)%F=)KU7!z+b-^P#kW<(4@IrLV#F1Hvu^au(&+#GQG7SaUR3iIetrxtX2OyxH43As8eOh$I0fis%3)N0UM1 zV3I(95D1e@1`}*!;J{=sU}KU^H2D8jRrh<<-PLdZ`u%Qq)n8Y2b#+yDzYf)3J*v?- z@`%Qf@4IDV&(}JQBX2(Zv$OV}d%p*s)tgVw+C2YWXN@2Jp!=PF_Cp_i)&n2Zy-%y% zJa6S84?X?7#@oN~z29H4f&XsxwUZi0Tzxp{E$;WAb02#8y&6CKfxYlwxo^;niy|Hq}e7Uh)Ha>j#6bBx+(_0KShSPn`<#^f~F6WKkSA-RIpf}zg z0esovlO5qTD{!zF1KMjrn}a!^J6X_tvjB9u1x*<0SVAsF#R6o9Eo?j;><9LX6l?j) z{VuIsYw0WZ(o~k#QYyE{f~0bHv>>V6Z7oPD*S3UomHV27xyt?g@bz5-oV0JYIbF`C z^F?nt?BPd$b3q#YVpYXB$Gq`?inRtesg>STNvkk!il3Tfn|(5g_uAO#0I=8EEGK|| zWs-^BUSeXRxQk3on&R&cpXQWvysANOy%>>!o@^^--lobwAOm&@yk7>~L*TilK+_>% zuQ9RNHet`PF{XR9i4|j_d!dO9M_a(&VG8O@=Pa`^*g^l>R@_7scbv&}CY~`rd>yCr z6SU5U1A+h5gwbIM{5eymViR@wsbT5;z|y~9$mMd(8}~QV1duKLjYg^cC0qJ`nq*?> zm)aOx`fF^KWa+;&$;8rMY+_>RuP`yO^fws|)?a!{Kgm{%So-}lAY1x*8IUdg-ljle z>6XRzmtyJ9HtA+;>8~;|vGf<1m{|J7rl8K!?`AdzTl%kT#W_pArpeV=`Wc2PL+9So zzih&#rGM6xi7ov<4ND&cmi~D|E|-IPr*beaJrE#U`WuW=2V&{}VUmfZzsJVd(qC<} zBuiH#uaZP8{Y55AvGkXlm{|H7jRqT(mVRwpF=FXfw++S2+0yTup=3+Hmno1~x@EBg zXX(!}>BQ1sX<}mOe`{i5>2Eg$b(Vgn*%)l;zqA$SEd5xMtF!c(Vam|CxAcE8;nLDS zW6H#q{vU>=4+Bg8M?)@`W8OH=P!mA5^w%4u4#m=cVv>oazuU&x(qCn>BuoFfNhX$V z4ba1-So+IMICZIj#L}%P z+HfhB{(O^8Ed6b!pw7|{nT^4g{tH`i&eD%DxjIXq8m0`LdrSXk6D}?N)22*p=|4Gq zyqgwXy(l)D%fY+}v-yW4wT0A=9=?{#do|9>1LJ>3i3QF5esK5%m-8CJb;ikCQQl25 z(f^Lh661VnlqzQV$|zL~^38{@?MgdFHw zs zqw=`MM+Q7PuErluQmMut3K(>x#=nRXxyIiOY7DMYFbhyN}N6(%r}t#m{=J3;yMs#-&`NlvcXZYkgV>sqWqP#Kjtk8 zpT)_d@w**9$<_2&r$evu$H&5qMaZkhjK&4YxG%}RU@4EN1{En_FV;eOL+(}nx9a{C zHt7|#RP?5}(z6*-UlymbCA=q0b)DAhLP=rxYze(MSuEimF%Pzc*M!w-EuAI&Uy?2@ zeqx;NEaBuh-C4rXu`r_K?Kr!$gsa9vvX0Y=vL)O#<}H>mjg!R^&I~OjZ} zm6(xO!g`WjETIuvLTjlk;SZrDILukX8{ATKoh4i&7Dg;#5odRnaFtj{wuH2zYzdn& zZ?S}}I9V*=P-qEi;CXB;jI)F*$Be`hMoD(Dg#QaIp{*@JEpbz`I?P$Z8{$f{C8$}1 zkgz4ZE6nQ#xz~h}cAO>LIZhT!I4kDCmhh^uS{-i*e@xQF5{{44oh3x0MrY|P;p(w4 zVhKge##zFZV|zOj3N4|d zEkW%EP_sJBS;Fh%O0y-X*_Dv6C0r8b?aDmi)uE(aX9;(Tlf@G57V}_Bcx70vuD68$ zP13~@t`(;{ONd5|uD67%#lnas%wsmr60Q^r$(E2-lr3Rj%v&sB94Ct{2cGCI67%)26%@TySK z6=w-|jFZI@&Ww4mC0rC%YsFi_ACh#jgyZ6LX9>}$vEnV^s8|@Wgfn6`&JxrIA5|aX z&}U~_QMQEjn73F$G?4@ko-rQ?Ede_8mhk9U7-tDri1~{p^posj3I7{f!iu(p--MRn zFlPy`ja!B-;e~N3_X+O^Q&+_jUKvWd>MY?7ak5y#p_m6-!YjgRt$IuNeUdJgaLqW~ zSwb{wta?j`=HIJs7jzc0ah9Mygvk;h4p~B4QMQCpTv4%vXd($7Yzf<;B|wMX5*`%` z<1FFGn7>#;FUc;J@Q2V6R<$MkIzx zSuEjT%!4iAJ!Vxilv4p!M*~JomA6mkiwuJu)Ex}>V5?&p* z3|qqA#;I%xYBhheJ!me$VlkR8Cq<7vraZF|fCKvYeMKcg0PA`iyO`6Pr*}^+FpIO+Cj3MNu!XLDAEzA}v-m!B-@9 zJ+AAPPfpa*_6GZ9eEvkhx)qw#MH!GyDpXQM$%=S+AXEj4N&Q&{6+MM!QPGN``Waf$ z)V>TVs+#BOLyi85z@(~TE0a1kFsUksGpQpZ?o~s8`^#)lOiJxlqmf$J?O z6jg7s)Jp@QDo{*nPX-k|g=SIFilXk4p%qPyGN`C(mZ>b8)XM^s zs*0^l>g2$rsvORw8WH!ZAI5eB?>3>RDm09eP&D;Sn^F|@JR1}} zh0~UjErxJ1sdEF9D$&xU{-IK2dE8_aoF@2ORd}3(I>GeZ49NL3!Rw5j-I1Io__0YQ zrwQI=V|<$6l{QP7AOFlG6XmLbMO8s``%;rmRQvkMKoy-oA$EeT7&%Q~9gTrvf38U0+-}Owy%SJ}OBUJ3XOVz$mM*$=%pPQ=~7* zL#jq7X>i$NutA?YYM$r8ehEH5spg``ivjOTfj$G5rBd`}tjhbRNMDfqC3Ri!=l9jq z^gfB4>T=Peivm|M@>BYilal9)!HkYWJS43~Z$|4Rm!&|Tf%m3BZ$^c@Ck6Tpyt`UJ zath{^9kpG`$=DWV8@*w~r?qr8dU*Z$wzp9=aV*J78+~3I-sHhP1IPutt*`%^${^nFpa!HI43=!C%8=sObvvC-J(FvVvZ zJu=BJHX8Q{I1RzW*0myiQx(KUADkl2MlXnLl&kG+RDGg2T`j79^tnkjosGtA2$o`_ zm!?vkd3Cg6dS!#%7<3AEBhb{nOqnAb11}C=BYb2bUjlLrx5F3qc zuH$UW8^CKJOYI_@fZVFa5`kbVi&PLW$MVyV^C((h}Xl#pA2-#?=OR>>--bDGSi@QQnvbWLmt@>G}$n_&2?k)j{ zjb4(n5*vMIWTPFiQMLKaHi}Jtw$bZFe7fF7H{aX(W@n#oQ=Lc zArKplZ4T#M*hbZnRwt_1Xxu0GgCNI7`lc#~jXo$voQ*y(vQe(Kw^6mD;sj7O`mCgy z&PLYD{?nDT9&lex_c9PM({l`FY^Q4K<(WA{ zJu@W{OI6P1NyJp&l2VARs;YYm=}<4PmNh)!t@RWGa^`w+wF*;Fm7hpz>%K&*f&b48 z70FlrJq<)mc4>&>Z1y+}wzPO}xhEUdk%Cj$o4z*uIrWEFX8+CqshAai{ZjqUF%U7|vkhi!zG_w`rDJDS z)}{`nBx1gaG5Rlmb$QG467#*-V8!!+_s8m|sz_&hvH>~sJt;O{R)Ftr)iD7th3aqj z8Y&X=OwQ85R2J zi1`e+6PbB=<&w)RdX)LA5$oYVBp+4HD7g!WNOv^9mH?Oo5%BY>K^(>U=K7Qn)p2=* zDn`&GD!wSDGfH1g(y3kMjjg0~h(*`wzM23Ki-4b*ViBSYQj0~ zRE_c~Xr-+-fUhI~#3JCoOtA=gOXVk8EQ0nY#ZPCH-c8bnI1oYAFvRKr_}2u0SOomk z6pN5I+hP%P*QEIAjM6(v`VgDyX*Gs}`6k)odL$KZmr$##?uk{x0O|c0i-KydR^KWL zDqAgiQ~*8^8|pi=0x&PfntZ54E_@ZhQ5Jwxs#twWC?;&x*RlYr$8i=w^-%K)FV%!~ zYp7&0qk0%BnarpjhDs(gs)wPH$&Bi8_3Fka7tTZdad9HG-1VYFKFfLQp!r*6uX>xH z*FyFA(?{I^Mq#+*NBf~+2Zu!NRlg81_Py%$gO0DYbiL|>qU^p`RX0PqMBl5P63HjM z>Zc;+u2+3foSA#ouS7-qUUe9>Go~-TR}H%_0$i^ec3%YeUN!8#81cPo*nJTsy=vHf zQM&Z1VfRJpu2&7aF9KYz8g^dYb!;u_!N-6Xd^{Qb{;Q(rn+ zHwrsX2T*SmcAgHP-YD!m9YDR&RU+-89@49ZohMUFc(e{XPX|yv!p_qHR1ZTX(yJOO zkzUnMiS(+5N~Bl4TF_Uz8R#|RMCw(q8zpkDdaJ7W2h+(6y{de-s3km?F8!)nl5^>s zTMLecc7A1ho?^5P+d#>;stndazH516)d~)A*7S9ggv{v)76}1|tNJl79$yYu9qORB zg=G*HNX5zE)PiIAy(P*!n$N-Z15qk2yCd}zQ7W{6)b~fJ3l5+7=Blsf()#lmh4Q;l zRfI&_TyG8LX8`z}s=Eg!e1rbt6ahe$|A>i@b$&QSdh}np?f1(+S&?|aEl-|pAhN!5PlFjdx!Te2 z%-s6U!IVVScP>r=>Go8p8qZ7m$+xEzvOM{|syp-)etqX819Iy-*N)eBXuG#uo>XV{ zOPe;Ep@ZD2L4VU~Il_ zll`}`%zl^soEPgN1~J<))i`JND)FDt;C@0x*Dz3*yTU$>o^bUmazHeVGv)z=F&tk8LvH89;W#-IxJ0%hGO^nfR!@nV=klr`x zJ^V)erE%+1Rm6NxFd%2X$HxZB3h?H;YM_<*uB7#K=9_dqq&zlX6%JJ_fy(nXT1Boe zcm4%ZU$PaIX{A&U0fu75e3MxjQIPqn;Of2%Z@%ixt%scXCPvB?CG$=CSgt4)v}34E z%vVKz^X2g5;n$T}Zx{XMa@|EvyG4{fo9^JI`n>VK)yE^}UmWBvaS$cXC0U1iAnwRb zpPFZ+xhc7*zL=Reb5?;NC6RKf6L})_yf>lr>qSzJW}8FWdO9{L(8bzUOLoG>ZRx0$ z#4?>eY}8U-nchaaT1zX_J4jcHS!Ft{8?_=aX&H}}jhaUKD$;Lfq|>62dOv~rFAfr? z;!HqSuKbdrc?Dgyx=o^}(C#2pw|*3vU_Yt)4aNr3E%*|M{yrA37){rae(flI?9#6p zrQ>=cFWKERP2ZrUJoPQ_3f|u0{k6|m=I&}T=^f<7F?FfJAyf#p;lmOdARB}{DnjN5 zJ-3)qSH&Hrcs4dablgh}jMsgru4yZCf-VHX&v^FtNWTL~KIhwqu03J<=ANh^~_eM+H$Yaeji3*o2tvut7+wInOPo5wVFT zZaWd1kVn{J6LeZ492G>Jm^!nkjD!%g9X1F_HRrj-G$J<9#BC>H6Y_9dY=TZT#il;? zfeAv|Cd6!q4MI}Qk=PcEh)syu4$SRgw%A0Z!Vj=c=Ld(g{fqwg`jE%Y?^HMOoXP|E zTTy>IoXhu(4zWk0_HfSK{4&Wd8ja@*K)5?pUy=8AB zeBI-s!`E}Uu5IO_2ZzeIC~*e9+4_j8>JiSGxjaiQH(Z~T$N84)L-OotMEppWTr{jg za75C{O#FdadRY#6q;Vx!l<4nx|1hsWx&6AgCIi2buvU|SZ^3r5Lds3p2WN448RQ;$ zoTEEjkj3Tx_r0^Y+>CvEwgT>U?5(nm$VcKnnpd*BCHt*x3GSxs4G!PHneoX{J7Z5? zb}(L-%~IZ&eQ8!sKKgXI;Zb;+B=V?N7_zEd^Tr-Soh}1=)WZ!a1ZR(Wf0kT4>aX)S zd(?yT?8&1(oFx~JQV~c>O^bBmQ4h${i$^`eXl$YP9`%E~0>z{D)MQ|fTCK^z9@WkY zDIR5cga|1fb@wd2+%Z2ti;G9yD~pRqJuX`T=TW!JHX?h}NAgN`9`(&^3C^RgZ@7zV zC+|_O&1NY*>Lpn@*`wZXcod#Mi9G7%hO8>rys>7e(`8_fdYB=F;OtTF%aV&n{Z$@k zkGdewo;>P9S#t3x6@aDmD3MM)>i$`J@u-IzjV<)vqrRV4pm>xu1UUstl!lcW4(w5_ ztdQbSmPbel;!$U1>BXZSl*PrP&dK89QIE}5z_d_2Imdok#s!wgl%<*E8J3 zwUhU#*JQJl9`)j^oa|BWGdv1UtwbL6GDB9Ciw@4Fvp$!BJ?hU5DFkPax-3gB9`%=b zoIUFNJbUt}4`#{5qpS&wNGBe3zbw6Y)WeL%7JBbd-^(jdJjxn^oC3w8x-}fwqncSE z#iJ~bkP^hB?v|w&kFut|LN6Y5c9vc|>M_|0IFGt{wh`H*K9pCo^QdoROK=`_UBg{m zJ9&?Kbv8@sQ7_8M$sTo?;ZdW+qh4yrs&dhp@6@AQ2KK0j8d3<(9`)WVxp>rH z2j$t5NBw=4Ts+E}u!wZxQ7U?7Ifgmuxv~G;Xl%i~M}0T1K=CMR2oe@9l2E6H1AEl% zvXvB%vOGdc5RW=DOD`T}O?`!4JnEiVdhw_WvlVb2b+c?EvXVcTSF-b{uV+he9(5hV zU0gePk9t)$OX*QB%*x3g^hx?S#iJ~bkP^hB4rS@ZqpYc~(2GYcv-ILokIq)WdDKm_jmS#=`@E8!M;*?V;5_Oy z!(CiEd5?N!HcRPIFUZQt9(8GT{&Zurzr>y=9sGS$wHfD9C$!7+z$AH0J5q<(}edg0qOJb$o((&@}y{X$) zE7~r7r!NN~FG$MR=~J-nt5z$#j-uE+llEKH{a*oa8IJ+=Ag2KH>0~i0c0lv1nAzMN zS$$`<&Mh?k>2x6hH*Q^RSqijW;576I@7B*7-_BsP)Ap?lM%!86%wV)<^lyoZCbRj7 zO8XlVp|YNAB2?0oOoYn$YXg~aIZrhaD(5LCLgiSp%|=wtlPjGUhv+&9;y(_lIv=zE zDn;$-dJ4Xxc(uwz%5=)FVilF?B$J8{Q>K$d>Og;)PTO884nmnu`${SfLYYn*H!5~S znNB++Duzdyz6a??R;}*RXZ`71dX?8E*myW~{pA}gtvkA6E{|LmCPF%yn+Rz|1(tE# z#L53T(eCDiT=_>yGdUkuf&M(B5j+3$5>9jOe1BXWyKw|GG2ZBl22M%J0Tl_X-h_5! zlW9?|V3)_4ybObVY%FSrOd+HiwHc@oDoO3PIizshQW`>tn@vO99*{J_&~baLi4eEP zm7`a!YZ7RD|I;7ivrbKj4pla zz{C}(!u&dny^9s_{zN;#a5It5zNx7H6(K;TR1t|QaOfz{w%7t>O0})(D2w3?!lD}A zPTT;Rp+WnvQ-#j>JQ=VTSHqX%H=FTC=e(hA$dwT0P$1f$*xGEylOo*PE03&|H1w(p zh`wbI$u0QP4Fs{iL8D?SRO|}O$#8fncHbE^M8m!%9QLh%Y#YMisumgg?+tdd9s2aR zrGcC=qRabtG7$I`BdHcQ0=$sLpWfF=Ryv4-C5WZnzVhZmt zF);>PP%(#pG6i)8@ko=Yn8X`QOpM}k6BDzz+$_);hFzeT#>bNZjZ|71$LCDAG>;D? z=0Q^rHjhSP9t3&wP@(pnc@XN%vE>O(lV@dlHVQC(p zHQ~}cRO~O;AT-Nl^Efs!4}!dT+&EDXq0T%~b0$#CBb{mzCg$;Flc_V0`zP8XLNSl` znV6WzPfSeA|zf0hB34L?pBUZ#_OnHcG;oKC(lmC;Wpf08Q0O(!=EL>hj> zVCNcMt#Ww{&ZQ@~jloVDUR{1HX{6y>28}elC7d*TVF>3M{xlq}!c@2I4f)Wx`u6SU|9E{u@g zc;S%8R`p?;o!%ybJMeOWS}9|w*uhc(nEj+0i8vigsQv9ZLQRb5oAN3dbii*^T&t=q z(}E*Ce<`F7wLzhLT;&2xIod+is6Z8R-UCAM@rVMI77BH3kSPEN#buG25I$}yBx(hY zNeB@db<<9YpU(wQcg7hQZ1jqK^fmm6YQf$Cye_Y9KfB~fkHcYoC#uI_0|2ecsMUpv zf|i%QWl_*#={KvzJf^^R+GuMy3$8nnJq_`kD5a}#eXazoq%{7avYD*|2uVf(6BdU! z_Q!Xs0vJMwKyLRxR+{B>td0y8bBdcB zdd$lz=U`xjh!PabyNv7SQb~pHN>WLG>KS&Imz1ZTiLmB9}^hs8|*8t4ybIPmUUK zd&`%sF0(L&AXK)xFQO1CU0umg2$ipHJt%}EP**Y-fq88n;BAh-iewXnB=}1cAqoD% zL`Z@sng~hogs4f-5s>Q7Op~eXLuoPQg_m1D)K;@OdA>7X)^6&EYf7!#wgNc z+Qpcs$+Y~cwiQ^TA@iP4zYE)u#Fy^=eanje51IzDB*; zR9~ZBZK|(PuQt`!su$Jwx~U#IR9~ZB9jdQUuMX8WuGe6;y-6MSpNtX0_4of3b=wCP zz5bZyDDR47>dhn&&u=1Lm@WFT<8TDgG{_ZmR0I(fSuqOwl?_pSerZG0gukdh&DcbU z;l|d`m!}@gWO%)|Jzn_f+Ps<*F}M++SFNT!j1DoK+UH5{8}&q!3EoHJTP=5s$b_c@ z|2(S5WVY>x=vZk4Ii;z`J6RHfwzemI{*Ig)EZrpX2m|UZ7IUcWJJIk?EQyL5;`0VZ zWQ4ulz=)1o=^qV@=m>k8fe{@w;pYsD=m=9`BBc@fr72w_s@)LK!FAS&1-U~U>f@qh zC`a}t(;@rjdXgR?SNO^XoN-l6G zCrGCKFznFb@>{tpLb)j!GSXZQaf-|6tR9+=iqTf%btwQE0I#i%$Pfh`HJ+gTujLNd zT+JsIjjvZ4phViT#&7(>O^0$1i4ZzwgWveo=!FPhyvK*ic-&AQLqx+TpC z5bJZZxj2|B7SU`lCyfp<3Tc-~=LZ{VkwQz1*NQPnMOQb46yc&!>UvRNPGf2ck7r}x zGimXlG-$EUj>k+*TD;|s!Spm|vd3$YTFY&!>xxa-1mO*A!X^k&(>*3(pW5|gQ%Qgz zZ5w4iD~B(dgTbtY_~}+<`qb>F*rcn>8d5zshcoMD zvDjbA;aKeLD|VA zTu~Sv5@@r~|6(&HySE(%_r14U&}4GeMi?W83o&jYCZ{Fwfc!$e3ZXm^&~^tB-^y$U zpgYdK)HQugPHv%|O9`Rv4n)4K&3V;vZX#5MDKmM+DW;YOE6eRJWWIG4r8YR-E_Vgx zilaZOnuKbx!MugH7!WPr6pI|@RJ-6V#6pEn&!W_VEnBRv6RW9@GikBFyfued-?qgf zUplRt#A-^o%5d6voasl1jlWo7ll;8Rm;C5DHea~Oa1)1btT744)0l5F)1Bgg82RU^ zZfv-gmKRSq z3DkFyt`K>M?YKi2@hW7#wauA)KpMgBY_Oh2zGt-`APn!+kv+Qxr*7f7cG(@2Edz=Q zqoQj?j$lvShCC6XuI_nu*^HC#|E*ni+m+o!up_gr$XV=xa!BFZH#;;znA*%aLyIz; zk;{PLutP&_M!XiplVMARA=0WLpR>nWtfZ27G>16HE}b*9D8s#T8CX1w)=$r65b>HB z9~zOR+dc$ndnIe>Kv8s?H1iy@VUfX2uG9ywQp|`v!S*pg+bda50Lmq!(tl%@Tu!a* zX&qJs$XczbH=yk`)cIDXsbTq-OwA<36l4t|-_|5tr@EeGj;MgPTlgZyflJGE0lUeI zJp`?j*Pm>2?hxmKUbeBmP(TUmW80tDMI$D!%#Pod!`(XVoNXoyQ#6U2l~ zL?EEs_^1u6AS#ndv5Md_Ca{JW878nNxHsdfNrmsV>PSGViPe^*_KdVJnA=DjQwSUB zV4Sd#E~X_mvVxCL8(D2UGp#3CMS)XD(`|` ziejX<&3xu@f6};bC<@lhd1ZEjYlA^sc%Xp62c;JCWxqItZ@oBmzP^q@E=k=Q!Jp#P z#nw8$W0KVM5w22|?!{uyP~Kox3=iP<1ltXHv}pWCs0rNPLqOCC){g@v)3rWIZl}pO z9Ht+SBLOJ)6am^A{~qdxR%h`b1D0SPn*wtN9&Z4=oU8U;sR&|)GKg0vB%y^~gnW3{EkHKaSQi_Jmf*C8toih-&R8gH!nLn6RY z2pYN;2l2-UpN-|Wp8^pnkH9B~I>r^L0rf3+sTPKbMv}30gzGbnmq&dSlkj~V9HJ>L zhL2dmMyDem7>vJ>_xcwweN3_~?c#D;P zz47BT9r;I?^d2S0Rxp<3=vFbD<*+r}NX}t<8kbu_u4A|9J&`Gk^ov;=bAYmcuS6W7UMgOB z1>gt^9%C~o`t$u*fetN!dV~4F5xU4UeS!2J80lkpg}Ow_B@>_V<`%Z1Q$8CQ(sVFw z@*>Jl!{vWPm8SG!f*ksaRaru@IUmm&8y3wb4pCw5RZf;l8u|m!5fRbm`k4A*7(go` za!6~rrxClXgW7VU=6xEOeWw1DVink7>7f!r=Pzd^a*>Tfsw)pQ(q4(A=02SLex7^C4$2b zK=k=fY8j%LF*1zmMF54vK?=&z{AYq@3Dn>k~BSNMI(r4r>1DP=rtBJU+GolVkl(Nf| z?~VpHnLerm1QiX>ALF?OmBSWTG}I9zCZY);JL>?G;I0FF^QTno zuLJa-;aEdu!C?oD_Za{@b^tq1Dd4h$#$^TopB?BA*HSW`_^JnIN&sFvXsDOVN&w#u z103o|YrmvT(`%9OjcJ_2DKVOWyeFcpuvTY* zRf(`vg?1P4?<~5qXbkh{>H?u!;zi+DC_su2QW4Mmad!1b5EsSrnLHl#7TKivq0?es&<{H$oD@AH%O5PS#)8%nhkq zeJn;Kd5ZzQ+@m>{`&9cyr1SDyjg~akWk@bSK>1j^tYU~Ia7c-38a-&~+EwvBeO|zR z%i?`15nvirS_-8XQ#?FJ|0X)1dw>)Tbq9|T1e7P5Hln8EeU+e`g0S^I9XTy~lagkE zYZ#clmkKWd>?1td$d4oVXXv#q%0I#PE;NPJxi5z`ApoCGw3PCwP$oh)hhu8gpzf58 zcPSBI0w4W>P>f(l^lwrE`fLR9rWEN7@j0{~Pa6jcAy&m=I@6EY`g-788K%@93u{gU z=-8(7hI-@LQ_Q!w^s#)O%%6?Ng(4Mx!D*tS_7Fvh6gZ$3YNVohS_Ua%ZU~cv?_&I$ z=$Qyh=8*y)2W9up63~lJq!modPOUmT1wk>u)PbWCqXq!99+A;Jg*ehgMct}pGQq%- zKow)81c@hMKa46(V#3%^+_NGBAq2_ihxM9JNgyCzr$=@`5Tzdz2~P6^5}f8WAFKKX zmQ64SPT++GAqh^{&qFy18tqxX1ISShD567#NWX)|_YE@E?*J>NL5odD6x56g+Y{A{ zAWB#FHmIZt2|?N$V8t_ZFG7&4ZWXd<)TeOAg3;xMk=P{$JG*KYEASl=7DctiTFax; z+bMn&Jd3&ZCzDd<;W$6?mTY03A#RSZ2XL4CVTS zcM8**YtV5{`jhDvT(*bCvH)y^s)w72AqJ(5Ko2t7)1mbVZi({MV1p0p>x<|UTnkKN`(d>E>LccFuSqY zZjOhI&txczEj+5HJC}g(4i-6*ig&?I*mYW{&!(()4ol6th1mo5@nCRFM za_gLyVN0#^sSKsG&dC`{Y8~}u?dswLLhF1YBP_Sh<1$RCbv~TIsC7P+VG0#ZaN8+z z8-D+gf4J89bUue`oqtJM$E%oIN5uh<3R8!J#@U&Sac8CMj5Ri0jNq>2+N_2~2k7?V z1hp#XzbQPM7MMNOWY`+*!}t+ZUF4Di`qRZm<7=_zB!`@uS6Ar*0k&|eB{D}Q>v4tO zZC1EP6;{h+6+?7P=y;Dcb_^?@32a_&Ns>?vSxSgpB$ANWm*wh6+-{=N`x^P&D zzUV=6^>%?E{8%Raz*#jk<2|a-rUt$>#h&29W8ni9i(cb|`V4)ntCo+y7=_@nb{}() zXmC)4&@q=~4U6uQ<$Oeq7&!0JYn)i0p^u8>>3trk@HbCa^k264(~MlGh@6^#}3{oKvf7II))4r`3^q1Mi~>SuHw`{%Sm9p%sFi zZQ9!UKMTU#5s-SOT*~DY2i`!tnME~Vs_VrwC!$*P7gKP2k41)W2|&rriO4W>0(2FN zYS1I;Z*D`x@cO14J(lCr7^C$M=!2F(UTI-8nFgjV)`~`mZXmm3Y9~%(O!vWf;ze|% z6Jok;7Kq2qfvFq76;o)1u;e3zm_jXtsW@^K-9UII-x5RzOJ-pX#KO?}2{c1XD9JY| zVbBa=@3rWl8N$>Sn+QX6Fc!j+Z&|`fGXyRzrZ5-6F0(LbhA_2nrwZ(`FkiChpc$f5 z5zQ(((hPz3jN6dbiJ+MQ4yj-`h`yc)glZUkj0HkB4F0VR3gt86FH~W>m@=t~cPHX9 z+7r^pT701&rhK>s!gLsXfei}VXPOd0MNE2=Y86N%l85bsWIm|^Y> zrSxXhv!l`zuJ!TpND8RTfYR??&w!4!MMH7Gpuic|Sb{zmfXa&m$0ZC@21szXdIkl~ ztHcs$2GmuT>$l#t$X@zZa?!X$lH8}Zz7SUP=wfSpN^>@bp-LtA)`578a@b>Dam-4yId0(Lq218)@TOxQ(=M;L=8#jhBS=KsmI--qBk!;GHFabv4{gFI)XC{8 zxs5H}vcIX4TY5vdN^Ulu8XCeB>w1gj^gsubtiVD%(8h$v1X|d*Fo7nFK4_)UWc%Q9 zG@%dLM^|4VBvgqYQv6_46xcHUbv3>OIR?`SF7PgE&=%Gh%f3IL9Ua8klP&CeZD+{2 zcR{~c_HY4tZ@kkxMB7?ct=g#7g=VeV2&3d{^&7L`_EKtf&lzuwp=ed5>9hGUX02MPR=+h1#w{>ztFvp+7G}y;t#H@Hx7ALDTxxY^vsNu% ztDl-}MPJ&FHEY#Wwfdb|Fs_kttmcC7;Sv9fU67*OFUQ$K@pp-tM?Mo-q64P5{@E3YdPnndV{*>IvLLVXIJ44qJhma#$DJL^-UZkEKxM zRC#Tj>CVx$5Pl$sHFd}sR#<^~Bf7F}+!CR?Ab~LzB}h?J9+?Aa=lM}NkT!wTBVl2g zG~ivBqom)_ zhcjRspjrkDtAb-A`BuRlceG0A8uSVxW;(^1zJ4t{8QC1IVPPxu452}|rm28IY;Z3U-{$a#pYcXK`B; z-Np+{WOLNT9zdp?uD<1`sygiI=e!iKNI%UBQT67iqa)2J8VZMv(=cXzI#|oJ>yv!w zm*un(EId=6HcpzD<+O2-+b$1mRF@cp>nYGB8sY4Ydy{m37RSy3osI0#6axzgWYP(X7!3hYqY35Vp#g zdIeF@tuS_^N!MlU3MSTJ?20DVX6#BPhM+Hy^U5aHWb7)jc7}Mhlj?_y2+-{fO&C=a z_(mp-S_*t)6GlY^zKIE=t^%tEutkL|8mcR>+RacfYAo>0P3EYyz_&1ASFr-Kg2<-0 zY*(=Y69Wr&6)O-D&VpUV3heP(u&Y>sSfm#0Dpq8g#8s@oC6UO_FkQg}VEdq~c4a_W zG|GUo_L2c*2_pm2SZ)pUED(+5)ME`@KSpdEeZW{@jY+K~jTP3I zgasZNE7Z+%#SXyljUJTBX~)aO+=o*+ZF5ZGa@yvY)LJ4ak2NMyIjwl{xh$t;j!9fj z%N&zXPRksVsGMfJlwFq7G{+<^r)iE!D5r@rDf|@X(Etc;SD;^s78qr$aA<*}>ybTi zpWKqM;zbE#8Y>_Uj}%gS%Hu`m7(svvEIxy+G<28d~h(MQAo^)|W_bNpSY;>k zn_XPRoVvKE{n34)hmtcg!0dwU7Mn!i&yZL_bWa@uBJ$>ju5I?BEh z<+RPdlFDhBeI=FCGW$v{r)Bn)D5quil~hjC>?^69rrB3=IZd;#L^)0Ll|~;1MEbC3 z>qq)9hZeXM6xlHMG;Qg_UYIbZJ`Cb;AGXKrh1yHkhkZQ*yFN?>4^*9$qb_j8Gn!pE zxm+Knu1pB^bOsxjKFpZ60+T+>=-+@zA7=D#z@!hmQY_98!F;Pe%$Pw+k=ZUzO3ik0 zQgF75tC*X!xQe;i#Z}Cyi;LP{x-VWpGJ7J-&j_S0BkdJBY~9fYHILAUT@LG3fjLW; z>`<@JG`*-p*8PXX2=O%sM6CNBHE4m5fKlz(iaKK5>REYZfe?qSTb=3%P-orh9nAoC z*8Ta|UR=R$gpQZO&bqi;bvw-+q-(H9%Kcd^7P#+-);S526=rJ%+`9A>0dM%;hh zw}vI$EJ!CVvfv7Wd}P5cjzVO?4xV7ig6+l^@*urAkfm%k)Ja3qzpp2b3$CT>wxR=I ztLeIJiLIpTwk6h0*KJFzldjvASUX*}EwPrq+!)oNiEp#OyM_Z^=^Nk*oQi=ZR1Tqd zT-OY}p`;q%&5|7~m;~d5LMNL;eK8^8yRo@%1E-tcW0H)TP3Lm6U{#y3~uu5k~5|kD)F{33WX_ z^h2(*pscP{LtO-ux~^oXOE6d4M`n0Cb=}-hm(Y84-PTZ-%fagUH$z=GQ~`CVNNJ@? z2qASHV<<#0QrEdzl&tG=G66w3~#5dn;Gg7dathA80vC4 zSY6*R)YV~iU2e!t2&wC6Lm`5Zy6&AtNnMXMswA|mF7>2k*-8YHx~^cTOE9M{bxA!U z=E~mGP?ykqb=}%fm&?H%)Zr#gu1BBFd4MQPBC4JYuvM8zRF^0N?metiU zT8Us%*O7+01asb*M|da$c&75K`CG4TT6s z))k$$;oiwnLR}XcRT7ld)i%^cFsVyL)d@txqj7TD>(4X1ow{yps7rWzb=}fXm&?KG z`kJAxRaTd}wNT1N2&wC8hPnhJbwzsutS(0hbv@dslAx@vmZ2_!NnH)Yx&(9TdT55X zQ`e0QbqT#!*DVZnxg4ynuNvxFV|A%pC8fFuA$1*Ps7o+XSF|j~>T;A&mo?Z6%Iazw z>LQrb^?!!C1as1*oI28t0IN9U;A$7N9}*OJQ9(r$8EuAo$|B^8D~SMFmCT0yB?ODa!G zE8l6kp4OHMV~8vFF$S%mRIVkJr=``Zv|LYXONGwZm3yHjOD0*}B=)tLR zKqzK{c=B=bfG#T?j80k25WH=U^q(aKPmBb}B(VC^~7F8(FCu`@_Kn$NhXQF18S^#5*j6>u^aV zs&J!sPJ+UH#?7`Z)rJ z(6vsYc}hYf2wfN`KbRd279bE{lBoVWi#2fxEvB1~*71#xWis5DDVIdN9D>ca_UVTf zL+}6?ps}7`4Sfb)p!zX$Io-f}DYm!4b-sc_d;upA3v>YRX%ovkLvj&`Fox;1E zTay9yFv1bUJO_>*vtx_6DHS-FL%9MQb_GzbuYd}yqSeDWxB?Hh<>L%ofwO8da0Sk> z4Fp$x4&b1fWmzp;pF!ii#3IC2FIm>ltLa`PH!dqU%ld;Ql!wW(?rv#DWoYVG*U}Qm zvecrP&fqL-Y&8t+Q**=I!7g4|)=_p1D$7z2fQ7}Q0B)FB4F_%*b<0I_aF%7-9gYV` z1@_q$P?n`a3x(VvA6wQ1wtSUkse7Xd2d==`wt=u^{kj?&m>A>UpgqOnN;zVb$#`Mu zTq7CJ5Z$L5cgoxog!wG%ouP6O0F> z$s?=FSMYpFSSZ#7PBO&;W$ zf_0{H{-!Ys(yF3MY6vk5TX=q>8hV`?NJwDK#7W;vA=a!Cp-7% z6}`y}VTjLA<5>j`5dveYhd>wa3B_~;qLFdMbMwGR?~(d~$9*#DPpes|<6CSZn)w1Z zHv`)smi-=r#3JBqpi3xtL|Ue=pX=wK0$XGO)#iF@Fh7HWFCS`j!-_j-vb9YMJ5S4l z6jnG;8BtCU3w&pei`IC(Ch$oQ(q&{UMkdk_AtF2DY*u-GfK=tlaD{p?pN{p8RRE9Y zu$&pLx~WwJondRVgNYl4BN z1}?Cj6{`wlaQ1_XAyj2!6xH-v7F!%gaiyM62M1A&U4@{3k{JT4TPqPp;U~-Q_zHux z#Xg!9J~?SxaBVNCD)+G=s>vghS~3;OqHfpd@_-dkY%I%!zPMa#tF0PG$tWbH0OI=N zLM)9@XGiLcpr+ks`+ZX)E|cQDgb_Zfk_ID@@MOXW(L!Q}VY>N*g7d%Du8Xrx^|+3f zXEg020*J|VIHqCx&3TZX&5J3Az48p@zvV$X)}B(9CzrmF2Ma{JO(iu33TY-RVJ&jZv-}@bkT~^3^ z@257Pb&-Rz_fu<`I)n2EwbQFnXJPHMvLu%De(J!7CY9b#9hz|<2&>*N>4(}1Hu@og zUGJx^KvbN8QJ-;KqARBJz2EV5Foo5L+_YWweo2p0Vn&ZcSlRojpeat?viCbTX?2FE zCXcXWp?)0xdukRd@SPL&er@hfTx+YHSFbzjh+OZdKY+RS6I$2%sndm;R(ii^=D)cv zq}==cJP}uVIO_d=nHZSr{nV4Pxwz^h6bC z^h5yjJy8YH@yMi1-@#29Ngvi8deEjU%RFqbEqlLz3C)C5ij@wY^1#6Urv{~mlLHeY zDx8G%wEta$7I=~_pxwd@4B;nvB8GCK;Wt2w#=evm(KS77WV}RMqQNUTWJ)mjmiw&0 z1Q8{_D4eZFcoD3}3Vl1Ee_=we@j}0^?#su_$W4$?{%aEYmcr>Xs*Jbg=-UdP;6GrJgqpA@qsF)J}O2Fy%b&%0@|L8@Z4|d0Totk7kF)Pi0z8fWGZmBGaqivHVy@EA3{`gI9TqO z(S6wRdylAGI^AEj(&@gbl}`6Vt#rE2X{FQsODmo3OIqo4zcEP1lu+c4pfcVl^6dMB30rMENkw6L2W$VnYL>-kD%`YJxkto$noQEH`kVL4WM2ZtA|^fs39 zt@IX-(pc$Dy;?^0fclF3kvuMaHI~Pvuf+1W^lmJVOYg+;xb${Lo)+dHwz*_v10IP1}FMXScy1f_8{DR-r!-Cu*!dzuODYDH^k zvP9|qw}f`BqBS&GqDAmlAKAr0YT@F{<#5)=6`pdHhHb`UF6!Y+>fk-N&{U4fDK!Ek zs(Ab#q^S%uDPGOV=P!P|UVIjn$IvrQ3F${pWS zh<39}&-n(9hgY*J1z!?su*95#Useb2LGuI(4ymEwNP!^^1^-1IJrw-dP(2|%DR{Fk z11UIafsg|!cpR!P%)kmhtu6;E_=K<;V!@c=E!{NlWwm&LD|v<*75yt}@dC5w!24)v z0!ILMXikWZT!nBT0}0Rq6S9DIy%X7 z+*mNF7GdzcH9Uk_mI1Mx@l+gC8;E={-Yz!uyJylM+gpf=F__{P)OK8`Hcs{^1^$gX zj7jex9c%0z98Y`nCDpCZKriYAidY<^3gHmrcs^WU(KqUE1@x-;o=wZJjv7SO@{Fa< z=i8LqTSM%O-Y=|jNr`R>Pl>GAq|yT0hQJ#*m9V{-(pS%C!vGfMAm97bp(Y1RkYkJ=Wk_Hr;cLnh>~IY#oBN{F7ZMCb#rP^656}8n++!(d@W%I9S~JoLaoV zp~t{D@IE#i8;h8wV|VH^6xfDNjdqMv!tB`UUQcQ50KIX1*QOQYxWER*IMjmznz1;x zI!dNNnt#BtS8cxH*o&~K#FY>+);YF{pjUFpYPcnJ8CV}IBdNE}-ozbgsRaMZ4F>|2LTz(u-dJ;vY)NSf|BMokEG zj{T*u`8-?a*tfM&*SI~?aq0BEIQH4KIDPgSj*Xk&rDM12GZg6U0^?xg8{-&0JGQ!k zM*8%iH;(Vvv|=3Qpo|;cJWF|?O(~A8PV(teonx=qq~h2`*i_<5ozk&C9a?~g$+52< z+M|cqvAV+w!2a-T9%8J?I_#$DtxU%#MAjjd9F2^&n5_yD&s?Y<2pv1fgW-*tZIs zm5T%_6S2U&JtR%{Y@;UBuFkQ)7&f1$b&h=-8+DC)7t?X+dW$&rJ!^3aS!6gi;(3;i z-Kx(}ptlQZ&c-*!Jr{Otbyu=9T7cd-zHQTrW1E9=*E#kBY)Wx#bx~WF>Kt30OVX$~ z_B?DVaiwnQ*q;h5z{6w#R|{>BO@I>%PAr%QPNl4G9~w!P=++WwAV(}>^d zwu@$4afW2JB|hZaE}Ct5(6?PQ+X`SDP7RF0gMPLZe4lyHJNA!4MS7SW`#m9}-% zOdNYzi_`X-;n;}cTRL{LK10#CRoI4Xd}CZBW5-svdP}1P=#ArBHmx|eIVi6<$G*Q! zDUPiUn&?uUW2+-K8WqP@CoM~GW2JQLPlgsCp0>gka8zh>9%9G-M?+e0m2O|fxYtFJ zW2>`n8ggxahp=hHZ*|*6v#mHoGTRbg@NE~(wmj(DE}CrxFrK+g-2v_HXIqA2LmRX} zg>O&wybo2{GiJwrcc^5Kv19+eU8Xqpw&g|Au9%A7B5YP>i}sO;SXz^^>7HphHfrKV z?9bbUI>)}1jk?CYlj*p0K~o(29onzn9MxA5d(R5t80WFSw_gXx7a8FDJE8&3%>25*_H==+eNdj0LJs)fl+u+9Q*#Ejy>od`v;*SJ; z&oUj`<8*~Sq94xoFZ$c-C>_TO*3zBR0AEEA(mMJTeeO^y7tnVRAi0jdgHt$lc)Rh^ zTD*mGfdT#EU{L;=zGp736X2`Zo2;W>iS-ll@5cIx@J_6s2ye&wiSU-bkWBIq=X9gr z9Y|84xdp?XwS%JR#Sl~jkNth3o?Eb|^yf3r^VLchxtG9Q4N4mby22vxmF@*v1-NZn`ZujHsn@*3tOd4c0u z!Kpah3?2=5v-|_9^Zi*c?wm zoWcVs9YTG4A|8hrp(r!4+ze3Q^BCX?QQ(HMfQ?P`c6f&x)lrB4%2aySyga?@QYTGh zeu$M^=)1@+_n7wU?~&w2GJUE9yy=#}4z9;;SDGOvlsqj48+aM=91|JN58w^5G8BiR z=^vUwq;h=o$bo(j7v?FT%cH8UB?eo|y$2ev%H!>2>j1PF+Vnm%b7oZ;M^y#jI`-V#7 zZr&B4e3pnPLJW#{ZCC`QauL4>MWu9C!~?@32=TSp8!2f(B^((k2~WL}l4g;TI3^;R z6w}*KNf>cl4PG3UjAYziosI9@C~a|-hqXL9 z^p^*}o5czY#ii;z9olWae{=}j?PXI`5aL5DaO5&64Eh?)F$q9uDubaw>gD8$;m&+> zG170ZI0$i`@oM;dx(~l0W!Xn+7>jZM|DqaIHHbJZG-W}chH}W(@PX+V)>Ghya$FZK zc|_QkZ43{g76?6U()9@YT3RIRbaOoJ@jb_Dm@w6q;a?{WO|b-L^AV$)sVabu<_xNn zqQ0(FFf_sNAI*YE6Ab^@gvZmteumYP7>c<_^|MqPBs0@}-^4@}zp7>-o+r8#ybeyf z!XF5KR<1Y&8CYACL4CYL8Ai5~jI&7y;H>uWlXxeysVqrV| zE#H?sEvXD2Qg$bmkFTZ^j&X(V+26;POx&6k-daV5`_yFUw2?tgTayx2yU38XS5?Gb zDnbS4N;u#&GjcSmv&LzTy(Go$YI5MfGjgbNYQh5nFV4i(4f;Xx#mi||f)fAd)ZkRf zXVu_T`ZH>9s^QaOH7n^_B*5M4GEfO>doHa(6B*PK>}dw7gW9=IGH_GhEjG0|#-3S$ zfGWLp8Zn~LY0fua`#pS!L_KqVI$aFb_bs<}@ckAk-eWUNLeVgPS&R2l#Rv3#OmOS? z57LGS=!dwWr7pHR;_IEdILk z;TW8c4)hS~we)cV@9S&S20p-YXlWP$&OLy71uO=eSm?}Bw)BJXF=bmnZeM{dr*E}q zAA?Qk+bB~gTRKXUrd;pQ$KT%^zL9H+Q)94Lj4%PEsk{oNp)<|qi>)bmeC+Ve9FOaz z@OaW)Z?&5nD`(7cf5K>#))I>qvWBNTB48vqE?M2bGFc-7E|{HH%}I<5t!5LC*_U2t zuN;bFpcl0CR#OcfjHbrkEXO* z;M!@q5LD`{wcHsZEai#`A*M$Qfi5g6KusM-Trr&OOj`J2v#0LfI9&QoYO`?M^qU!dPbCOq zz^m_DrF?2Rk@Um4G8kt`vtn=-mh`5zTv*bZ=OmSaCVIz1NjjNrBX)230jm%!Qe%Q= z*(Hs_h-7IIQGoahOd_~j6IZ+}qGD%?k8~Ru;x?!y!(A7>eOUZRhD@wFQQ+XV4)Rx4 zO0X8fT;=GRIsl-e!v*Tmyn_jAGQ~rI47M@b&4Mj#p=7~k==O$$2$8K{XK*3$KMZ@y@wU(aDJ z3=27|iBToRI!laf8)xFnKNSU+I0my7Oe8W;7l8vZPzUpq4AjOO4H>9~X-@`fBCJ+2 z;lewU)MfNGx7N@CH86#UsDW277pj4~h<{K6cc7sfxD74Uz%6L125v%I7L1{By|+DH z=nd4;UeRy}IsRP3%n6y{Vj7ODBvWH(bI``v26Sw6D?kyj{CPIh7Bf{56tpZYVLGvy zBHa1&ZKh3T`eIwsrZC+y4F=j-!Sw;lmH>721xY0+ppL#29YSp#p*nNXf!g|S*x+t?yP#nSPhyTrOHI+XRq;XV_vkf^e)svwAggs zRN-xX$f7K_!ds0u)Y3O`h$D42rXQ`tgKuLvxS++MtwH0Tjn-y(O&?VZlZDTbykG5*H(Zm8?mbSIGP8+Q~b=qjH)oBAUlWMflTB*}U zt6QgyR;NxI2!vE)8!cMS%xlA32^~1Q+KWj1>7>*O9ZJ{eioOKX5SzM7thsbi@_j#hVOiM_=I`ggvRl+jz~o z4sT(xxejmYxb|h&Tb94KaR;MUD&akiJJ!K#jXTxBtLRbFF0W+1g0MO@a2HF@HE^fV zuY=nNPFF)sUr#kKeL-ckN;7}7dbU*=@8(;T@lL)~8E@xXmGKr@wNAcfLj~*(Tb=0l z=9`t^J^5xOcrD+o1h3|smEe_pvl86RH!H!Ne6teV&NnN;E%TF%4U*s{X1VcZ#|#He zX(tcAHm7quNFQey52rKAaG*E5EB0>J@)?j5^N3@T4WyC-WoRzAm-dnoF|XFcmZi45_9P+NE7LJk}s6B=%zv(I4={7SJ0lA47>!&qqA+?ij0Tl z3T>fR&ZAAkdxh35ef==$+7#Tz2VmUuDY%8x2Q_fB@nch02+T&STo>oTCPGeHT5ic= z*0b_p6LH&YN?y=(A-$B0z}wU)A|rOsO=XbT_Fb{i0FQwMZYv~B*F(63p9Abl@C z!sOd_-^DkoK{pyVsX_NOZd!w`>xhtnQ1m@MGB#VuDnzOwzTYfe2s*$gTpsP?D=v@H z>OpL7*g;>SyPNYt+;=DaDZvw5otSO&k=j3*8SqJm^=-W5QJ_nTizf~q{Y_#$!hfAe z_nRPw0s`-v@ZFr?L^=t+N&DXM_)Msi8~B4v+=&hR5lPWRPf`O+*Hwi1IR&uAfT6>!&fFvM}#;(B{{GynbaLP2m5clDX}G@#Wf;& z!f&tUlA^d_oixs>U zO)L7(kMz7v zsZy!xo%4mX+Dq2Pn`^RkmaNk^)MV){J0!^)YeZ$G-oA#%s_=My4G&h?-h75O>qCWJ zja#w>LctBM1gK*!a7XE{zoKVSEmieU2U$>Wxm4=3FDFtKGPwr6-Cdd7z7f6;HOB5rI@$ zQHc3ze7h0XGD92ZObkP)GIaC<*Oe_+8M?T_R?A^UUktH0tTwjlIjmvNvbKml#xbv; zntL(riQ6H_&}zaU>vObl(!M@N8>bTLb9C^rU7w>1)3495g0~mzbF4O0ka$buSoKYh zlZE=&qa*p7JoX}5Wvv|T=588mw|3K5ySv>TViqukEHW zoL${bV|x)OuvVw&R(G+nPHQ)f;iZFJY^>ASO=F$zZW`;X?545K>TVkAtnH?;&YoR0 zw%0fq8Q40GjqT!<-PUdz>$Z2(ShusA#=70zG}c|&O=I2F-89x++f8FQLY*EZ4K=nG z;jwD%6sPrev9XobZW>!@@20Vp&Tbl830@?z`mvRj-86=GJ9hEPm9^b8wz6kejqOEb zqFSA z*Tyw>b2=dNTblK#XH;~Xml>wGC1vW`=h&R$Bv-uq%`#Lux_F$smI*rR?k+jn4HW@W zi;BN7#ltiU=XT@D(j=K?x?5BFDuwCgGEhb=k=!JiVR{Y&Tz16;?sz3~KG=s7%)G|% z(hSH;*XfR^Q1a4sx+5weFI~Sd!)l&?mN=P6&qlOdzsm>kfPUqevS+AFZi8q~! ztNXNFII+yn$jj`{ z>!ycPMT@jWkgk^t##;n0Gd@`M4g40tff}@hhpN+$LQmU76q@u)iBPvia6}#4MgWc) z>K5Wu)WA)AhFMPHwg_wwVz8;>)G2FrTLgcXVT;4CP5m-=K*?JKFUe2>Y$DK?tw-4+ z*sMY67-gQ8PElHVa9afFDPyt=fV4&MT$8WgBDiA>x`EAEOD3V+htVRBu4C~jkB+c2 zn@5M(n9ZXD?91lSKDK4^Xb-!xu^x-6(@on}K<;$YGb$z6G|s39$enI_D^Wo1bU&OC zh&$bnBrCB(Nu9xuGKAb2q=ra@zB5oEADn?#XbaKyVg*)c6J15@uY$VHpiu|65$&Re zx@Ghgig^=#h1GbjGx&5KY#L*&Fy_PW>6&&4HXCVAAs}}KFV2+7oxw{odX&y!qXup1 zS0{rOlKsNFn#H=#z}UL3I)mq!rTWgm*ePaGUgX0;4$CflXOMOkq$fewjjp0XM@Cms zp+lpqsL+AYRa9u-=qf6-hpr;Fry*o^GqBVu1mw=(;~7exfqfzaa%b?m49K0q7xG}U z@x`Pw5P_&ONVgu#nve;{4M(8w4DMZn(p{50E!`-I-B~!h&fwTOm`0No?@7D9eXjuASc_&eNZ;p^&?#(yQE=nUi81YrnsrSKJN%91YyM;;2q zZv0(V3}l$?3tnJ#_T$A^$8F4XSC1=*TQdT@FKEyOEB zRSt?gq#ino3)o&@Jw$~|(l|nBFP1}MaD_wxTmWYnP}q_yCtB7Sw&*dy$Jb`zLk5qm z&BBK_o>wOciF(DF45&+i6B)5hDN!lIpHeBt<8{RFMC?~Ql1`h!uSv`f2UlDc?DQf> zdfC3p!AuHl<|geLFroN?@i6I_;8Pc6d?XK3K&6l6;WJRp%k%IS;160bH#h~K!{Pim z)(kpKEHzS(%8oUoFepzsd{cLk{kqPu(p+2f39gOqo)46W5fvYJt@u%oz=eMN@J(Ey z*GUR>nW)Sg?w+maAHsfHzM_sB1bbM*j5@qTAN@3>OPY;@yXgNXBWdL2iFm5uQYBAF z^qc0QV!!_Xk&l#exURaDR?>r$!@*v@6EPgDArM_UW_xtiSlg&*S8&%ePus<%%{ylk_(ZT&olU`cn3YzvS$tYW9@@;$J?tBUaJBsIb5uXB`v(f%T z-MZ;+0+_fQ_zSK3DXZoxhqUg8cFzSZzJHfo(z>7AJr{U=bk|(ex}VrR7kGVS*Id-P zAGZ_^O`vrbf z_jtTYGn?_c(h@N}?v)3-jeF<8juAYiWZT9^Ubf5@o&m^$O$5J7L0UFN9lN;9n*}>K zN|*)PxXPOaTbMX!LAvA}AL5?PM4-Ls?Q_^39AV92YjBkuwu=5dhpk}T$YEU=XAbLN zw9H{`<8FelUkhI?IXa3|6`!?-jU&wctcf!mDTKvUf=)F!((>C9kuKhp#a6NOno1&c zE7)etVO@;vIjqxoYZhzciIN;$tMT?M*2HD2wCY&5T+TX}f@PpKBI0JCmT{$FHe-fO zd^)F8xba19orXM_%^0#mo;b(~dEy`|>@f~7VIFVS{7^@S9HoUTUY|j zQZ^fB8z2uTbBu7-#YqQtaB(ta>%caiyvc$s#3IRpO$6VF-J|$_gq?Ss97lHF=hrix zyJt24)H$jx$vT}ROB)bn*%k@+h@6O= zb6_TN28c*7`PFa2&hAw2{ejOE_E+8272fx~uCA``mOX7-4I}ef8x14#T5Am>^I9um zWL$YICCH1@S|nD*YPE8&6n9*W#!Kg~rCQ^q^IDa7>Bi<-*G+l2ZdJ0~&U&moBZk za!9hh-=jFGCh<5|RcbDSl73_)5S1OnEptPA;S9Q>cZ$q=$>SMCIW`DlhRC zb=`6vPSjHWC*Gof{-oyEyxKzZVp9FFwX)koV=q;&)<_e?tJRvfo9mCQD*o7Wt|8PS zv#gIhTGEestxEHJLTQD{7JUw}=(IVxg=~w~_~yOn=vvtstqHj%@ljK9b@A6EO3SV) z{%})~T=03NOP$oE6}(>QQl}z0ZdqjR=(uH(Iaw`>Y}}FcCvRK)?U#}ZZ=>0Zp#Ip_ zvKK-8nOn)C=y?2QHL{&({F$p|f7y7oN?yfl97L%4<~*W) zL3GY1mQM4lBlBLdbUXTbwUuUfg?hE6W_N{pwS{JPg?hDCv%5mQTBF%rp|#`uBCEbvUC>#btuJ}#Q%yvvRb|&8GG6)d9JM!bKY`Zyx2ms(~7zv9$71)Kd2h$EL{Xz5Ub?*itcK2{&PmWSS8=z)D8W-4=r8b zrV7n@(VuD0OR-9(!*y4b^Q5H{PwKQ3)x?wT$ecGV-Cm9tr0y8SE$S~f=TXO$%rUA% z>wRj`N0y5KlJ}cxf5FDnxa#=4u67t~N>_UfHl?dw2Ak5=K7&o^YNx@HSV&!;dbtSQt7Daat*g>} zbVrHGzlvD;2wsWwuXU|8I~CNctrD8OjS9!A+brD`XV0wewBl8DvlXwZ`>lAjTH~AR zuUXx7=~_y;(7IX;an+#|YZAYRKeAf0zfa-FDvf7WqVkdghdJ8QQdD>7x~rwAZqZ{! zb&nn^s+;s!QQf8MMCD&)xcrk=RQ^>ES-Je1;f6Z%EiCZO(L}^+7+M&UB{c>)oNN(^|z*4!vHw8=O245sBl^cA|uvBjFHN+yB zKCXlK*MF<6SWZ^EJ2ZBns$w}=Z4c3etoD~^LRK48G&ZaHleg8p3RkbTkyqj3k8Lf} z?eS`>m}TqPO0|qxww_g6$m;F*GuOr}ThAU_6SHhR*O)QO*0ZYm>`-G=sMb*awL_Im zAnQcsUqxJ{y<&R74r=FBU462u+ITfyRr{{St7_ZTcvbDX8n3ENSL0Q+=W4vFwp`UU zhH{}DYPDZ}$okg~+Ry(<8}mr*hXeDX_LGAmDlaK;*r~lBiY;VSj_ztH*2?T>tXLz9 zc4NhAS$Y#IR>>M4ov8e)442Y(&ecFuE>sY?N_!;5xKXHFs2r)=OZ(;a6xHK+U5C=Y z$`zG9b5d8N{HvU|bSKY(SS9O5brn@ERE{i-Y}Anyt2B{~5|w|I3!10BT>978%T@kW z#1$p}QJpvEUqxT9)pPz)#!~6dcIx=N-a;P4G`_zq)@vo!Yf7)teng`F{MAzRrjDOyKIJs+$|rg_S>xkq zT17cO`JkE`CsoV4S*6X)qpD;XMyaGco0xU$IH`qfpBi&iZK7?QRFn9FIH_7T#*R5* zRpJjdlJbKx5Xv-?a&&^Sug6LHk)@oR998-WNLdN1q$-(~DILc2exjYz6sCNioY9Pv zsx*%|yVAAEQJNJ>SxLJ>i9Sy*2{KCi_nRdQRGU5wK;FV@OpoYFFR1JkX# zMze)^;mB&47l=KwN+tzL%%iZzr*u6|{;X{@>v8g0Yt4F`yw*yy9w)E0)U3zJYb`YE zaq?QN&UfVMP@`Kln{QLys@a@YC97sjz?NU*^D7!D_dN3jO>5G_$r_*1^*CL-Wwllk z`jz%VR%@wQkCQ*Hg=RfYUaQrun$4A0qgyqb)2el=W^-DVteP!t73Gj*jnC6KsYbV6 zvKx=8)~%P!N>z#HniDDyCuaSdaZ(GN|H!ZL(L^R$sYdfzGuf_Ql~t`)5$YJb<#!IOVJxmR--A3#=X7G-tq zMyX1(D64BXb@L|Ip@~+qQk5=R>6Uvc>1i%8zs5&*iMc0|%}TvR(Hb9(FDY8%Q@RqT zYe8+HS&37xs%WjmOBIe)0b9JPVzziyg>8jougZ;E;XPVS7FmbZu}g=pa;w!;t`2qb zy1e8XQU79?{#^1_eDS-&jWd0#TMs#v%5+%QD%o0pt6it=^8JO_ipfb>u^#nr@iZ<+ zP9$GXj^fMcpk9psr}z`R-lapwm*lx(!OZGQ=-f^GU3T?;@%3(X-RnBa%lq*TA_OD8p$-mCB zaINra7IVm%rBS|Fe~RDGXQ)5JA2c$Tj$Neb@)z)eqtU2s|4Qd}U8{Puf2DO@NA=$C zsW`n=RzDr5x6JBi;`A0-{cN0Go7K<7=`~sXe4JjL)i1>9RayOFoX+~!$-<9@R$XWx z*1t|ZC>5i#{%Yfh7@hU6ll`V*bk<+JR2!qS{&k6yaXRZ?7vF!Ze_i5q$+(gJmtCt~ zsm^uatk?{>9-JMUA=ia-Vl(9WaBggdTqhQNlp;5F^B0-x#iDQPHq6jA+soQkR<&%C z)lbA;L9QF8#Ae9#q~7z zGeZt(+JrHJ_^9;G()HXFU zy4J06%J$GAz2LXh08LOx8r*_2!-I}0@oQ**Zv`J;D3#mDYebF7S9G*|2zpOby6mF1uTdP^{*|KRxu@2%xHHss`crk^ z_AgE9ZRFuqK?Yg~~yMnPz>eVvescWPB z@ioN{pNj@zUT-1qL^gGN8<~;Q)i8g&bi)5`GK19c|1_CFHZJ^ywwnq?$X8rmY%)iU zd@tgUn#|EsrlLDGx~I&JwL&RX^3j@R+AIC`OC7uAI-^EgN|$eUe?51XDI2@#noFIc z^J^WH&An2;BT-R*6f)Fxf32(R0bJO}OqWM)q&u~jNxs4cNxDq!Uhn>zZ0KCrI8B$Q zYo{(RcYUpk`s8QBd6jJ26fUZBM_JbRvP^>)c23isEt{*IJiTx7WL@PMznpAI(rqmz8?O!n97{++HJd%P-Jps1V4MAI4SWInerF~&2<)-7`D zE8j$W>9too6z_f9Q2o}6ufJ5hYP+G@x&3$A%LC7bXO^93)SOU{_OHDz-+OypZ+Sen zpuYOe9zu}BcVdo~8p_O0(JJ=_N6SpZi!$YQrhZZ=FL&$s>TB)PcBVy}fHczT1P6tA zzP#4{^={oda@WF+@nW4UDl0uwHvQ@HS~r=a`kT_rQ9A$A+UgiZt@6?zQzITmuhfcf(JL+FZF;@Z zGOoYGkt~flrnRs_f3`OAOh~V^6~CobYSh|Dy`p@nUQu3DuhhoXRJ=*d$gF7@S5x`q zSximkQ)e+X73UaN)3)-YO?%a~RdF?~RUhAOe2i?YP3!-Q5~U`myjh~u=9C|lC@pfz z_v>e#X`RB`yy1SW(Ls4hEqiKsad}0pmeMO~k(FLiYqRuBLAi@>W2MR4cCHe9#*UF%N{AjKwMx7kC$*L( z=rKpNkz0=#sjVz}FFd?s`_@;v!PaAqv}#%F6n9*Wtdfe;YUN3OoYq1g*VR35{zZFu6s|LG|3@_CGa5l~)rR-Z~aHLY1s!k5{W@Ek(RqBkSkm)mpiEk5^kHe$s^6 zGV$Xk)K;=qBL2*+<)ioUY8$zIj91$x{yJV2S~Srb!iy$aLx|BtYX~!%Xbqu86RjcK zXreWQ98I)_u%n6A5PCG#8f_CljBhI;NE59g4AHkno+4k@o|&pl0_s~MtJcP}MpkVR z(;8W|WlU>i)mAaBkyTsAv_@8KBXdu>QI}QQ%Jf34D&IHOj}0Cx-!^WdHRQX-`mvEc zwzjF(knb7m$42(pmQA&We8*TnHnPXIZmKop`^8PQMqAlkH@2iS$sXG>rZw_@v1l`ZA`h1Lj72Npi`2YtEZT&Cs!TX`dZS}L zK5o^>EflF$vf8+z&nObBWu`1vtSNq7v~i)e#jp4^7F)<%LF{Q;%5*`j*h=O`V#U@n zJrXOnkr|R$v8_y!G#pLEjZh_v)#KG_*>o~qt&#mIA-=Jx)@UmmX2iCY_{Jt$LwuvYHOLZ)cZ)VLE3&UVONusGDN^$+DcU@( zNX@gP=q)0uvhd2 zXw{;fj?t<_Yy2ET>c>WHE!UzsC$(0hY0jAiyJ&IeY$4j&(rd|;rWQN5Q1d;{Bio8r^ufpmS{u<$#FtoCa>G(o zVx8RTl+-a-qFTnK*V;%O50#e4!Cl=_E~oMRla!bhRc|!D^D2mHcsIUhD~M`*H@@2| zh^j-1UU$zoPrgjGZlF`>xy@tYk0M-r7A_s{Tqs{L@fIDZC-4tX7y`SuQa~pl?%#> zs#i3fofXw+*K~GPRHI$f+4(Z-5=CEcZg@eeS2UfSFH_su`7*Vg-HP>8y`nj7R#d&B z>FlhiM!cr8v!WXDn$FIbSy%kNc)p(bGPRwZFH_su`7*Vg-CEVNR`rTzfMrG1E1J%x zSffU~W(;LTHR3g6C|{;_faS~7c6Po@^*%$%h|iZ3jd)FG=gX`s-W;Ie1u4%kwzMkwGPRwZFH_suZCOv%E1J`0Mb#@BU}Qx# z;)}Mb%wKI*R3l!~+4(Z-s1vAHNIc1S5++3_+D43 z3_x0_?$Mn&tE&FdojI$j!5@ESHToOhfftusCrkVqM$PrA>Z3PfRpp2q&kNKat1O`L zoPtsraI{o?)OgmQUR8ah>wO;ELK#8qnOi6;Xgu#ze`eK3@v7=0UGL}1t&_)drEQf} zRh;xajmo&BrRpQynX{_uBVF%jRb>mh-p{Ja7IeLzFSkw}HzFd9p=gZaie!g7Q z`z2VYW_+R+DQPS}E2@>X8q8YJ5O7MO9B-BT!WJ)HMP{RZm?bKh?froIt!W$GJ&QHH9g zZp2em_0%;2MO9B-BT!WJ)HOn`%(~*;F$?v~m8oxpT$%bt$d##Y1jZ+-o;tIqsOqU} z1d6Jjx<;U=>ZxmlT$y#nUyUo&Ggqd*5pref8zEPwwh?L=FR6NJz?cRZm?b@JLlpT_aFb_0%;& zu1qZ$^JVHAAy=lp5pref8-dY;s;35wH564nb&Wt#)l=696jeQSjgTu-3&wnz`bNl= zsc(c_nfgXx6rt*=0i(=A$la@|r>+qws(R`gfugFXt`Tx&YQdNY> z7n|rCAs3tI8zEPw9*ns%^^K4#Q{M==GWCs+i%qoNp(Yob=o=vyo9G)M7n|rCAy=l> zJLJpMH$tvVeIw+`)HgydHqpAsnp|w6Z-iWIqHly;Y@%<3T$x%InJ-h{2)Q!#jgTu- z-w3(bL>nj6=F8N2hkTh@7nv_p8z;!ru5?*UoRAe&J#~$ci%s;6 zkc&<9jgTu-3&wnz`bNl=sc(c_nfgY^#U@%X)>2gU)VRp37!xOC#h5rDE5^(xTR$x8%BXmQNyd z>@GWAmcHS~*XY!W(jIkhNQT00LA2w-8M2EeRhB=C%c9P~&4J`w8Zl?dW|8f1WNAsv zm2|3;eT%zwl$Y`fTMIS35@wL165HZRd84E33ffUM_7Cdc{%m-Xd=_aK+32?LlBGV= zEA6^<5abqKB-Q7VcQ)nG^)Jcv;_G#?0q`%$^t!y$x$T!_s(YioY(ZRji&TG2U8P6f zkgp8RkN!3s$(HURV4UKJ|9;T5k6qa(Ugq+3`DaeB;Lr4RrY$PT~FS zqN8P~b!sQ?zp5wt4aaQuXqnP}x!Y^6D`HeOs(qsjt$V1Ks~Wapqb#j@)cmq6Eqm1d zvMeonwD@INYJ0T&Wm#%^wEAUPs(ZBlWm&3vw2>?ghgP=I@;Qxe9i?AoOE6j2plcS@ zaok5t2A4!jy4GhFo<=@b)bJc~{w)3KI==B5*UZb*eq5GUWe@od@=qp=n#$7g+p<;N z4;xiS?es>9)^-18yH`8C+$C|p(Mbw9UVQ15mxMWzrD)H74z@y;4xQeplDG65UPVED zy$eg|*g@7W#$@T-u9NH?tOz+X?n1eLT=!SH$@{wv8&$QLdPdXZ^}2R1t9R_b*2rBI zG6=~;UJxg%H`qJNO35ZqUnlQwGxxlD#O8_e#%E$f7*b7foeQe$8nrgYrb5X)01&L|0j9T3XdY z4k@Fn#9M`37-$itHR&q5M>la6y0J}7wMW(;e!HpKbbhUiv_})ANOjxE*1=8W5dYmy zHY{!;hctS-#HOZlNQ<;9-nND<@>09kUzJS=WvfuxQ$Z*(q)}aq^c*LInhi%_QI;;R zweMOoHj4C4UEb*0URu22_-dFzU5hyVhU2R!OLkk$-;U4l;!Ewiy&)TL#1``6t97!0 zMK^Knv4y-S-0dj%Z`j~PS0T-(`i~mvuN1XrhZkR#$DR#q zQLMl8nrt!KL6%=N?6Bf2%4C~;`%bj=+`Te*o9ST|gs!^>9XQ}Hb z_nNZTu-x|il5*I#>JDx;kY-5%fWB7ko=1yRu2soRbFnv3U=-8+6; zmy%&D6Lo?Pa&>Y?jS&S!B(!q+q>P<>F{BioA$HC4#!g>Ed`$gn{-=E|s(cic)OTmmHfn{o$X-jf zKfkZ(kDQ+E&`fNGT#vq{$)FmuCf}oRW?Pf%(FHNRQPZQ)qeXjH7HUycMxAU;pzqPb zIZBr_=Ucr-_2{=^dQ>W*dUQ)nkJjXR^iN}YLT+9P=J{8#dFp#~Ky04+9{r2hYsvO# z(cXiFwo*MR*OKkgw5G$d8FD?^MUz3bc5S{#J8Lc>n;~nX^J99Ww!TMaHeE)YOpWS$ zv~Z5n73}#QtyMkxMof=NB~*`Y)>J_?g4{5Yx8I5B30cWn=+VE7%~Ri_{bTdg_vo9k z*OKkg?`qmAd#$-14P!IpdbD#R$0bo;)+b9MJDGO3(KR&6A@|n}@8=47o%AVpQ|~VO zGc=qFZIGwCL_Bi0Q@lGThi6fyS6^%Y&DXoiOF9i>&7vH2YGy}18Pd=P6=hICp1kYU z&`lTVLX>VDz9aAY#9XN?XzbFitAwrc0fLfnG~Z}49U;5k%Vea?g~eQnoTs~7=|9Bl zywb*zci~Fq(~4@=K?1JEvo0!&+JI1*Qjc$S=~gml&>%y0$LylrIty)HI7c`2#m>@d z)a&YVpH1oNTcJ(q>O-SV=`G|jQ&W0NS;ow|+QJXC_nL%y2)MN&=@lul+)b>kFW>A|jHJL$e#nh0f4Qlz)tLgDqvDvRuPDsS?X zGBcMYcXxihQ61{O)uX#SEl~|9Pgy(5Cz~5~KtsKbJ5`nap@BqCC-aN%xBtnHfBw^- z{HXhPzxSgz<*q)+eeNP9yZk4Ni(&4+=8K)WtC!xJC(8c4i9{mo{=>h0^QSG__2~5D zAO2j{$(JX7H~ni!7)!rl|J|EE{ozl3Ac0(2!l{tIrIvof>hR`|zWa~z37>SLtU?M- zS?z!Fiy!}7wwnA}?tEqW^S$!jAOGM-Z~ipVN=}(A%2i+cVKJ43VpbK3=_Xg~II5Uc z-!OhC-Z5Y5s&807V5wK@FIt_c`%l07OO;!J9w(`44~m-Jk#PCqI_?rLx5DvNr3!VSS$$Klfr~?h1W%-nyTE_vgR(S>jjU zaTCD5>IwYosN*|k!oYus-j&}Zel5BvzbX8BbY6Z<{6=(Eel7gR=(POW_|52~{5tr0 zbXQ*{#<_B;D^zl$!}Zy zb@V^v_Yd$l(Vxoif5wlZZ_Do=;%}oj8~!fpD!+e(zmK}e zZ#(=ndR2a3#LuEXmf!aHdGw0>cEB&9m*lr2{vqlhzc1mRqd%12m+>#rAIR@3_5M6iK2xh9LU)l6W0M5&c_9yn$he{o)J z5G5q>T}(&xr6j(G8HhfY#P=~1(Q`@s0J9K1lf;{tjp&Ia{sMClJ(9#c}eu(*q?n>gXu>jF+N&F2KBDyJwA7K%q>yr3eEJk!y5agb{6!)H-0K5v`NddSH|ht&!9QV6+jflGIzk7$aICsg1x`BU&b@O~5!K zS|X{p~EF+pEshz-VBbp$o zUBDb88YijUz+595BdNE6c}6r!QhR{;Ml?cFdw~T;G)z+afQ3dhL{j^KMMgA8QU`#= zMl?WD2Z1F<)K5}}fTc#%M^cA@Wk%FXQb&O0M)dzAbre`(ME@+QW57xy`oEGo4y-bw zf0Wb-V6_qbFG-yQHX6}SBy|edWJG@}snft_Bl;UjodLEO(GMkc7T9V;e<`VRz&0a# zQ&Q)F?MC!{NnHST7}0knbrINUL_H++4zSCJ{->ng6}vQ||1PQb#4e5KJCb@|?9zz7 zC8-a@E{*7QNqs1GX+(9B`Uu!>M1LZwkAVY5^qQnD0SAq!v!pHqhm7c(lDYyMHlj|F zx(XaIqL(FgO>Ekbu)$7T7rQi~|01ayVwXnrpCxru?9zzZO6r!_r4hB3)NSB`5w(=m z9pIu7)k^9v@Qx8xOX?o*t`Ysdr0xUn8PR`|)C1ssBl;aleIhn(MBk9qL$PTi`nseZ ziA@{Pf0Wc?v1udvbxA!Dn>M2VAgQNf(?;~Gl6odKZAAZ0QlE-V8_~a!)N`?EBl=g8 z`b=!vh<-&J2Jq)8u-kRKtcFt;B!Ml1>v88FAND5 zgntIUG{~2s2EH=Lmth8aCZk)T4mZ#%8QqZ72m`&7(KShpG|(p*U6Ir%1AUXxB}t7o z&@UN%B&jh5`X{3gBsJE+uw-;jQsWE^Pex}XHQvC8B>6JIz{n)|GSR@OB>6JQ!006T zGTFeGB>6JMz}O`DGS$GiB>6JU!1yHjGTp$0B>6JKz{Di^GSk4MB>6JSz~m(PGTXqE zB>6JOz|6JW!1N^fGT*?AB>A$yz|181ve3Y+B>A$)!0aUXve>|)WHe7| zw8X&TWHd)oOARbZk}t~)EKQOx%MC0`k}oR^EKiazD-Enjk}skX_+k}n$!tWT0JZyDH-Bwscfcq>W1Y%;JhNxp10uqjEt zY%#DoNxp0~uq8>pY%{PmNxp11uq{cx>@ct=8U0LZw9~-eWc2rv+GSv0l6={1V1JT) zdE3B&B>A$(z`-Q>ve&?&B>A$>z~LnMvfsdwB>8f{z|kc6a?rrBB>8g4!0{yca@fF$ zB>8g0z{w=}a@4@7B>8g8!09CUa@@d~B>8f}z}Y1Ea?-%LB>8g6!1*Nka@xR!B>8g2 zz{Mo_a@N2{$*7&w=$wI%lhJ>Z)OiD!lH|(;1DBKJ%S8iMlH|)f2CgQ_mv;?ZOOh|| z8MvM#U*0!xBT2q|VBltweEHD8tt9#Kk%3Q=B*@2N(@7HKlGt>T1i36Wog_i7h)pL+ zkgHny_Zi`)}7=zpqyG)TFcf~GK zB*;Cn%M=N6-@t$r3G%?ez!VAciGe{W66B$Q!6_2tk%1v866CSiWr~b=B6gV~Bc6&~ zrWk`f6T3_?2KiL%GQ}9=x!7fjG010Pmnp^|pNn0l7=wHvc9~)f@}<~TN^T~Ee_~rH zxt$RHB{3&OM)XQzZi>`ajYW0KgFA_c}Ku{%Wyj7#F}6e%!1i9IP&U_ugmQ>4JeB=)69 zfk{d1PmuzXlQ@tf1*Rl%FhvSXP2y0B6quI8$rSB;dJ?BnwDTEBoKDfsXC`qbMLVCB z#Mu<>e0CD&Qnd3qNt{p7&gUj^A;maiUJ@5mj3eeJ@llF)z95N@Q?&DiNnA?N&KD(d zIYm2PoWzwB?R-fRS5vg}rAb^%(ax78aXm#lU!KH`6zzOP5;s${^OZ^5O3}_&C2>1N zJ71l|ofPeSO%iugwDYw|+)L5U*Cla3MLS=g#Df&=d_xkSq-f`FCGjvtJKvbZqZI9Y zQxcC;j3YKD@g&7KVoMTFQ&D>vVOx`UmLdhVCGlyB6xg1`^AsttBZ*!n?=^NN(c9#` z#;zp#n7r56okU+#rVk|kOQN4C69^LjCDGrMDFliCk{Dp}PGnya15MtE>`!8l$vcq) zNeni5Cvq@}Atvuc4ka0iFNtv`8F40w@g^B@Hi-!)8F4O&i6$9wK8Z;t z8F3+r$tD?bF^O3wDez7bvrSUqU9n4(am0IKmnP$g_r)$v#t|QgU7BRXhhmo|8S#?|A|eTGC3jfpV+i1(-RW^C9&C*2?~k-#HP*Yze?(f*t98=6cYc5O`9@JA@QHs zv?&u6690)!n^7xCJr|ocWzIt4Ke1_3CM_iX6Pq?=)JXpJ#lTk+R6poqXOP>^uo8(L16i%4rOTQFOn&eCW6i%7s%YYP4 zo8-&D6wa9B%b*m_n&ivi6waCC%a9b#o8-&T6fT(L%diwKnv61rr|^!+C}Ttl@0yG< zMy7DdBwt3QaM>hZMyGJaBwxm)aMdJV#-?!1Bwxm*aNQ(d#;0(@jD8_?n~=gylTpUR z6mFS}GA5;P+a!G^r*Ow4eWs*v*Cc(Wrf|9Z(> z&rQ;2aSC6Uq|cHR`dTu#A@N@d{VbW>ko(^h`dc!)A@{#246tN+L+*c57-(^RV`U11 zESZ>;``;7>Tb$`wox%`{GaYME7;2F|Yf~6zkv{8E7;ce1>r)tEkv2EG zB7HWdFxn!0Hl;AeB7HWeFxDb{wxlr5B7L@|Fy114wxuw^B7L@}Fwr7?cBC-LB7JtI zFxet~cBL@IB7JtJFx4V`-cDhfMf&VXVY)^7>`h^wMZWAyVZKGa>`!5VMZO$JVWCC7 z986)6#TevJ3X3hqAcs>}Vlf6elEPAp^f{WsGK=&%mcnw2^f{iw3XAkPk-|!g^f{Tr zDvR_vmBMO^^f{fv8jJKflfqhy^f{ZtI*ar2ooKjTY(i zP70eW(&yb2He006dns(ONT2sp*lLkJAEdC&B7HtgVY?;t@e?1Vu-A%=-|mSi^1qK$ z*eCz{ot{uLOP5mEZwY5IiOVS*kiUPUCyd&jcvrM5DIBz9O4LtWP2rGezuyx>La^4bNSftZ!;e|yy-4R|` zLMK0QS9l?L|5Hz>nW%fh42y)iFU+t=s0YFfi-h__m|>An4}}?)%&iI|g&CGit_mZC z8J5hh3L}LXmQ1e-BZV23%&!U~Q+Usk307fb3h!Go!zzqS;R8#iScQ=(d}zrWt1wcS zVaZIYFjAOd$yBN^QkY@MT&gfqm|@9esxZ>TEsGIQFB7*dMnJty+_4w|^)YeRBBA=4 zxMz`2{Y>1qNT~iM9#|yQ027~BB-B6?4=oaEkcmeY2{qWnV~d0uV&aKKLJc+X)FPpV znRsTAP{U1pYLQSQOgy(psF5ZCO)@FsL>|Aut=yeCcd;tsIex#vPh_LCVJX3 z=_>cgCVJU2>ne;iG0>K|Rhc6+G02w5Rhc6+G1!*bRhc6+F~p7zOKOUVp>}joQd3O~ zv!nfznr33SEt9V@M`&V%O+w8uG14ZXW||mflTfovjJ8Rr*(S!=B-9)eV{H;@u8DCr z2{q5ec$c(I%l5nwVshP>W1Vwn?bPCZ^aV)Dja@Z4zp!iD@ALhUlK(I%mGo7iNNP;Z;qY?DxXOl+}9sJ$k(+9cFI6WeSO zYQKr?HVJjW#15N;I%s02O+pFqggRy7pw0N`w24DD{6&YC!4Gd?CY!FC_`oKcZkYJc zCYx@WxMq_+w@h5ONuS#$ZrG&H9TPWg(&w(Q#3p_22}^8w#3M1Hu*8;UJQ5=cOKf?_ zBQc_|#3q{_3QKIV>5;I+CYv4$OKh^~iLk_$Cq2SHVTm1Cl6odAv7?lvJ{6YOks+z) z!V+5^1PT9yCAK^X68;HGY6Mq;6lBhP~58Ht6yjyw#KXCxN- zIr20}<_InHcjR%9%n@1`;K=hJnIp6?&>@?KS{USzO~Wha^0nIp6? z)RBimGDm1(m_u@nvM}5sxkg(U;gDQoER1wWuCW$IIV9IO3!@#9YrKUq4#_pa!dQpo znrLC1Lvl^BFy0}#CR>=`kX%zNOms-DsTL+VB-b->FcgUu>78W>U(>x0c9kOY@g+&h8w7|k*hiqDCVTr@&X_1Ac z4x^{V7M3}To|afx>yS-LEv$3Mrezk^J7m*x3mY7=X@!Ni9I|Ppg^do`w93LJhiqDH zVY5Rvt+BAhA)D4(*y@l?>nv<@$forcwmW3g1`9hJvgs`gI~}rVqlH}#*|f>RZij5z zY~gK(Y}#UBk3%+XwXoMAo3>fl=a5a?E$ny5rX3azIAqgK3kMytX_tjV4%xKZ!eNJO zdfUPghiuwo;iyA4?X_^sA)EGDIPQ>5`z@Ss$fg4pPC8`MK?|oGvgwe8(+=5m*uoiy zY&v4$tV1>(wQ$ZMn~qsH?~qN$EqvgRJ|`@E=#V}qEqvsVKBp{v?2taEEnIR)pEDLN zJEYH93s)S{=bVMB4(W5=!ZnBVxnSYCL;75_aKj;e-m!4gA${JpaLXZm-m`GqVPy2a zg*y%-qYo_Hbr>0aXyKkiHhpB_zC$*BY~g`JHeIsti94t@84%u|m!lw?|bW3>PGBUa?Ja8Eq-4PzRjEwFI4_rn@_k;&7 zBcuDm1DBD}1L1+o$mkQ{fy>C~q42;ZeI5x9T+-*U@W3T~o(KC~bK!x@$mk2C~OW}dbd$+HI2QKg3dfFK0l0Lm` zjCV<&-ZmzAA>C?}~WS8{mZ)28Az6`K2+a+HH+L+^#FN18%b;*~( zHs-nH%Mcs$UGin9jRh|GGR($8mwXv+W06a~jIgoTC0|C`SmKf|qiig7$(PYKmbr|K z#@JZyGBO%#V};AeXq=6eF6lGg#wwTenP6kJOZrT-vBo8RCfQi)l0K7dtaC}9DK^%- zq|a0v8(h+7nvJ(y(r3DjjV|M+88$Y#jGJcK*z7WHnq^~`OZv>VvD+nm=Gb`KC4J`F z*yEBu^K9&ONuT*P_PM0b0vr2X(r2NK11{;a$i_jJ^jU1MJXQho3F6pz%#z~j-S#9H#OZu#_aoQz)*4jAZl0NHfoOMZ` z^)}AAq|XK$=Uvk0EgKhH(r2TMi!SN2$;LY_>9g6!yDsUo#l|IXI)zY+Q30`|PxF-DT{v%f=0tvCnQBH(k=_Z5y{-(r1s2+b-#|*Tx-}^x0?Q zu1ostw{g!UeGb^T?~*)UHXgd9&k-AsT+-*LjmIwObIisQm-IPq z9L|EdH zO%H`79@+HB#uSfidTe8=M>ajNG0o$=(o-ALJTv^^GL1%4wic)*FXm=Jd$gWgOwi1HQ2!_kK`KSV6{hb4Rx@_ zBe{k-SnH8o!yT;iNUjkM)_Ww^NCz7{l53QMZ64V)+QANwGm>K*?DRMzIo820k28|v z9PG}HtMLxr&W@`I4)$cn)kFt-v*T)#gMHa?HQB-b?6{iZ;6QdSbl!TIdCTH@e??8sT_;3JPjTIS$mk3?GT;F3oot#EMJ zBav1*xZ;sWs~lYQ7!R#>aLr>pw8p`8kMYo22RA(OYMq0d9(lFi!7Y!x+Th@}M_#?< z;EqRLZFF$gBd<0&xaW~qn;qQu$g3?59(d%{RtKMWEMY+UhQ)5)FZEUJ9y@iS8qG`)FZFHdb%?XM)~w~XB~|8>FLfn7~|8^op&(Sr>DE%V4P1+chSLk zpPud=2NQgHx_2E+^y%r|b1=!Lr+eSQWS^ey0|&Ew`mzrl%<)N@j~vYPNt%xx%=1Z_ zOAhAyB+X^9bDyNSB6jYRG*`vWeUj#y*tt*ATo*g{NtzpC=RQeuQ|#O)X>N&~`y|b6 zv2&lKxg&P&lQeh5&V7>Rp4hoh(%ct2_eq)uV&^`epM4^B?(_NCL$Pz8&(9u-o%?)# z_SnH&KA)dGaj?;He=b#c@uY5KW1 z=94u2T^#r6!3MZE;nRZ+baB$B2OH$#lur*f*u`m|9&CtA^<0xZu-+jdXF*rw1G5;vJtJY_yAaeR{AlE-v}>QDa?P@frJ!b8*#Y>@(iQ zHJ`E11Q*w{<7J|Y8$M&7NiJ^sjD04%xaBkUnd0KM&)8?Gi#tAJpJ^`c`XtSC7x#RU zW`>LVK1nmv#RH$DndRaWpQM@X;-OE{%yIF^Cu!!oc0&^@=kBXq3=H_(eYJ~00iV0CaWOdHbN96_h6G&Qx6Z}TfKScVyBHRbG#gwD5BSvV zEf?bgj*X2j#s?f5n_Nr?I5sxBm>6(uY;iFu;MmyeVsgN-vCYMlfMa93i>U#}#ts+L z0*;NHE~W<@8@pW02sk!&yO!Z z2VBe#7~LFnu^?b{bI8TQfYHri7mEUpoFgt42aIlxx>yo0x;f@zX~5{_xQk^0qni^h zmIsV(PP$kZkSeEKtPe<)(=Ijyq{|#$q zs$6ohHy~9myVw_yDpy?W4@i}(E)E2w$~B=tK&o693Itr6b3-T)aBa>_p+La3Ik$uY z0hx1KC=hUM&K;pZz_ovOg#rQB{@oJ_1YG-fUnmf8<<0}4K){tdp9lp4uH1Pj6bQI- z=aEn#;L4rHLV&>%WTgC~bKyTIC!Et9~A?2lQ6`J=_TBtp<3w8PHn|^l&Snw;JT(c0g}6*u$NGY#QR>Za_8- z^>8mBn}&I~AJCT#_wXPfn?`u}Bp{ncdUzO+O`|+K3dp9>9v%l|(-;p=0>|t0a4oK z{%@^^2_YG`&cnozj9c$vQb@*a@Gvkc`{zVRlHy?eH)sB;$5^m>ZIDyFAPb$++Df=7(h5+a4B#WZWJP z3qvw)uZKk;8Mn{F;*gBn?_o(u#vSmmG$i8=dRP{cafduC56QU09#({8+z}5eLo)8D zhgBits$(8jhm5O^dsq`Pt~%jiZAb#1^sp`@0Z(~YACiElJ!}X`z%w4+3Q54T9yW#~ z;5iSQLK5)2hs_}gc)`P#kOaKwVQWYNzT;tANCLj=VS7jdzUN^_NCLj^VP{AJe&AtO zNCJN7VRuLZe&pfpkOchL!=8`?yyRhTNCIB=urDM5uXxxWl7Lq|90*CkYaR}UB;a)q zhe8tYhKIu;33$`Pk&pzu<>6>Z0^as;EF=N%csL%CfOkEd2uZ+u9!`cN;C&CLLK5(S zhtnYm_=$%zAqn`5UK@R^Op{)le5^{7UYmWaPLp0+e5^^6UR!;v zO_N^Re5^~8UfX@FPm^9dd~8UQUORofl_tG*`Pi5yy>|Q9lqS92_OUrldhPMCB~5zm z^|3WgdhPSEElqmu_pv=qdL8hwBTaf8^szHddL8nyD@}SG_OUxndL8lccAE4$>SIru z^g8BaZ<_Qv?qgq?^g7{Vf130<>El3}^g89^V4Czg?c-3I^g83?aGLZw>*Gk8^g8F` zXqxmo@8ein=#@!a@Nr!Fvr5L8{5v9jdeO&;basukkCW-_8fzb?(%CiEK2E2zYpi{o zNoUts`#77e2^x^Zus~xO^V(0@ll!-yXE8KG%0plSd%8j?g(qrq}W|yO_~(DC#*@6 zV)unLX;SQguqI84eIl$$lVT5rHEB}pk+3FBiaqvmI~^sZU7q;3laA!McjBp!yXi>9 z49|SrOGjTw>Qf*0)6r*=dhX*vI#PE2nQ$r{J(bkw!l`uhSW;gIqteksNqs4NN=FYQ z^_B1`9o>^u&j3%;jN^I*c$Q`y*E_&hY0|4tfSwt?!_haufDGT^=oesMhVO9n4=^Ib z71#p;jLdKa_P_w6G9=BQ0HZS`&ENo&GGxe*0FyIh$j|_@GTAlO0TyO>H#a=MiVS%% zBEb3#i7+z2h75@?D!^MA#xkP=Y|qf%#{}4sp}mg{uq(saopAx)&d|!o2RM|W9Zv{w zDnrgs3~)L_&QA((CPU6o4sbR@&QA$&F2hK7YJl?@M!M4iT*$D6rU$r~VGGR&@J@!2 z?#ux1W*F(t3h-Wr^q(Ez{S4c0PJj-sS*bW@vd^WDI3!d0S-+m2n1mTYz3=obTHnpm!PP`*sBAQ^xte zodJfFk?gwy3@szscLx|&#-4sV!0?WhDDv8FghO`#u?UW$g3)GV01m_5%UN zl#%QQ1B@*r*$)L6SH=->IKcQalKn`431uYv(Et<6NcLkgV#`SO<1%8)NcIx}rj(KF zCj(3^BiT;{m{vxzpAIm+jATC(U`83qem20&GLrqAjP^2;{d|DgWhDEB0CUPn_KN}L zmXYl51ejMwvcDT(ei_OBUV!Cgy!Uxu?4ykS|APQ4%XsheVSrU-y!ZJi!0IyI`+OW= zO&RZfE(KUy#(9~`0oIjqUgnC}RvG7Iu8M7yabD({*j5?mWv&ON<9y#kvDGrp_dN=*r;PJ`j|1#2<9y$f0Q<@~-}f}Y{xZ(@JqvK4j8CjS4RElG zPpqDcotN>6)n@??m+^_!=VIq&Wbqeb=VfH^mtyB-Wbs#G=VfGZ&k*O!I0M`(#Dy}> z0QU}Yv5fcBeL}ob#)z_Sh^e7#`wIc0`N_aW^|6MuxbT9TB5K+|Q1P(IFm` z(bta&@ktqd{n!u>%joOJg?Lm(Uq3#?<1+gC2_c@8(brE5@wAMjnH1t#8A&ra#HVE> z&6E(&%Sf83AwDZ3X{Lqvyo{uo9^#8Kl4eGTFUv@pnIXO^BWY%Z=vkg!KNzA{d3OC^ zh~DMd^@AY>l`~SD7h-TZpC-)@F{GSNlNN*+TF$3Q3quSm=hLJ`A%>UpY0}~lBg^R* zmV_8p&Ny;uh|%SYBbS93Q_eVYd5E#)^cpKdj4P+tSQ%n`IlacJ5EIII2fRAO#B!2m zO^8Y5B+c3olgmk(bs?sdlQio?Of4sAHiVc~PSU&;VtP4AvoXYsa*}3Ki23DY$>tCX z%E^)~Ar_XCC0j!*Dkn>}g;-Kf-?Kf$>T-IQ9U<0~)4S{pv8kN?V^@gH<@6uBLu@Ih z|9CsZ)^hrfJt4N0(|_y@v8S9o*cW1NIeD-@#F27Z{DBZh%W3fkLmVro#UBcBqMZG9 zSVns}E%}Iy@p6*?sEq7#+V3$L&*kL(aT(9$w96ARipv>6os_X#o_&5SBetAz(`gxN z<$NxDMn+gU%$SbC;{_Hil1%nI7a7xp^)lKQ63XbtxA=XyVo8Atwu7ck5j`UFl z{pDThqYC=Vdm-MgphvtfeN;h@_#njLitIhJ^if6jo;k$n3dWO>RKY22t_Jk%$Rn-z?Q`lfNKf+MzH8n-JrV*96Y zr-Jd&fHdw_FdiD1#^VZ(*gAkGzL{N#vGT%;7Z1rDGjeV8m%jz@^R5Hp~lg6P+Qe|x#M=EJ4>(V$@$ywL+ zX`HBJ&umEJR3-WHRvPbA(l2aGJ zN7LxvjFdVi%bT&C-<6(jMvlLi#`d)c z+njOd@C^1fXWTg=gQLx9=OZ&X)|`>$s0@xb=RNG`49+#@s2h{P`R1hZ*bFW-CzZ!# z@L_X~zwsG-)STmQLI&5H^G{7uT>eseN*at05Yld)4Wc-EXFY-$EyHRlMM zmO;-KNYUvT^m>6$K4xUl=LNRQ%nXLUKu*reVE7B< z@!Gr$#=gLKZGHyhUSL}-$Y8!Ti<384x4hJJV;8OVQqxV=H!n5a+(m1> z%)u>PwB8F@w|3D6FKJ|37j5!V=k3;CFLmBw{q@4woz`D3({EQ7ZS!&s*xf~Yy^wW} zb=pf_+uKD4yl8S?7ajDX$^Bh)$O~f+bkSii)9+vx9r2P-4w*K*DE6>v!%Id#(nZI; zWb~t5bkYkMj&;!~FMT`SMW?;&bSJv#j29N4G&Ol)@hMZ2m#&^RHF@F28B>!N+MYEH zc}acey6BddUG01q-Sx7eT`)Cy;l{--dhE^Tzb<;}&F4Q;n3o;wN*BHI!i}q4^wtY4 zu9?ETFyeX_ee#lDZgkNXFJ!oBs`J8wTV3?a3k7a>(O)lLLfkR^`RLZ&E*j`#7r)m< zLwxk;eise*krN+u(I_A3@L?B?@zIY*T{OuioY_2`IvdHO<_Lj{KgdKBOSgqUHQm_@49H6kGsnIF52iL z9eyz7_@MGf(~FNA%BL>c;Ug!0?xNj3rrH#r~W%%qDh`N)KSyXdNqB>2xd?c<)?s2ZbjODm z1{UbPk4ZPEK#zR+{8yl-K6F2%K+k<-@1X^H=|k`*L7LG8`j@Zim;w#(li|h|Xpo4!s;3N+ErE;+eCll@!~rxa+apAB+qfu{S(Ytsre)1QBTx=K8rj%`DJ7 zKN)UTffo27_3Q#I@{{4_6lj$nzRWGq8b9xi%`4D4KS^PJfj0PI_JRU!@^f2SSfDL_ zE(D7Tw9QX-7Z+%|pB-mOfp+>K&C&wx_M_ru1v>19CCdwR)K89BQJ~{~IKHw#C;e!5 zRe?_XsqX3mo%J*6))eTxAEK`<&;>s#URR(?epB)P|9|TXbj2V0-xr}1Y-Vn-9{bVn z#sb~*qu))|SwAG$Y@PL^+AY>aKe=IRfj;;l!8YrspR~2TKtKH`bcgjW0JnD*XkY+t z@3JlisNC)X4G!>T-kt)D3UHm>TcFVaYPhdJV*+H}{RJ8uU;-W}(3Aj`J6ND;0V;RM zx)`8xhYK_#fd7vaXnp|KA1%bW=FcnhO^^z`Hs1u9KX0rbLFUg}b5Iany(`f2 zAi8>App`*%^})Ijq-q}vv^L1D{HZ|egJ|uuc_~OGzZ7U=kV<~FZUvb?-^@2bD*4^I z70llNty{tT4X{9ag83Vubt}l!`CXtRK{Dzeb5)Q!|1Hq5Aa(v{{tA*&`xoj&kPTo! zp-u+z^}s@%3X&xT73y@5>+#@1oeARbA%!{{BvlM8)VU!0!LUM|52D!Ng}M+#u_Fp~ zF^FPE7V1*IZ=(uzIp4R@g}RdO+n7RK&G&6=p{@nl;l>r}dXRZGzEC%U5O+eMZsxl> zu~4^yOtwjdx*gNgC4&^(^1t8HIWtgv>Jw z^&-f$n^mayK^QT+P#^yHgRS-raiKm2xrNLv)TbcRZeF222f2mJFVvSHb8kVRz6N=+ zu&_|y@;zTvsP94UON$HjBgiaVQmCK#?k_FWuOOLYS)qOhnTpE`^(V-ag%ySR8)QDN zEY!as``@ZU^>;{@s|z*2f$D1tHPGS7!rDR&a(J?^u23T#h_t>?qa28|p-`h8h_ta# zV;tTU-c+cu4(|$YF4Q=OOunU1;~jXlwNMirc(tui6CHT9y-<@Jc(tQYlO5>4vrtnU z66dZ$O?9{w?=I9d2b%3E)O3gJxwlX=9Ma6bLd|rTxBCmVz+uWBDAYoSoO!TNiyXLi zs8EX?xOTWuOB}d%q)2rnJZx2-xTVt!}qvv3-!*ipJ%n- zP%s}k_WP{%4YB#iVSD{xK62PzKbnsmzRdk(K63an_p|xP;mh1F<|BvQ_N)2GVYmHe zK63an_q+MX;mh0~<|BtMbAOtT9KOu`Wj=EFGWWOn$l=?#KjtHcZ{z-&j~u>@`)581 z;r;$D4G8f?+yIvbhWH+Lpi6^7e2+WGrNJRKIXTv`-j zI~?!Qk`O6lf=kOn-0&y5v?7F)C%LpL#7;Qbr8Ob^JH@4SAuelEUD_7Hm(yI@5rWy% zUD_4GjWb-@6N1z;UD_8SmCbVLK!~|I+oeMxd^yLZBO$0f*QH}2+&Isr<00HQ-=!0w z{4-#ePKKDZ3tc)DV%9El>2!!$yV#{OA-uZ8rOP4QxYVU9A>6pkrK=&_xZI^{A>6pa zrRyQ`@=BL(gh(i>T)G)z{;qcERtT@Iap_@*gtFG9MU3w8>L)qfe%TPZ5x%4WO&wnnx4l$FryYwc6r+2vYHiV~l zy7VrDr+2yZK7^-tyYwN1r}wz@J%nrby7VK2YxlX-KgaCJm=ElFbVs-DJ)DLy5Q34FrK++S_?BTFS)cfOftG` zstdCxUU6xCm@Da3mo|i%rq^8B7>1|UO^IRVs1F+GR#@4%Rz!})h$Tsjx#sl*GH&WG7CUz#Sv?Cq~ilVLW?*QUuZ&mG>FCd2HQ zZ%vb7o;$pA>2{cH^Sx;@%yWkiro=GB{Al_M^M1-FQ(YKNem1>?`Hj&pE`18;`RCG? zFuyGN&82T)sQ2A86pr07vi@-CXE=7t{_CepzrwK__FunDLlNBb+cXrxJ%3yp86ltk zb!k+DeEQEc6k)3McWX?99dm$NlOw#*JJ78u5#CQ3b z+&Ua#OPKD~kqBGD47ZL(;Mz>Ljzw_FEVs@^$dj|(Iu{{N&T;E}1b@tR>p}#7%ya8v z1b@tT>r#X}$^y48N4RS(bn8llw7JNws}bC@*sW_3+_S{3yAk}c)UA6F{ISff`w{%H z+^q)@(&h@c9!5x;E8Th&A$hEF>v074taj^31oy0Q>uCh{taa;I1oy0S>um&otas~O z1b=LB>wN@&Y;@~G1b=LD>th6eYvIHuY<25P1b=LE>uUsmYZ-68W$xo9&u}YlxcO;tqDCtXV7J`b z7-fRpc573V33kV=%~2-UUAMMGnPB(a+8Sko-FItSlnM60{1IhFJv4trnNg3-A5mu1 zWAjIp8TG{c5oJa_HGf2zQP0dDQF7;V^GB52`NI4WC3n6we?*yJugo7&lI3gjN0emw z#{3Z_S-v%YL`jzK+`1kmS-yAcMwDdv!L6H7lI2IYZbeC!pG@OXvg2pdc$Dn;#WWs; ziC<0QQL^JVw_Zm{hu__L6NQdHOyg0~;ZM_elyvyZbQ;a)KhtS6pa0zY9?j=Jw|+$P z`OkD3V_Nn1Xh1Cg48)^>F%sTDj|Rm^c!N9|86)8h_Gna$gg3;a(J`K<4)thEj3)uZ zJenLM;SKj_N{oaz!lS7%65dFUro~8jqdb}$BjJtqXkLs9+!&AM$GE_a^=LtitT)c1 zg)#QG@g6OTvA<35XmO0xH_@XdF?c%3qopzYHrbCv+ox?knd+ZfqwwMSoKD0_`ZUt=hHtw-NtD0`hp-(x6yy+=P{D0_oPzhaPU zqes7EJSW}c(VrL><;@=bjWPGPc=Rs@*S31pKTe&unM&f+dAq43PMvp{O5)Ucr$>Y1 z)OnXjL*mqVw?{+c)On9b!{TsluSa9!)Onw&Bo4Xun@Zx4>wu{w4!I6`G(Aq84|y~r zPMr^XG%L;>*LI=%N}irGqmKcjlk0AHv^!3&yJ@(|v_H<= zy6e%gIFsp~N5|t#ru(M4IFsptM#bMo7k6y=N-8YZk z#9`fcb3h!{{V)f_Vck!2KpfWnG6%$A-EY%#oW1ss={e3```7fGpo9NR&j~u%zeocU z`QK0|(x62CHx!CAIFbJig(3|}0ttp+y>-VAma1q$vqlH@rww z6R>VXk)|cMRgEmt+ytx}Rit?dSU0*z^AoUcOpz8OVBOdvElj|=aYb5`fOX@Gv^aqW zClqN(0uN3s($WMToK&PW30yY0NNW?gY)X-~Byic(B5h4TvuQ=zmVjo{i?lrf&1Mv7 zUjmoSEYki2E}K=PV+nTH*+n{@U_Y8uq!S79!Q3L9Opp)e73ow0!p$$z#RLgpL6I&c zNB|3qbU8r+SX87d2@=5KB3(_e!!9Y(wFEot(jr|?u){7Z(v1Z9V0n>lCddaXigYVM zK3G|#+X?c)svUkRr8 z#v=Vr;EGMw^CWxdX6t#9J#>rpJjouqwMe6r2`4p`5Vkn5oJJPElD zS#+4a3Av6~&y%p}sP#Mvn~qt}lPLSR^*o8PPgu{Bu<4}rJPDgl6=_EjHl4Pf zCrQm`igX|eo6Z*LU=lW+E7GAPY&u`0!%5h5p-4xPu<2rvjwWH#CDTh1HeEKoB+1lQ zOfN|?^;OeLl1zQANEec@>ALA937c+M&y%F)o7VFr&oFNl=|PgM@^+CPCfO?Q6zN5h z=aqMh^fJl!5BG}nA;|`LzepdGeBtn*NI#PNy^4oL`k7>xd{m?XDYX08e4awPPl_}m zMS6W&q>(AK`^@^5LY>d8ZzZ>inJkx{@xd9V+#F!u-d24-^U{DOrgI|McS2u%Abq0I|Y@$6lqTiDt|4~-V{{+ zX0=bj-S1ZW6iOl&14)^L| zin%(%t4As3>PW91rQ9QaG|j8O`5sO8>R-M`Gra1b zW{;og)vz?rg=cv+Jk9$lv%MOT<^nm#tC4B;__vpo+#Tn8H7N~27I-x? z%|^e_t66C_`bAzXOv8x9UM)()h$UXFOhbXCUad;Al`r#ZW12cI_i9s`I}1Mz3zA z@%bj}RvIU7wr-_y@)oaNrt|x+SFh6f{nxA4>HPld)thvF|Mlu^8Yl0xzNJZ#yR2_% zQsi#yTbdNP$NHAW=XsyBTcGRl@nf(3FtAQEj+i|Z3WteX#yc(P#W1jSCNQR7g%BwLM>U`R(u^H-o z#;d6r$Z*!HX&I*4Ij`nsAj5gD=4F^_7ra`UfeaVDT9#pMUGi#e1~OdsYF!3RUh!&c z1~OdrYFmcg^qN=OGidUUoB|_R^~t8S>gI(?*88_S&?OA+NnLZDh!6Z%rE+^4dG=Z-!?R z@6DGPo=tqP{$|)dKU#nP_s1RWclNEn8Gf1Xv-LMaUi)JGEk@5@t-r?Vt6$7`6BJX<9LP zZGca6i`h*F`ZTYYyf(us!ykiQT8;SP8Xx>={}t)=AJXd zr?bV}b7uNBJ>eHuUHrHi7eJ*BRF8Aq6G4pbTPhX4C z{Ysy{6?2nW<OBG6HCZzn|+#8LSEbA)8rEJ+E$;YltAijK20rw)Z0xjCCtkmK20xSUhed1 zMhWwBmrwIc*h6>ww4j7Ex5uZ2C2)MNPm4<6_&%Q&moP8)`?REld3nI}Qo=+$=+l}K zCgLH}O9{F^YL5Zwb0TZh9#}_a{s*CFuU7PX|iS{VAUg zmXPL7n_f!DYiCR^CFHfUrk4`(+Bwrp2{Yil>7|4jaKZFa!VI`*dMSbOmrO4uQ2w${ zcS?9haK)#)B|Iaz>eIav(%dzl?w3IM>!z0yD1XEBQUc{~`t+y-%HQ(oaS4>a?bE9g zzGl7S)9Vtl-d&&Gl#uoA`SiAguUYT=^sa=jSs(cHz9ja>sPfSCQo`RRd*svi5}qJD zHocVawBU*9r4-#i^=Visx_{==@KSXD+@}$x=>CQ2r4-%2G`*Cf`&T}VE=BjReHv3r zLV06)DMj~hO)sTnkawn+QgY&Z(@QDS;DhO<6jyvSy_DjLPo|erT=CiTQi?0S7+*@! z{a52lDZ2k=d@1D?`Q7+ZN{akpdMRZZ{4~9k;)-8Btu4hBzkOO)N{akrd?{sn|7(0H zB}M)-zLb(8`}?({6ju!JYiB9080gooQg)m{ejO~u6@&dcREjHx_;s=r-4FHaR4KY2 z=GVnibU)m$OQq<3gkP6S(fvrju9TwtQGQ)5Mfaoqx>kzr$M|)U$0AX#Z_NUWS^OSeJf=e%<}7dDXy69*N;+MF~_f;rMP0QUjxe6-skx>u#D|} zzF&jN*xncTHMopfvCyv}Wz332ehn>SRxI{wOc~Q)iC<&OxREXOYf2f@V3}W2%a{hs z{hCuoep%ty+%odZO26inkzZE%HNT8$u-dN$WlV!Lel09xdtd9-<_-#xz*( z*Qzq6!3MupmoW`C`n9HvX|Tz!wPj3$&3>&b!xdZn+FFJyw)(ZL3|DOPYi}94-|pAG zGIYPgul;50M?3vGP(}*cWqK)N8tgW`l;Mg!ejP5u6?^?UQidz``E|OC6tv&3Gi9Wp z1Ad(?BLyAw>s%SGIONy)GF)-kuM1_&iX*0%GF)-guN!5!;+UzVjEs5Qv{A;+bi%JE zWf1A4U(d>Lz$w38l)<6Xrk64@(iy+rltG`frie0_bIx>7#x?%Db-xVKT=46687b(Z zUw_NkG%xwpznm0#*%VREB);O;$Z|A()vpQVWb|u(O)p2q*R6x)RPBa!u$-#hv<{Y2 zwOiJ~a;kRQuf^q5?T%kd%Bk92zm}H6l6!tFD~Bcb{aRiQOCI>OqMVvOwCYIYj?%WGK(y|E%ZbJQMzDWGE+X{<7|ulQw@F8Opg1{xKbt za~=Ha*VA&Yga1qsJA9#MLF~t7|_dd=rbswSNXmT4(N3`^cfP+n{wzg zG@#Gr>{i19`kL?C@PNMM`!*t=ALUHqkpcCu$iM#*(7+0wB99Jea0R(@Oh7{`cy>HC zpfMHfoZ|u-R{>wf2Q;CAw_YX$G^ry0{3D=Q6=a%80nMp^C6fc1SHaFXC7=Zrq|K=T zt*9W~Obcjb1stCq(1wcq^WT6rR^*@m2DGUHj?W5ca|Qd+?0|Mv!0|Z&?XH01a|1e5 z0jcK&bhv^&bbdgmDyY?hfKFGS@r40hs^H$VD4@#~?4gSTx>7-{mIQRQ0#Yvx=voD& zUKY^Z3P`;?pnDaNdPP9@D zDp2wIfZkT1;tc`4t3bsY1A1S9iZ=!Hp@Mn2IiQaf%*!nSeX4*UTdltp>{iwumKz}RH_)hC@C0qV3>u)6qez*0vGJpTG{#L^Ay#WocBt`BEXk;by-XGBD zN@{-~ps|%akv$mD)JiITD4=PTOwPjr&8?*3M*><>NyU!_w7Qb%cPyYal~nwAKx-?h z_=$klRZ{Vj0j;m3;-{?pl~nw+b-yxy|FiB_qSLe1{mT6P&$?g9Y&>t>uVgk}2xw0w zv+-g;dn=iZmjc>X$!xqF(Edsi3Dw==01pR0(~a2lTWO`n(9}Stay&X^g0ZKCg@s zmE_6S#)!(;152B4j1iUmPRd);UnTFRyfgh(k~ZI){wjGl<%8+3l3!8zXtb#0?^u2^ zT2%5YDxU-TUdb1(Ujq79$*O>Wnof$!$s)GD8gE~`1&Y2a|*(%ci?4Zt7 zk^bidb-s%9KR2igRivPKL0zmO1 zPOv6lz+pbFNl2K|QTv zp05q+SrzkqT~N>Son9Z*i+ray1og5C5^fCYRTU)M6x8b~NVqwuH&u{uOHgmCAmP@a z-c>=uZ9%=Sf`r?H`c}o}up_ANRgiFJP(P};GVKcLXBAhb-9i1T;>xrqsNYpwnf3_4aw%8{{}TI%Vatd)QD{U{pX-Y zWl_Yjphjm=#POiUWKqP4pvGoV#L1w>Wl_YbpvGrW#Oa_WWKqPKpeAM^>)D_tWyx#j zf|{H~8|QM_IUgBdEn$xO>wam4&;vf?Aqo4&F9zWtoF_%v)LJ;N75BWTEmsb6FND-#3?K zq4I;ER%fB|!=Tn=q4J}k)@GsdSPw8|1>9OA^NYN zPG=$dZ}W5(qW>{ZXCeAu^K=%X|1(c#A$osD7qV1vzx}Sw0BON`+LXc689%doPXh)B- z5M+#_$5{w6*3pwJydUT2X%^m(cl0dFMliwA^DG;|L`N^OYy^`Wz05KVCOdkSWg1Lz z^g7ElnCj?F7QRe#^f}8knC|FHmT54<(bp^lnd#_T7J|%j^gRnfW;^ znCs|Q7J|%k^g9bd<~#b6g&+$Y{mnv zsAg6yb2PG=S+U&FsA_HxD;$lkCRMF;G^v`~!zxFUtC^lDPodPg&=;l>6>GppIvHaePB%@eFmj%HUwkj;+fR6~$0j^j@DL_>yA2FS52-v=4gF2x$d~5 z4b|}Fgrn`%5agtz9n}!zl%t*15ahI@UDXiejHBJv5ag_*J=GB8oTI(f5ahh0ebo@; zf}{P_5agnx1Jw}ZlB0vw5ahC>L)8%Eilf8T5ag<(Bh?V(nxmuD+zGEcI#x~UyW!|~ zHBW`tl-tvTaac%GYS>MOhcvZ@>^LH%X*FcWks(d5Av=x=X3RAJXC)o{mfiX-N&c)x?mN*6?&>Qb@~cxRy;0 zX?YD>)|8M|)Q}^lhP1whd)Ty)HrC+%=^<^d;Z8Fnq^&hLer8D9YH<9lkapC-``IBK zsKLo|LON8#J#21Bhik}*^FlgOLr$C@($N|yzaXUJHTZX7Nat#B=%SD=)IjgWAzjM% zZAnO1YGC%#kgnFi>}4TcufeO!L%Nsm){2ns=exBsqzCzKtqSR34Q^Z=(xV#OxF)2> zHMntYNKa~TL%64JmNyTQ?r2IWYC z$3hyMqpQb58j@q4p9pDaj(L7Eq+vPc`KgeG=jiY0kVfQ~=VwA1nPZ-x4QW)4d44XW z(YgHd-;l=S^3Q+GDLHg-(KMc;)0a%yIi~pKkY?uK^OcZh=a}7BLzX1_;B83za_j-`LfW5W4|s1r%CQH02a7`D#sr1$sCnq5BO}3%CQH0F-PUNy?zbpSdO<;zL~djJd6Gw(uo{b*dHOC%<(Mx zXGo`VJd6Gn(&-$}qJM{UCdaerKOvpX@$TSX^JR|P;lGg1=eQmA59>mX89yMbi#cZe zz_2dmnDK+cx}0Oi4-V@}ju}5BtgAW5Ff^=dIcEH@u&(Er@x#Nqkz>Y>29_5$; zlfrtOV+KqP>q(9oFeR*~Id+JtVLi)1m1$u;&#P{FSTFLbn-SK_91~(@Sg&$Sh*@F1 z&M_fohxI1MgqRc7+Z@c98`irV%$XO~`y9-fAJ&H)%vliD#~cY@VOXDXB!ER>ea?{p z7KimE2a%S9^*aZ1mWK5w2XmH%^*0A|mWMT@mKm@jtf95cfR$klt7QhP3Tt>RGhlUC zBWjreYr+~?%M4f>)~H%$z`C$T*D?dvhc&jAbhsg`@wKpIV^|Yw$%LE2npDeN*c{g6 zS~B65u%^~RkgZ`&uVpT53u|UA+}Ix0tXjCSBdpoAaARj!i)tamuCNx@G9h+{wWO8_ zu_vshwM>Y;VJ)j=57-yh@>=$Q{b8-Bg&+sQT3O2;a4@V@wd?_h!dhJmOAd#%rj|)^ zB&@Zy>;Xr^T2~8Ij)k?pmYH%qtPQoyloMfXtYr^48P<+k_;M<&owe}gbXdD;;met@ zcGtp}vtjM2g)isA+FJ`>&WE+H7QS2vYkw_#xfs@gTKIA)tb?`i<#JeuYT?V3uuj%O zkgH*xs)Zoe!a7|GL9T~&rWS(S2lqvh`Z*k zS{QN9yj2S$?whx2VZ;OTRxONpXx^%Y5s%DUwJ_qbd8-yiJTY(8!icBlty&oI%)C_# zBc7YLYGK3+^Hwd4cxm3M<@v%Z^Hwcc@3ncWmgfs^%pbM9&GOd#QA@&mXa1<=ZI<`u zk6PY7{$T#7<*V9{=8sywx%g!MsO6iB&*qO>lHixHzSfcizlQa#mL&KstnalX!S7-H ztL2-EA7S;c!{JNe}y%$j_L9{tU+~5mp@?*uEXbl&0BT&{GWNN4xjgrXiObh zZ$Lz2>&SWoBN|sn)*BSj_&T!Q;D{#Fk@bc|G_j7XH#DM2b!5F^5lyZm>kW@+N*!5m zL_|~TcoSx1MAPbc_Bkq|>2+KTM@KZHjwCoHqM3Ch!Lbp|sv`-Gi)eNo6c``TqB?v& zA)>`~_JQUI?}_eh_=)*17=6GwT>AuC!%e2%z(KOZLebn%!_D89W!8lL_6!40ShA9 zRmTii7}4%JX27C|_S7*07Du$Vjv25dqJ4FwhouqiuVV%*i|BYA?p_|zi8|c9BBE1u zuzh7jXX^0us))|zJH0xh3w2x!*Fih;G(F>U9y_s)N+)Bf4D&sW(J)rw&qY zjOcD1q}~+K(>fBs=7^rvkpQ+t^t=xLZjI<=9emyv(d#-~yFH?}btJ(Z5xuJ;3GR&O zeH}?~S47|I@apb}e$?UBJrVt^!>fBE`c;Ql_eC_Qo-XWify9@-u@UDZ?PBc`T$7<<$-R8Mt}nR4nO>+y)@)Kk+F5zVWIrzay?P|q|yWjd&5 zN}jgv*F(oM5v{GqGiM`OUr!~^MYORVr<{*yb3L5AV2Y@xx)-gN^?CkTFYELCvtHKc z`4`cFdh*rPhz{0M-D?pYs;9cwBRX79b#Fv;q#ionjOb`Rbi5VOv3lx!+Z0g`9q*VT z>Y?M^h)&i+$9txYdgypRqSN){s|Ti%dh*r7h%VPt@kbF|si)$Pt^4&{!Jb5PuO8|> zjp%+o)O!}u!+Q4G=hpLjo|e9d=v6&C>`Uu@Jx@ztS@-K>7woCWYwLMEgnJXw$9kSz zyp8B{JzRSi(bszZzQlV|L_IY75Yd1J^!(Af-+-P!S@#?0!e{Gw16}xH9BQEAUyVZz zOr~$fp#~m4Tx%a1DB_PQLSs>DaD|u);Dl@8XVPz1};xSqT1NNR1C? z$M~quHjo}BM0KtKjZci~d;{rWQdAcjNDq^vy4Zl)r$lwBf%Gsns+$eugK1ISY9Jp> zkLq^5_A{coldt{EsO~m!C!7`4y#}Z!e7BZF^{xSbERE`G0}fag)t`JnmPhrs0gbPS z>R$sIUl~>Zu3Q3FMKz!+Z&9y~YG7BMDXocWP*=LOHmbp0>DIcaMs?*9xIU`UUAY8q zh-yq%Qs2g?#&)GMo1&W1l`d?KYHC;ZfGtr?>>+8rAf!%z$lC&FIPu*dEo)uFQZP zQ7z~S<#(ELy26}YQLX4omfvm4>B{c6$CT5Rw7%CA(Um#9&wAb!zU+@`e^(~)0qc2J zlzlL&<6R;3A?tZpQuE=cu689gAF;l5g}_Ix;$3n4v8dj3Ws5!@)!VLY(I>3VUD={f zM)kfcSMgI(edx+f>vU8fyTXGrQT^zO_s>T4vnw~Pb5`d@HsSMD=SDPn!Rp+ICNEl@ z8_Bzuq8ic&i!Vntw2{1f#p>LMCa+qZ8`0#osKzy-$?H*#ZzR#)h-yM3Gw)_p6C0U% zx1yTVh+=O?HMtSR-mxAvLW{fBqef_P&wA8|V((jz8d2;6>ro?$eP}&uM6r*en$?J6 zA4j#Y5lud^9yP-3r`DN9?jX<1(~VU3c~qMknRzeF-Hq%dFU{SJ+(BNMyBn$f>!`Lh zGX36IR~wmrZ>_71Tsq!aR~xx>ypQTYBbSa3Q5|fgM<1g)(MT6QMRl@~E_{yaR3pzO zzC?Apk!KTMqdL==|NR4_KqEc+9@UjbZj3+7$&Il1rzxV5=gGg!jg9=C-fz=JBLw~v z)$2xn6ZvmcpBwpd?O#-18u@aqe@wp{QR0A@{xqV*fiVs4mcReSG^!h^Z*WW#yXBw% z#x%1V_xqtSE$qf#HY}z^-Pp^9$F#T`d2K{YOS+NQM#i+X8+mP1Ov}2F*G9**wi}!r z6Vv)`xN&SuJG$Y)aWU=c#@rtt)1GcPZ$eD_x}n60F&*ee7MK*%p>F7Ja!jYYp}HwC zo$baYW@=35yP>sdFh!~xf=?b5!2OfWPzD6UGIjjX2o=~8&ha@Ot-t``4`jO zZd7P)O!vDnndZgxup3!meoT+Mp{oTkJ?(~T7sm9w8~I>SOz*pKb6XtK_ijw~B{2=? z4$YRvG^jgOTNcxh?l5e5OvAcUs}(Vg=+2y3XPW`sV zw5~h#+ZNNd?$m0#b)h?T*M?$ltn)ww(KcaK%FJLzVxRkAxi z+Gn-uPHNe2wd&5D@PO5-J6YvmOh3A_p&hbX_26=MIHr+3=>CzICiUR|{%A~7dhmaL z%xchs|NG-sgC6|fpRgMA;Q#)l)u0F6KV>!OL8nh!4SLY&Gp4^DTsqFiw6RBi|BY#L z4_JIYrma0l85d&O-h-5JF{Yh8NEw$*e?6FBmt#8816o{(=~xd^##O6J4;XRH>e7Q* zc0HyuJ-CqGi0NDpu3$G~y3hk!+=}T^50cyMn6C7I<9A}Z)`M;KZcI0Nz>Ryxn;ul? zeoS|IK#K=4-Rr^T`Y@(vJz&J6nBMhZBYkZ8>%pe^B&MG|c)#SSdA|qy<+GUn_J9%3 zW9r|NY4swefjuGcOXERLHqBQt4ebecU&l1IC$xAI)A*jGw715Ho@^cOVw&8Ox&J<< z**%$HA7Yx@lQjG>rujYL?k6KiPwMyCxY3jPeKA_}q<&wG5k0BZH|s)A>hj&X(386S zh-rUMYVb3rgFUIiFROD;-n;p2mF&q@{>LiW6FUC2TJ@v`|EyL$sX_m^p5_0&1LAt$ z6GaS+>w8apJ}9mMz4-QPa9ksM@s+`lxJLJaghS&R+lx10hQ&3$7klmSxF+_3jw9ll z+>32?WL&d*<==maYi=)?I6AIny-18>;#$#*TrxJURlV4S#>KU!7tbZf$F;5(SL_LK zZRiCZC&sn27u)BgxOVqq5>Jk6Z!g?EC9eIw@W<4+4)($y)8abZ3x7u4|hF(ae3R4=+eJFYXm=>D9z&h?`EbK|ryYS3-jZ;(u-NUAg(*T z=>EdEp7dhEE{f}IFSeb;(yz#`U=u({x!}Uwe`ImRs$6@ho9QTt9n} zZdS(iyBBkHRa}F6bIn^F*U;Y7Z%tgodsDx))}!9kZ=H3aH?>-CUFgju*$~&%-b|8> zaZT?HOE$$dvp17uv-PMqlVnR=i+hviw#K!(H+9(-*V^9HWqVv(dsBlQac%ES4R*$L zpf}TCS6nB1!-(B+o$d`I_QZ9$H`!uuTvvNT!hLbw?M-IbZ~E(v_YcJNt~WkEXf^1~ zUUtaz*96B8$2F)4jvt9@NE6*Z8rQHUx_>OL5lwXecwD2J=>CbgCN_Fjq8@%|6EUw25r?$-3VJhd!HAn)s#lFL8Zo z;@9TCnk$<4+Z5m8`qRX>s^8=K+r)29{V*N$fw4d18q!^LZ4LKpgw{zoNru@B4{ozSH|cxy~Tm-~?Z z$0l^857}&7LRb4hpYaLZ=|jGskkH*eB#(&+-RlE$CM9&g5BYv_LJ#`D>?sL7?87{o zn$V*@%=2jpJ?=w7nV!&-eAQ+o^t2C?eP%+>`jFRVCG@-xTd z=v5yk*t~>3_QA>X6Z+8yaxF+`KwpyY!h{C)h4PCM8q}9Gw>Y7}eM!Dc5*pH%iZ4xQ zXkT*OvV?~9g=WhW8s3*&ydt4-eYt|IOlW*xX27b1CiJBA^rZ`16WZJt z)@@5@OJBOM-4xN6I`2s6a9@1BGod4W@%gTVPWMHByAwLo7bowr{`N(GdlS0V7ya$C z9`!|k`>nctx!NDFn)bzm2NU|#7Y`mv=yP8@csQXiec6DHB=of}Tk6q-zV+pO+hYm+ z?TZJGC-ko`?^~QmsDD3daMC){j~bk^&h(=Or>!6TQ0E!zLO-r4XRY@A*xt`2G_oIx zJ)h9%emsA>kkFWZq{xd2jqS%YxMV%*2Tw0skNUyWE7qfa@bqdz)BACGzn0Lveh~9| zLi77U%o_jx8WCbXg-TDz6d`hLvI+X-#!M+&-QF6&1Mx@+F*M+&-^(7Apv?0!Pm z`jPq`m_PdQMB<@oydT-;Q9`f#@yy||)wCaXxF-qy?8h%TJ+-|fLj(O;U@nsLf2Q&=ee+eyb=HK?&YS5g2|1Y7H&1mDRv8kEa_|4SWoPYn%)Y;4y{Uf2Z z%~1YlLhG9I@Bdl-n)C1fS^b*P(4U01H>07y3GHY`L;n)m*^GwzC$*~?9}P%qcQb?= znADzT2sbFHz0DAAa8mo4aoLch_BZ3Qp-CNRMq$H}I@pZDh9`BXInTeO4mabnkx3nC z&cFYc)Y0br`+rHDX@-Pjk~-TA3CAXNt{D%GOX_?x9vq+4g=R=NA*qYa+(9NLb*Y&x zW>Qj@n{nvmq^>mM&?!k>ZHALmle*RnC#NNKy%|nUPwGZ9{+*H3&1N_`GpSq6aB@~s zx0~VQ?4%wwL&7;pJ#I#wbCY_~3<>8Y^|Toh&QI!DGuPDxNj+~yy9<+g(M+mel+?>+ zIJr2fSIznTH>uanD0^vAZ<@KnE=%fdb3Xqi^{$ysX+=`+o7oXpCiS72B)BT6kIn2% ztCRZC%(l2Dsh`adWNlIdT9{z#k{Z~;)7&@0spf@brDteG8s`V7hO?(+^GeEzE^SN!@K>E<8@^UJG;Ki7B=PCO$RA zw(z{-nW?UYP58N~u7xM9FHChUymR-`RM!GAUzzG!xSPE;)wS^J#&44P)xy_ZZrr1_0{@E1UO2xk(}e@$v| zD;58i)R0zY#rLF!wvwNJBsHv++W$;ycq>%?WomC_>i#yhx6*|_ruJ6y^IubYE6o09 zYHy_<{Zks-%5&HODUEC8Iqblc#<#M$4oYc4E6-sEr!=vZw=ssKG^v%V-_VpMw{pK4 zmeQ0~vd{38rnZuOMx->YmFzPzrRl9?pHV5zXeIlMPHBEC_p31}Eo&v+j7@26E8HEI z(w0`pIzFY{t*~=KN_$#i=fsruwzADmN@-s!`DJoS`&*gVQ&Kw63R$P7bg&h&PD|-f zD`cIX(&5(p{V$~>t&nwQN=I8E>#UTHwL;d}DIITxtaDO2(F$4TrgX9uvd&BCR4Zhi zpVH}8$hshDy3_!xNLPw*IVK4nv`y|!riqg-E75g>r%Sa3U}A1bh{Pq zZb<1-D`ef6(#uv{wkf3#t+;G+O5a<#rff;+Un}oDY)z?u8|>Vc(ttMDxjm(UZLo7k zN`u;9=gyP{x53U`DGh0Zox4*S+6FuKq%^E8|Ne7I!`oozzLZ9^!Os0DjckLR2T~f< z20IU?G`bCT9!hCU8|*x6I&FiUM@*+}u=A+tv@QSsv+1-Ab{;pKw!zL5rqedqdD3*+ z20KrgPTOGTY13&N>^x&SZG)X>O{ZTWPhXo(+u-RN(`g&e zA>Nu!+qks7Go7}v3BNa;wy_C+FrBus34b)5wy_C+GM%=u34b=7wy_C+N$E}-fB)xe zN_X4%ZRT$&-D~4M`8}okZS2WEQhLzFUjq7>(!(}>x%pR0FWUGUj=xRgZTxccpOjv; z@y+eulwP;7MgL3bO&eQu|Fqt=;ne|Yy=%j(1JionhF1rr^`Q-~4o>T18(tlf)~7bS zIy9}%ZFqH9T3_1m>hQF_w&B$gX?<(Mt0U9;-iB94rS+o?uZ~XZXB%D}lh&^`ygD|m z-)(qxTv~tHn3Chu`rAfEnvmANHs?b>lh&qooV+%z&FwgOU0Pe( zaq{}KwzlKs4QXv_$H^Ph+TMI_s9Vc&2YiB!7-jdd?cAUI5t=;W7d0Se0+L_7Q z(>mPF)ZLNRsdnb-&a^JJv+e9k>qa~K%9ifM9ygt~inASR&s~6K6 z*uh-Al-8gQ=IZ6NMs_ecucS4qgUNX{t0okRPit%klkR}?^66XCS_k>`ooTIuw+-K$);gH0A53cmV4yEwnnI?=(~hQHG~ z-@*HYf6}_p!RG(hblO46{g>9I4pMIaj4pTJw*eVl>A-ITGrHP=-v(uLtpmRe&ggCj zjvA8Dy$&2TG^6_+IBHl%4?1wv@QfaI;HVK9J?g+wBQtv3fulxc^rQnvjn3$G2eWZZ zMsGTB)Yy#Pc93JoW%RCt96LUv_Z>{m2^oFpz;6>X`q)8^os`k14sz_|jDB`-U6_*5 zuMXzw)Qo<2;Kpeg{psMkFg>Hc9b6Y?Wc06tsXH^H{+%S%Ss4xJB&p8MXm}@gxH%b( z=p?Dm&1hsN&ll!pG^&#~dgf;|x|1v2f{ey=l4BQUG`5o~-J*=fb#h%;oYB-y?gvXU zn%2qvU};9vJ4w0AGMdrJ{a|@UGdsB-tjK6qC-;Mu8O`n_1Fy%siwv4uPG8?yNw6&AjxFe%&oy^9a8Ex;xtGhDV(TP`gXSBZ)H}1*kKqqe8 zo6*5e+_*2JL!C^&{TUtZWcnS*=tw8i?_fqpJMrqFjE;5U)x#N`?Zk~oGCJ3Z8;@pm zz7sbd%jiNUZyO%Z=wc@~vJ)9y>f}Oj(lp+QS5KM7JMrr2jBa=0#xoh+>BNm^P2-)o z@tkSAlMH;`G~UU(zZXp7oxJ;d(KOzPS1*~yJMrq}j9zx)#w!`U>cov#P2-)o@tSG8 zlb!RrX}pu2^M+}>lc$k4P2-(-^_FS86R+OR=zAwS=bemxbn<)acTMA+y!(64G~UUZ z9QRG*oou8JOyiwwqz_Hwoou9!Oyiwwq>nQi`X6q5lF_jLaN|?c_g||n*1Mbe3Q|X|8V15)A)b5@ttY>KT_^{)A)bP z#t)|P|F{HxG>!jU`O`H1ACvQ!Y5c$cYw1jWt4OaX{!VqPC8AzM$}$nkqVN5r{s*#5Xer7!^*X>V ziqzZWFEBGUGng4O+Xe#$JR2KqMl%~@2Ezk`8O=OHLo?)ZUKUR(EF)QU&+nXbtIB02 z=f@wg$Ft>r`T=`Alk>A_+%q}9n8rPmvr5qBxpPhvw0mCbn=a_^WOat1)05Sif&-p3 z&Jy%_(l}et?@8kv!9mZBbgtl#=SEsBIP966HG(6atj-f0^<;Iv;It==3j}98Xq+Ax!JubyE*6~gOwJ{OAN3HwC#$uBtDZD27nD6|Tp_sTN#jbvb>|Q~2V2^DP)CBg}R>8c$9@{2Z z8rW3Z1R~}+Agf0N&4Dx?73>bA@t9ywAdLfp zy@APjT+kAjoF@dWfysH&G#<$6DM3#lji&{@fi#{G><^^ztZ6)u#zE6~U~--_jRz*@ zkZC+HInSHM16dt5jR&%N!IT|1-;08QKteAGP6ST%vfxx8mm{Y3z*$}~jR$U|S54W0 zZd*1z2NHTsa3PS;>w=4c-FDRU9N1oOn4SYS&6}p@z)f>Za5u2M-V)pkY_GQk_XBsy zJErHrUGlE!IdGS}XL=6YCGVS_19!=B({tc1`M~rX_*Z})nw|si$UZVX2i}o=EO;Kc zX+9CW2;4NE3SI_on$HBU0yoX)rsu$S3%@Wu2fkbQrRh2FJx{L$Ga?y$Z7PnO+Z)qv zWJBVkjZDce zg1SiZsub%ZpD3HAsE>T+WV)gu@+svRipI!i%VsLJMQ)I@6x$=oo2_VyByWzQC9=uP zRkTJnnQBE_WRs~;v`2d9JVi&Ocg|OIMtbK0MOUPEE>!G`FA=T#j_nEs86Vto(t-M#UIq}@@S8Pc<_XkWbiQTbJu_H09`V~79 z)9RpNSK@g-q-ah&&xcJpiD&YNDJPMNqo$lhDvp_Q5~&zabSF}A+%%M!RwqnDiD`Ax zG?bWDr%XeM%$!ynNu=V8;%FijXBEd1yW^l@AkodvnVJ&QYRI&am`CSL8;Kq^tQbnn zqYI{z#O`>}w2|01E}0?{8{=igNTP?0m?9GQ^DBz0iTn9g#aN<;l@+%Vua;d?+)muj zuPg2(?&qV5yNM2WL-9D#!)_{`BzoAG;%TCX-BLVD^sw8em&BfU$5fK&Tz5?yiS6*7 z;%#C(ysvndc)wy?@j3B*01p&j65j{#P*Ii1!Xw4B%y#%#F+DSno+zp_o$INhCNpuK zDduJB{<&g)W;=Xgy2_l3^oRTKsNY z^Ih+7r83_Q4p%Gl-RMxR%y*N+wM>WG>~KBP;kG!8RwljG;YOyz)jQnG>>CXZW0`%U z(P2EZQEYQ~kgZYtp|sr_( z|EaXY6%!{G!M+gflkAi2^NW4{TZQ5B?@BveVJ|}exe7m)CzN*aA3tKyj+=R`#gHBE zc7^@!$zQ%{E`L|r;K2aRFv%dyIt|0iA^Kl KmP$qG&;J9(oyijb diff --git a/DMATimer_4F120/dmatimer.d b/DMATimer_4F120/dmatimer.d deleted file mode 100644 index a381c45..0000000 --- a/DMATimer_4F120/dmatimer.d +++ /dev/null @@ -1 +0,0 @@ -.\dmatimer.o: DMATimer.c diff --git a/DMATimer_4F120/pll.crf b/DMATimer_4F120/pll.crf deleted file mode 100644 index 126dbcd29c71d483bed9241760dce12a9356de42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmZ`&%}x|S5UwtFVOQ86c3nsSp#=Y;fa^p=#2DBC;>h70zDn-`wIC~m^nlU6n`PEwg~zMrb9gO~YAA2>F{q z6t;B~(t#Ose7%Q9EPzfwFQ$ASsbe$hQnkM+@NYI(f@qxrbJdBB^Wwwx=Wl8M|N0}V z@0kggA3mSIpEg)B!_H7XGk93*s~LB~m0sbMUJHHSquj-_f{t*551LK-m^Idm&R1+p!t|&a0_Bd8s(E52Q{ca?A zD)6)%;9cbF@(tQ$z9H6EPG)I=fIq21dR^vIbGyeeB`JUL>zYcTwt!U~L DP2?QdIW6+hQ@oSP9^KNqbnSsH?zA^pAIM3#zO=sF2i?ckLmiEV~EyuUpuI|5%vz@V=!@ zAKkC0YxEoM6m8Ih>qPzk{)-zU!~V8{kt>t*w{E~hk@7~RT*{Yf<61bK)R-+4^Hpug z=MQQ1%F0qLuLZRJ<$9sGqJ_pTXxVbP2;J&NB%(b#=M%R@pAUZ^BjbzH`9jg$8d^m3i|P5nz+!wRvQv@@N2Y~J zB${AWwS0FoZ%s8CDU71gD>Rgc=HdewGSRXfyuYG-?wdO*GJQorU>zwT0BcB!wp)Ni=dS6%8i zUFvHt^;<6W+b;DxF7mH*l&p7bgp~srvHbT-G=2^9SxNMw8)eVIyBP#Y$P>iS7d@zP8U* ze7tzvuKik3f?kAX#!H2oeB^Bz#QnJ3bP{(Y1Mhx9imqP10M~h3=bEk)7G~r9;QQP5^?G~T+-%UMcrUpW9+O>hxGwrClcFhP zn$d99Fiq`DxKh=$VJ+wngw9|JrkRZ=g&^o39}JBLMkSibMk7!U2o=H18|h4Zc80;R zv5@HDt!e>C5s`=;hi2t2VVn)8CylHbNzIv&*>u)eFq0uOma-;k zNn?=C$5QhlGm|o-fniH3l7gI2BP}p169ZE_QiIe+ESz#BgFN6+jdim|4yPki=7?e1 z%FQsl@HbCFC}*eUk`vanE$vi#HWp9pa1t}Z*}1e~PK6V(8?))?wmDl;=}(4gFNY;c z&Ly((RO06DhS5w43VX9^)GeSz|_=`m`|_&t#1>PR`s+RtpS^%?PI=88bcu9P^vD{KryeES$-jv1B-A zLACYz#&R>=*!$TOp1*j;z-bFd>?j&w!k9M_*myT79z4k>aEV+&AA}B~KjKJ@c+r`7lsav*2kTvw}8lz1bgQL(myImvD>|}_;Kj)|fA2t3F5&!vS%ejn^ zjzofpZ&WS~T=zFC;Ot>lA;(=bQZ6>jK|>`d79kLmPDpub7Zq`Ou>sN%DVLgcQa94k z84iQT2;w4Tpjkd~GZoHcYz05YA;s6MFq?^F(h(Vlh|@m;m8W-AnYFir$3d3i9CCzD z=V^Kxxx{rEv>Qdvk$4}GN2kutFLb(9)GG%Sw|Z9XZ9AbJR1PUUUYzDuh^XBGSPn(o zgs8(|A~2L5_BDfS(rE*>MprX{EN8Q((0-p&gG)9UXLf(yME z7}LTIUSyJqrzA#nsTcDY=tU?*KF*y_vn13d_5G4zi-3(21$z~aZ?KnGk0`_h(U1?8 zwXS%dT$|xmSb`%CIBDsPI*>HiFzQ$<$k4b0P4+Qx*#V>>(Un$+=&A!u zVy(X5uuiDgv1Hd;1sp8H*Bw}f%V5|6o1E+;nrIaWCx9akY&iiKeH@Dxzo`Pc;a)BVUmfg#E9mOiqkZI45#VFF>%%xLc)`);}R5a+6>Vx zi$u`RN|F^8B}w$0t;u6PZ!?#=nKdoe%gk-bNXe397+(%ycsXiLkQiu%2_7cT1kq}n z=+?O72YtQGij}Bfk+AxbB#ByPy()kC3*18=ef)A0&zb!` z_}3a%3e}tBs4?izvbwZ1KKl5*CSJkI;jI?Fjb3Tty;N-B+bP?^t8}G>@1WBy{66xu z@SIo=+Q<=v_Xk{PE-v%F&&A#XbF%E?a#s;@Ar__JCEJ)~P=}5{e#cU-7tz0ARn*LJ z*_;-Z)GHKmGDHK@E%3W;5djtvkRn__;S6Y@zYfNQO)qkfcPU76!RwE>$Cm$?dz_9I z9C`vr{}Yzu>HRtP;D2HDzv3Rtalzt+J(6&X9|SA>9NvcGp%yqNdLMpB`j%?7YGJuv z%WslzvsSGwEu&wzscOFH6W{a9N`1Msw82^qRxFhA&3vJ>T5jf7tFVB(7dM1k>1b(r zxtia?w+4)Eu2m~OYXFJ+)~e-t#TPWg8(gcH#pTNSbiDRLUJshGcxkc}pID$9nijhE zX0mq@vv*z$&JCJ_LV26+I&^bYp_^Kr4F&HS$@FHx*0ti;Sjx$H$Z(709QktP4gR!6 zKKy1kw^sA!dVXmoU!{W2`OTFmEbDqYf2W?`tm!%wi-qN;@msy?qNdmXXFNMr$cjwZ z=GgX8=53A3TlJ|1Z5TfCh+=AwII~Z(gVs!Vb3WBf8itQN6KljzelktV(tc?4fZsU^ zw$R?r&`uE!ogN78g7Yqp?tuq(;$q5Ud*HkH7Z0o+7^DgQ_#bYh23^liCCzvyycN<7 zJ*7wWX?;S^=p#l_$M>8NB!z)mIfS@9`EHzvZPdfIqqR8OUi%&2aJC*oVd z=I2jeA-!gObPdlSyDjCHmJ6grK}Lc;|1f!)|J^`s4GzD%+mjuxef+z_b=Y-OIi@_O z99K>#CzU6>XB1t*8<~)-NNESbRoWxBh@8RkL$1f)?;Ct$ zL?$G2k?sodpKQSCfs5CVW&W(y%T5NwABJlVK5db2%l?<>6!{7hzzqp2^r0khZ$u;z zY2T z;3Q^C&WnG}(GS=k+9}z|J8CR?&j#>n^`J!HN&Vf%P%wycK&9U@Bz%h7bYt<~Zs=MB z=uwGP1Pk9X5OC5zYFt6v@SCD6qjhJ$WZBh29(eNf$X&T1XU3*t8BheN6k?Ve zewAQL@y&v75b-KZG98uHOiH_srtryQJ*+|%hKsB=Dt(PG%}qEa`XTJ$w$EZ!jN&wu zZnAY8mYc*MDWR&;lM+XOvT+&9t?!+~h>(@x)bc4p2W^ET^hDTVQ$Jw-80KTIIX#B& ujA)!0?L`)g`d0?5_|AZo2F}D`WiS5g5VMn?$=w2FH{n{r7*=D8=l=^XTv{Cf diff --git a/DMATimer_4F120/startup.d b/DMATimer_4F120/startup.d deleted file mode 100644 index c798882..0000000 --- a/DMATimer_4F120/startup.d +++ /dev/null @@ -1 +0,0 @@ -.\startup.o: startup.s diff --git a/DMATimer_4F120/startup.lst b/DMATimer_4F120/startup.lst deleted file mode 100644 index 6d7cf32..0000000 --- a/DMATimer_4F120/startup.lst +++ /dev/null @@ -1,2514 +0,0 @@ - - - -ARM Macro Assembler Page 1 - - - 1 00000000 ; <<< Use Configuration Wizard in Context Menu >>> - 2 00000000 ;******************************************************* - *********************** - 3 00000000 ; - 4 00000000 ; startup_rvmdk.S - Startup code for use with Keil's uVi - sion. - 5 00000000 ; - 6 00000000 ; Copyright (c) 2012 Texas Instruments Incorporated. Al - l rights reserved. - 7 00000000 ; Software License Agreement - 8 00000000 ; - 9 00000000 ; Texas Instruments (TI) is supplying this software for - use solely and - 10 00000000 ; exclusively on TI's microcontroller products. The soft - ware is owned by - 11 00000000 ; TI and/or its suppliers, and is protected under applic - able copyright - 12 00000000 ; laws. You may not combine this software with "viral" o - pen-source - 13 00000000 ; software in order to form a larger program. - 14 00000000 ; - 15 00000000 ; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. - - 16 00000000 ; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, - INCLUDING, BUT - 17 00000000 ; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR - 18 00000000 ; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL - NOT, UNDER ANY - 19 00000000 ; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR C - ONSEQUENTIAL - 20 00000000 ; DAMAGES, FOR ANY REASON WHATSOEVER. - 21 00000000 ; - 22 00000000 ; This is part of revision 9453 of the EK-LM4F120XL Firm - ware Package. - 23 00000000 ; - 24 00000000 ;******************************************************* - *********************** - 25 00000000 ; Edited to conform with ISR names as described in - 26 00000000 ; "Embedded Systems: Introduction to ARM Cortex M Micr - ocontrollers", - 27 00000000 ; ISBN: 978-1469998749, Jonathan Valvano, copyright (c - ) 2012 - 28 00000000 ; "Embedded Systems: Real Time Interfacing to ARM Cort - ex M Microcontrollers", - 29 00000000 ; ISBN: 978-1463590154, Jonathan Valvano, copyright (c - ) 2012 - 30 00000000 ; "Embedded Systems: Real-Time Operating Systems for A - RM Cortex M Microcontrollers", - 31 00000000 ; ISBN: 978-1466468863, Jonathan Valvano, copyright (c - ) 2013 - 32 00000000 ; - 33 00000000 ;******************************************************* - *********************** - 34 00000000 ; - 35 00000000 ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> - 36 00000000 ; - 37 00000000 ;******************************************************* - *********************** - - - -ARM Macro Assembler Page 2 - - - 38 00000000 00000400 - Stack EQU 0x00000400 - 39 00000000 - 40 00000000 ;******************************************************* - *********************** - 41 00000000 ; - 42 00000000 ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> - 43 00000000 ; - 44 00000000 ;******************************************************* - *********************** - 45 00000000 00000000 - Heap EQU 0x00000000 - 46 00000000 - 47 00000000 ;******************************************************* - *********************** - 48 00000000 ; - 49 00000000 ; Allocate space for the stack. - 50 00000000 ; - 51 00000000 ;******************************************************* - *********************** - 52 00000000 AREA STACK, NOINIT, READWRITE, ALIGN -=3 - 53 00000000 StackMem - 54 00000000 SPACE Stack - 55 00000400 __initial_sp - 56 00000400 - 57 00000400 ;******************************************************* - *********************** - 58 00000400 ; - 59 00000400 ; Allocate space for the heap. - 60 00000400 ; - 61 00000400 ;******************************************************* - *********************** - 62 00000400 AREA HEAP, NOINIT, READWRITE, ALIGN= -3 - 63 00000000 __heap_base - 64 00000000 HeapMem - 65 00000000 SPACE Heap - 66 00000000 __heap_limit - 67 00000000 - 68 00000000 ;******************************************************* - *********************** - 69 00000000 ; - 70 00000000 ; Indicate that the code in this file preserves 8-byte a - lignment of the stack. - 71 00000000 ; - 72 00000000 ;******************************************************* - *********************** - 73 00000000 PRESERVE8 - 74 00000000 - 75 00000000 ;******************************************************* - *********************** - 76 00000000 ; - 77 00000000 ; Place code into the reset code section. - 78 00000000 ; - 79 00000000 ;******************************************************* - *********************** - 80 00000000 AREA RESET, CODE, READONLY - 81 00000000 THUMB - - - -ARM Macro Assembler Page 3 - - - 82 00000000 - 83 00000000 ;******************************************************* - *********************** - 84 00000000 ; - 85 00000000 ; The vector table. - 86 00000000 ; - 87 00000000 ;******************************************************* - *********************** - 88 00000000 EXPORT __Vectors - 89 00000000 __Vectors - 90 00000000 00000400 DCD StackMem + Stack ; Top of Stack - - 91 00000004 00000000 DCD Reset_Handler ; Reset Handler - 92 00000008 00000000 DCD NMI_Handler ; NMI Handler - 93 0000000C 00000000 DCD HardFault_Handler ; Hard Fault - Handler - 94 00000010 00000000 DCD MemManage_Handler - ; MPU Fault Handler - - 95 00000014 00000000 DCD BusFault_Handler - ; Bus Fault Handler - - 96 00000018 00000000 DCD UsageFault_Handler ; Usage Faul - t Handler - 97 0000001C 00000000 DCD 0 ; Reserved - 98 00000020 00000000 DCD 0 ; Reserved - 99 00000024 00000000 DCD 0 ; Reserved - 100 00000028 00000000 DCD 0 ; Reserved - 101 0000002C 00000000 DCD SVC_Handler ; SVCall Handler - 102 00000030 00000000 DCD DebugMon_Handler ; Debug Monito - r Handler - 103 00000034 00000000 DCD 0 ; Reserved - 104 00000038 00000000 DCD PendSV_Handler ; PendSV Handler - - 105 0000003C 00000000 DCD SysTick_Handler - ; SysTick Handler - 106 00000040 00000000 DCD GPIOPortA_Handler ; GPIO Port A - - 107 00000044 00000000 DCD GPIOPortB_Handler ; GPIO Port B - - 108 00000048 00000000 DCD GPIOPortC_Handler ; GPIO Port C - - 109 0000004C 00000000 DCD GPIOPortD_Handler ; GPIO Port D - - 110 00000050 00000000 DCD GPIOPortE_Handler ; GPIO Port E - - 111 00000054 00000000 DCD UART0_Handler ; UART0 Rx and Tx - - 112 00000058 00000000 DCD UART1_Handler ; UART1 Rx and Tx - - 113 0000005C 00000000 DCD SSI0_Handler ; SSI0 Rx and Tx - 114 00000060 00000000 DCD I2C0_Handler ; I2C0 Master and - Slave - 115 00000064 00000000 DCD PWM0Fault_Handler ; PWM 0 Fault - - 116 00000068 00000000 DCD PWM0Generator0_Handler - ; PWM 0 Generator 0 - - 117 0000006C 00000000 DCD PWM0Generator1_Handler - - - -ARM Macro Assembler Page 4 - - - ; PWM 0 Generator 1 - - 118 00000070 00000000 DCD PWM0Generator2_Handler - ; PWM 0 Generator 2 - - 119 00000074 00000000 DCD Quadrature0_Handler ; Quadratur - e Encoder 0 - 120 00000078 00000000 DCD ADC0Seq0_Handler - ; ADC0 Sequence 0 - 121 0000007C 00000000 DCD ADC0Seq1_Handler - ; ADC0 Sequence 1 - 122 00000080 00000000 DCD ADC0Seq2_Handler - ; ADC0 Sequence 2 - 123 00000084 00000000 DCD ADC0Seq3_Handler - ; ADC0 Sequence 3 - 124 00000088 00000000 DCD WDT_Handler ; Watchdog - 125 0000008C 00000000 DCD Timer0A_Handler ; Timer 0 subti - mer A - 126 00000090 00000000 DCD Timer0B_Handler ; Timer 0 subti - mer B - 127 00000094 00000000 DCD Timer1A_Handler ; Timer 1 subti - mer A - 128 00000098 00000000 DCD Timer1B_Handler ; Timer 1 subti - mer B - 129 0000009C 00000000 DCD Timer2A_Handler ; Timer 2 subti - mer A - 130 000000A0 00000000 DCD Timer2B_Handler ; Timer 2 subti - mer B - 131 000000A4 00000000 DCD Comp0_Handler ; Analog Comp 0 - 132 000000A8 00000000 DCD Comp1_Handler ; Analog Comp 1 - 133 000000AC 00000000 DCD Comp2_Handler ; Analog Comp 2 - 134 000000B0 00000000 DCD SysCtl_Handler ; System Control - - 135 000000B4 00000000 DCD FlashCtl_Handler - ; Flash Control - 136 000000B8 00000000 DCD GPIOPortF_Handler ; GPIO Port F - - 137 000000BC 00000000 DCD GPIOPortG_Handler ; GPIO Port G - - 138 000000C0 00000000 DCD GPIOPortH_Handler ; GPIO Port H - - 139 000000C4 00000000 DCD UART2_Handler ; UART2 Rx and Tx - - 140 000000C8 00000000 DCD SSI1_Handler ; SSI1 Rx and Tx - 141 000000CC 00000000 DCD Timer3A_Handler ; Timer 3 subti - mer A - 142 000000D0 00000000 DCD Timer3B_Handler ; Timer 3 subti - mer B - 143 000000D4 00000000 DCD I2C1_Handler ; I2C1 Master and - Slave - 144 000000D8 00000000 DCD Quadrature1_Handler ; Quadratur - e Encoder 1 - 145 000000DC 00000000 DCD CAN0_Handler ; CAN0 - 146 000000E0 00000000 DCD CAN1_Handler ; CAN1 - 147 000000E4 00000000 DCD CAN2_Handler ; CAN2 - 148 000000E8 00000000 DCD Ethernet_Handler ; Ethernet - 149 000000EC 00000000 DCD Hibernate_Handler ; Hibernate - 150 000000F0 00000000 DCD USB0_Handler ; USB0 - 151 000000F4 00000000 DCD PWM0Generator3_Handler - - - -ARM Macro Assembler Page 5 - - - ; PWM 0 Generator 3 - - 152 000000F8 00000000 DCD uDMA_Handler ; uDMA Software Tr - ansfer - 153 000000FC 00000000 DCD uDMA_Error ; uDMA Error - 154 00000100 00000000 DCD ADC1Seq0_Handler - ; ADC1 Sequence 0 - 155 00000104 00000000 DCD ADC1Seq1_Handler - ; ADC1 Sequence 1 - 156 00000108 00000000 DCD ADC1Seq2_Handler - ; ADC1 Sequence 2 - 157 0000010C 00000000 DCD ADC1Seq3_Handler - ; ADC1 Sequence 3 - 158 00000110 00000000 DCD I2S0_Handler ; I2S0 - 159 00000114 00000000 DCD ExtBus_Handler ; External Bus I - nterface 0 - 160 00000118 00000000 DCD GPIOPortJ_Handler ; GPIO Port J - - 161 0000011C 00000000 DCD GPIOPortK_Handler ; GPIO Port K - - 162 00000120 00000000 DCD GPIOPortL_Handler ; GPIO Port L - - 163 00000124 00000000 DCD SSI2_Handler ; SSI2 Rx and Tx - 164 00000128 00000000 DCD SSI3_Handler ; SSI3 Rx and Tx - 165 0000012C 00000000 DCD UART3_Handler ; UART3 Rx and Tx - - 166 00000130 00000000 DCD UART4_Handler ; UART4 Rx and Tx - - 167 00000134 00000000 DCD UART5_Handler ; UART5 Rx and Tx - - 168 00000138 00000000 DCD UART6_Handler ; UART6 Rx and Tx - - 169 0000013C 00000000 DCD UART7_Handler ; UART7 Rx and Tx - - 170 00000140 00000000 DCD 0 ; Reserved - 171 00000144 00000000 DCD 0 ; Reserved - 172 00000148 00000000 DCD 0 ; Reserved - 173 0000014C 00000000 DCD 0 ; Reserved - 174 00000150 00000000 DCD I2C2_Handler ; I2C2 Master and - Slave - 175 00000154 00000000 DCD I2C3_Handler ; I2C3 Master and - Slave - 176 00000158 00000000 DCD Timer4A_Handler ; Timer 4 subti - mer A - 177 0000015C 00000000 DCD Timer4B_Handler ; Timer 4 subti - mer B - 178 00000160 00000000 DCD 0 ; Reserved - 179 00000164 00000000 DCD 0 ; Reserved - 180 00000168 00000000 DCD 0 ; Reserved - 181 0000016C 00000000 DCD 0 ; Reserved - 182 00000170 00000000 DCD 0 ; Reserved - 183 00000174 00000000 DCD 0 ; Reserved - 184 00000178 00000000 DCD 0 ; Reserved - 185 0000017C 00000000 DCD 0 ; Reserved - 186 00000180 00000000 DCD 0 ; Reserved - 187 00000184 00000000 DCD 0 ; Reserved - 188 00000188 00000000 DCD 0 ; Reserved - 189 0000018C 00000000 DCD 0 ; Reserved - 190 00000190 00000000 DCD 0 ; Reserved - - - -ARM Macro Assembler Page 6 - - - 191 00000194 00000000 DCD 0 ; Reserved - 192 00000198 00000000 DCD 0 ; Reserved - 193 0000019C 00000000 DCD 0 ; Reserved - 194 000001A0 00000000 DCD 0 ; Reserved - 195 000001A4 00000000 DCD 0 ; Reserved - 196 000001A8 00000000 DCD 0 ; Reserved - 197 000001AC 00000000 DCD 0 ; Reserved - 198 000001B0 00000000 DCD Timer5A_Handler ; Timer 5 subti - mer A - 199 000001B4 00000000 DCD Timer5B_Handler ; Timer 5 subti - mer B - 200 000001B8 00000000 DCD WideTimer0A_Handler ; Wide Time - r 0 subtimer A - 201 000001BC 00000000 DCD WideTimer0B_Handler ; Wide Time - r 0 subtimer B - 202 000001C0 00000000 DCD WideTimer1A_Handler ; Wide Time - r 1 subtimer A - 203 000001C4 00000000 DCD WideTimer1B_Handler ; Wide Time - r 1 subtimer B - 204 000001C8 00000000 DCD WideTimer2A_Handler ; Wide Time - r 2 subtimer A - 205 000001CC 00000000 DCD WideTimer2B_Handler ; Wide Time - r 2 subtimer B - 206 000001D0 00000000 DCD WideTimer3A_Handler ; Wide Time - r 3 subtimer A - 207 000001D4 00000000 DCD WideTimer3B_Handler ; Wide Time - r 3 subtimer B - 208 000001D8 00000000 DCD WideTimer4A_Handler ; Wide Time - r 4 subtimer A - 209 000001DC 00000000 DCD WideTimer4B_Handler ; Wide Time - r 4 subtimer B - 210 000001E0 00000000 DCD WideTimer5A_Handler ; Wide Time - r 5 subtimer A - 211 000001E4 00000000 DCD WideTimer5B_Handler ; Wide Time - r 5 subtimer B - 212 000001E8 00000000 DCD FPU_Handler ; FPU - 213 000001EC 00000000 DCD PECI0_Handler ; PECI 0 - 214 000001F0 00000000 DCD LPC0_Handler ; LPC 0 - 215 000001F4 00000000 DCD I2C4_Handler ; I2C4 Master and - Slave - 216 000001F8 00000000 DCD I2C5_Handler ; I2C5 Master and - Slave - 217 000001FC 00000000 DCD GPIOPortM_Handler ; GPIO Port M - - 218 00000200 00000000 DCD GPIOPortN_Handler ; GPIO Port N - - 219 00000204 00000000 DCD Quadrature2_Handler ; Quadratur - e Encoder 2 - 220 00000208 00000000 DCD Fan0_Handler ; Fan 0 - 221 0000020C 00000000 DCD 0 ; Reserved - 222 00000210 00000000 DCD GPIOPortP_Handler ; GPIO Port P - (Summary or P0) - 223 00000214 00000000 DCD GPIOPortP1_Handler - ; GPIO Port P1 - 224 00000218 00000000 DCD GPIOPortP2_Handler - ; GPIO Port P2 - 225 0000021C 00000000 DCD GPIOPortP3_Handler - ; GPIO Port P3 - 226 00000220 00000000 DCD GPIOPortP4_Handler - - - -ARM Macro Assembler Page 7 - - - ; GPIO Port P4 - 227 00000224 00000000 DCD GPIOPortP5_Handler - ; GPIO Port P5 - 228 00000228 00000000 DCD GPIOPortP6_Handler - ; GPIO Port P6 - 229 0000022C 00000000 DCD GPIOPortP7_Handler - ; GPIO Port P7 - 230 00000230 00000000 DCD GPIOPortQ_Handler ; GPIO Port Q - (Summary or Q0) - 231 00000234 00000000 DCD GPIOPortQ1_Handler - ; GPIO Port Q1 - 232 00000238 00000000 DCD GPIOPortQ2_Handler - ; GPIO Port Q2 - 233 0000023C 00000000 DCD GPIOPortQ3_Handler - ; GPIO Port Q3 - 234 00000240 00000000 DCD GPIOPortQ4_Handler - ; GPIO Port Q4 - 235 00000244 00000000 DCD GPIOPortQ5_Handler - ; GPIO Port Q5 - 236 00000248 00000000 DCD GPIOPortQ6_Handler - ; GPIO Port Q6 - 237 0000024C 00000000 DCD GPIOPortQ7_Handler - ; GPIO Port Q7 - 238 00000250 00000000 DCD GPIOPortR_Handler ; GPIO Port R - - 239 00000254 00000000 DCD GPIOPortS_Handler ; GPIO Port S - - 240 00000258 00000000 DCD PWM1Generator0_Handler - ; PWM 1 Generator 0 - - 241 0000025C 00000000 DCD PWM1Generator1_Handler - ; PWM 1 Generator 1 - - 242 00000260 00000000 DCD PWM1Generator2_Handler - ; PWM 1 Generator 2 - - 243 00000264 00000000 DCD PWM1Generator3_Handler - ; PWM 1 Generator 3 - - 244 00000268 00000000 DCD PWM1Fault_Handler ; PWM 1 Fault - - 245 0000026C - 246 0000026C ;******************************************************* - *********************** - 247 0000026C ; - 248 0000026C ; This is the code that gets called when the processor f - irst starts execution - 249 0000026C ; following a reset event. - 250 0000026C ; - 251 0000026C ;******************************************************* - *********************** - 252 0000026C EXPORT Reset_Handler - 253 0000026C Reset_Handler - 254 0000026C ; - 255 0000026C ; Enable the floating-point unit. This must be done her - e to handle the - 256 0000026C ; case where main() uses floating-point and the function - prologue saves - 257 0000026C ; floating-point registers (which will fault if floating - - - -ARM Macro Assembler Page 8 - - - -point is not - 258 0000026C ; enabled). Any configuration of the floating-point uni - t using - 259 0000026C ; DriverLib APIs must be done here prior to the floating - -point unit - 260 0000026C ; being enabled. - 261 0000026C ; - 262 0000026C ; Note that this does not use DriverLib since it might n - ot be included - 263 0000026C ; in this project. - 264 0000026C ; - 265 0000026C F64E 5088 MOVW R0, #0xED88 - 266 00000270 F2CE 0000 MOVT R0, #0xE000 - 267 00000274 6801 LDR R1, [R0] - 268 00000276 F441 0170 ORR R1, #0x00F00000 - 269 0000027A 6001 STR R1, [R0] - 270 0000027C - 271 0000027C ; - 272 0000027C ; Call the C library enty point that handles startup. T - his will copy - 273 0000027C ; the .data section initializers from flash to SRAM and - zero fill the - 274 0000027C ; .bss section. - 275 0000027C ; - 276 0000027C IMPORT __main - 277 0000027C F7FF BFFE B __main - 278 00000280 - 279 00000280 ;******************************************************* - *********************** - 280 00000280 ; - 281 00000280 ; This is the code that gets called when the processor r - eceives a NMI. This - 282 00000280 ; simply enters an infinite loop, preserving the system - state for examination - 283 00000280 ; by a debugger. - 284 00000280 ; - 285 00000280 ;******************************************************* - *********************** - 286 00000280 NMI_Handler - PROC - 287 00000280 EXPORT NMI_Handler [WEAK -] - 288 00000280 E7FE B . - 289 00000282 ENDP - 290 00000282 - 291 00000282 ;******************************************************* - *********************** - 292 00000282 ; - 293 00000282 ; This is the code that gets called when the processor r - eceives a fault - 294 00000282 ; interrupt. This simply enters an infinite loop, prese - rving the system state - 295 00000282 ; for examination by a debugger. - 296 00000282 ; - 297 00000282 ;******************************************************* - *********************** - 299 00000282 HardFault_Handler - PROC - 300 00000282 EXPORT HardFault_Handler [WEAK - - - -ARM Macro Assembler Page 9 - - -] - 301 00000282 E7FE B . - 302 00000284 ENDP - 303 00000284 - 305 00000284 MemManage_Handler - PROC - 306 00000284 EXPORT MemManage_Handler [WEAK -] - 307 00000284 E7FE B . - 308 00000286 ENDP - 310 00000286 BusFault_Handler - PROC - 311 00000286 EXPORT BusFault_Handler [WEAK -] - 312 00000286 E7FE B . - 313 00000288 ENDP - 315 00000288 UsageFault_Handler - PROC - 316 00000288 EXPORT UsageFault_Handler [WEAK -] - 317 00000288 E7FE B . - 318 0000028A ENDP - 319 0000028A SVC_Handler - PROC - 320 0000028A EXPORT SVC_Handler [WEAK -] - 321 0000028A E7FE B . - 322 0000028C ENDP - 324 0000028C DebugMon_Handler - PROC - 325 0000028C EXPORT DebugMon_Handler [WEAK -] - 326 0000028C E7FE B . - 327 0000028E ENDP - 328 0000028E PendSV_Handler - PROC - 329 0000028E EXPORT PendSV_Handler [WEAK -] - 330 0000028E E7FE B . - 331 00000290 ENDP - 332 00000290 SysTick_Handler - PROC - 333 00000290 EXPORT SysTick_Handler [WEAK -] - 334 00000290 E7FE B . - 335 00000292 ENDP - 337 00000292 IntDefaultHandler - PROC - 338 00000292 - 339 00000292 EXPORT GPIOPortA_Handler [WEAK -] - 340 00000292 EXPORT GPIOPortB_Handler [WEAK -] - 341 00000292 EXPORT GPIOPortC_Handler [WEAK -] - 342 00000292 EXPORT GPIOPortD_Handler [WEAK -] - 343 00000292 EXPORT GPIOPortE_Handler [WEAK -] - - - -ARM Macro Assembler Page 10 - - - 344 00000292 EXPORT UART0_Handler [WEAK -] - 345 00000292 EXPORT UART1_Handler [WEAK -] - 346 00000292 EXPORT SSI0_Handler [WEAK -] - 347 00000292 EXPORT I2C0_Handler [WEAK -] - 348 00000292 EXPORT PWM0Fault_Handler [WEAK -] - 349 00000292 EXPORT PWM0Generator0_Handler [WEAK -] - 350 00000292 EXPORT PWM0Generator1_Handler [WEAK -] - 351 00000292 EXPORT PWM0Generator2_Handler [WEAK -] - 352 00000292 EXPORT Quadrature0_Handler [WEAK -] - 353 00000292 EXPORT ADC0Seq0_Handler [WEAK -] - 354 00000292 EXPORT ADC0Seq1_Handler [WEAK -] - 355 00000292 EXPORT ADC0Seq2_Handler [WEAK -] - 356 00000292 EXPORT ADC0Seq3_Handler [WEAK -] - 357 00000292 EXPORT WDT_Handler [WEAK -] - 358 00000292 EXPORT Timer0A_Handler [WEAK -] - 359 00000292 EXPORT Timer0B_Handler [WEAK -] - 360 00000292 EXPORT Timer1A_Handler [WEAK -] - 361 00000292 EXPORT Timer1B_Handler [WEAK -] - 362 00000292 EXPORT Timer2A_Handler [WEAK -] - 363 00000292 EXPORT Timer2B_Handler [WEAK -] - 364 00000292 EXPORT Comp0_Handler [WEAK -] - 365 00000292 EXPORT Comp1_Handler [WEAK -] - 366 00000292 EXPORT Comp2_Handler [WEAK -] - 367 00000292 EXPORT SysCtl_Handler [WEAK -] - 368 00000292 EXPORT FlashCtl_Handler [WEAK -] - 369 00000292 EXPORT GPIOPortF_Handler [WEAK -] - 370 00000292 EXPORT GPIOPortG_Handler [WEAK -] - 371 00000292 EXPORT GPIOPortH_Handler [WEAK -] - 372 00000292 EXPORT UART2_Handler [WEAK -] - 373 00000292 EXPORT SSI1_Handler [WEAK - - - -ARM Macro Assembler Page 11 - - -] - 374 00000292 EXPORT Timer3A_Handler [WEAK -] - 375 00000292 EXPORT Timer3B_Handler [WEAK -] - 376 00000292 EXPORT I2C1_Handler [WEAK -] - 377 00000292 EXPORT Quadrature1_Handler [WEAK -] - 378 00000292 EXPORT CAN0_Handler [WEAK -] - 379 00000292 EXPORT CAN1_Handler [WEAK -] - 380 00000292 EXPORT CAN2_Handler [WEAK -] - 381 00000292 EXPORT Ethernet_Handler [WEAK -] - 382 00000292 EXPORT Hibernate_Handler [WEAK -] - 383 00000292 EXPORT USB0_Handler [WEAK -] - 384 00000292 EXPORT PWM0Generator3_Handler [WEAK -] - 385 00000292 EXPORT uDMA_Handler [WEAK -] - 386 00000292 EXPORT uDMA_Error [WEAK -] - 387 00000292 EXPORT ADC1Seq0_Handler [WEAK -] - 388 00000292 EXPORT ADC1Seq1_Handler [WEAK -] - 389 00000292 EXPORT ADC1Seq2_Handler [WEAK -] - 390 00000292 EXPORT ADC1Seq3_Handler [WEAK -] - 391 00000292 EXPORT I2S0_Handler [WEAK -] - 392 00000292 EXPORT ExtBus_Handler [WEAK -] - 393 00000292 EXPORT GPIOPortJ_Handler [WEAK -] - 394 00000292 EXPORT GPIOPortK_Handler [WEAK -] - 395 00000292 EXPORT GPIOPortL_Handler [WEAK -] - 396 00000292 EXPORT SSI2_Handler [WEAK -] - 397 00000292 EXPORT SSI3_Handler [WEAK -] - 398 00000292 EXPORT UART3_Handler [WEAK -] - 399 00000292 EXPORT UART4_Handler [WEAK -] - 400 00000292 EXPORT UART5_Handler [WEAK -] - 401 00000292 EXPORT UART6_Handler [WEAK -] - 402 00000292 EXPORT UART7_Handler [WEAK -] - - - -ARM Macro Assembler Page 12 - - - 403 00000292 EXPORT I2C2_Handler [WEAK -] - 404 00000292 EXPORT I2C3_Handler [WEAK -] - 405 00000292 EXPORT Timer4A_Handler [WEAK -] - 406 00000292 EXPORT Timer4B_Handler [WEAK -] - 407 00000292 EXPORT Timer5A_Handler [WEAK -] - 408 00000292 EXPORT Timer5B_Handler [WEAK -] - 409 00000292 EXPORT WideTimer0A_Handler [WEAK -] - 410 00000292 EXPORT WideTimer0B_Handler [WEAK -] - 411 00000292 EXPORT WideTimer1A_Handler [WEAK -] - 412 00000292 EXPORT WideTimer1B_Handler [WEAK -] - 413 00000292 EXPORT WideTimer2A_Handler [WEAK -] - 414 00000292 EXPORT WideTimer2B_Handler [WEAK -] - 415 00000292 EXPORT WideTimer3A_Handler [WEAK -] - 416 00000292 EXPORT WideTimer3B_Handler [WEAK -] - 417 00000292 EXPORT WideTimer4A_Handler [WEAK -] - 418 00000292 EXPORT WideTimer4B_Handler [WEAK -] - 419 00000292 EXPORT WideTimer5A_Handler [WEAK -] - 420 00000292 EXPORT WideTimer5B_Handler [WEAK -] - 421 00000292 EXPORT FPU_Handler [WEAK -] - 422 00000292 EXPORT PECI0_Handler [WEAK -] - 423 00000292 EXPORT LPC0_Handler [WEAK -] - 424 00000292 EXPORT I2C4_Handler [WEAK -] - 425 00000292 EXPORT I2C5_Handler [WEAK -] - 426 00000292 EXPORT GPIOPortM_Handler [WEAK -] - 427 00000292 EXPORT GPIOPortN_Handler [WEAK -] - 428 00000292 EXPORT Quadrature2_Handler [WEAK -] - 429 00000292 EXPORT Fan0_Handler [WEAK -] - 430 00000292 EXPORT GPIOPortP_Handler [WEAK -] - 431 00000292 EXPORT GPIOPortP1_Handler [WEAK -] - 432 00000292 EXPORT GPIOPortP2_Handler [WEAK - - - -ARM Macro Assembler Page 13 - - -] - 433 00000292 EXPORT GPIOPortP3_Handler [WEAK -] - 434 00000292 EXPORT GPIOPortP4_Handler [WEAK -] - 435 00000292 EXPORT GPIOPortP5_Handler [WEAK -] - 436 00000292 EXPORT GPIOPortP6_Handler [WEAK -] - 437 00000292 EXPORT GPIOPortP7_Handler [WEAK -] - 438 00000292 EXPORT GPIOPortQ_Handler [WEAK -] - 439 00000292 EXPORT GPIOPortQ1_Handler [WEAK -] - 440 00000292 EXPORT GPIOPortQ2_Handler [WEAK -] - 441 00000292 EXPORT GPIOPortQ3_Handler [WEAK -] - 442 00000292 EXPORT GPIOPortQ4_Handler [WEAK -] - 443 00000292 EXPORT GPIOPortQ5_Handler [WEAK -] - 444 00000292 EXPORT GPIOPortQ6_Handler [WEAK -] - 445 00000292 EXPORT GPIOPortQ7_Handler [WEAK -] - 446 00000292 EXPORT GPIOPortR_Handler [WEAK -] - 447 00000292 EXPORT GPIOPortS_Handler [WEAK -] - 448 00000292 EXPORT PWM1Generator0_Handler [WEAK -] - 449 00000292 EXPORT PWM1Generator1_Handler [WEAK -] - 450 00000292 EXPORT PWM1Generator2_Handler [WEAK -] - 451 00000292 EXPORT PWM1Generator3_Handler [WEAK -] - 452 00000292 EXPORT PWM1Fault_Handler [WEAK -] - 453 00000292 - 454 00000292 GPIOPortA_Handler - 455 00000292 GPIOPortB_Handler - 456 00000292 GPIOPortC_Handler - 457 00000292 GPIOPortD_Handler - 458 00000292 GPIOPortE_Handler - 459 00000292 UART0_Handler - 460 00000292 UART1_Handler - 461 00000292 SSI0_Handler - 462 00000292 I2C0_Handler - 463 00000292 PWM0Fault_Handler - 464 00000292 PWM0Generator0_Handler - 465 00000292 PWM0Generator1_Handler - 466 00000292 PWM0Generator2_Handler - 467 00000292 Quadrature0_Handler - 468 00000292 ADC0Seq0_Handler - 469 00000292 ADC0Seq1_Handler - 470 00000292 ADC0Seq2_Handler - - - -ARM Macro Assembler Page 14 - - - 471 00000292 ADC0Seq3_Handler - 472 00000292 WDT_Handler - 473 00000292 Timer0A_Handler - 474 00000292 Timer0B_Handler - 475 00000292 Timer1A_Handler - 476 00000292 Timer1B_Handler - 477 00000292 Timer2A_Handler - 478 00000292 Timer2B_Handler - 479 00000292 Comp0_Handler - 480 00000292 Comp1_Handler - 481 00000292 Comp2_Handler - 482 00000292 SysCtl_Handler - 483 00000292 FlashCtl_Handler - 484 00000292 GPIOPortF_Handler - 485 00000292 GPIOPortG_Handler - 486 00000292 GPIOPortH_Handler - 487 00000292 UART2_Handler - 488 00000292 SSI1_Handler - 489 00000292 Timer3A_Handler - 490 00000292 Timer3B_Handler - 491 00000292 I2C1_Handler - 492 00000292 Quadrature1_Handler - 493 00000292 CAN0_Handler - 494 00000292 CAN1_Handler - 495 00000292 CAN2_Handler - 496 00000292 Ethernet_Handler - 497 00000292 Hibernate_Handler - 498 00000292 USB0_Handler - 499 00000292 PWM0Generator3_Handler - 500 00000292 uDMA_Handler - 501 00000292 uDMA_Error - 502 00000292 ADC1Seq0_Handler - 503 00000292 ADC1Seq1_Handler - 504 00000292 ADC1Seq2_Handler - 505 00000292 ADC1Seq3_Handler - 506 00000292 I2S0_Handler - 507 00000292 ExtBus_Handler - 508 00000292 GPIOPortJ_Handler - 509 00000292 GPIOPortK_Handler - 510 00000292 GPIOPortL_Handler - 511 00000292 SSI2_Handler - 512 00000292 SSI3_Handler - 513 00000292 UART3_Handler - 514 00000292 UART4_Handler - 515 00000292 UART5_Handler - 516 00000292 UART6_Handler - 517 00000292 UART7_Handler - 518 00000292 I2C2_Handler - 519 00000292 I2C3_Handler - 520 00000292 Timer4A_Handler - 521 00000292 Timer4B_Handler - 522 00000292 Timer5A_Handler - 523 00000292 Timer5B_Handler - 524 00000292 WideTimer0A_Handler - 525 00000292 WideTimer0B_Handler - 526 00000292 WideTimer1A_Handler - 527 00000292 WideTimer1B_Handler - 528 00000292 WideTimer2A_Handler - 529 00000292 WideTimer2B_Handler - - - -ARM Macro Assembler Page 15 - - - 530 00000292 WideTimer3A_Handler - 531 00000292 WideTimer3B_Handler - 532 00000292 WideTimer4A_Handler - 533 00000292 WideTimer4B_Handler - 534 00000292 WideTimer5A_Handler - 535 00000292 WideTimer5B_Handler - 536 00000292 FPU_Handler - 537 00000292 PECI0_Handler - 538 00000292 LPC0_Handler - 539 00000292 I2C4_Handler - 540 00000292 I2C5_Handler - 541 00000292 GPIOPortM_Handler - 542 00000292 GPIOPortN_Handler - 543 00000292 Quadrature2_Handler - 544 00000292 Fan0_Handler - 545 00000292 GPIOPortP_Handler - 546 00000292 GPIOPortP1_Handler - 547 00000292 GPIOPortP2_Handler - 548 00000292 GPIOPortP3_Handler - 549 00000292 GPIOPortP4_Handler - 550 00000292 GPIOPortP5_Handler - 551 00000292 GPIOPortP6_Handler - 552 00000292 GPIOPortP7_Handler - 553 00000292 GPIOPortQ_Handler - 554 00000292 GPIOPortQ1_Handler - 555 00000292 GPIOPortQ2_Handler - 556 00000292 GPIOPortQ3_Handler - 557 00000292 GPIOPortQ4_Handler - 558 00000292 GPIOPortQ5_Handler - 559 00000292 GPIOPortQ6_Handler - 560 00000292 GPIOPortQ7_Handler - 561 00000292 GPIOPortR_Handler - 562 00000292 GPIOPortS_Handler - 563 00000292 PWM1Generator0_Handler - 564 00000292 PWM1Generator1_Handler - 565 00000292 PWM1Generator2_Handler - 566 00000292 PWM1Generator3_Handler - 567 00000292 PWM1Fault_Handler - 568 00000292 - 569 00000292 E7FE B . - 570 00000294 - 571 00000294 ENDP - 572 00000294 - 573 00000294 ;******************************************************* - *********************** - 574 00000294 ; - 575 00000294 ; Make sure the end of this section is aligned. - 576 00000294 ; - 577 00000294 ;******************************************************* - *********************** - 578 00000294 ALIGN - 579 00000294 - 580 00000294 ;******************************************************* - *********************** - 581 00000294 ; - 582 00000294 ; Some code in the normal code section for initializing - the heap and stack. - 583 00000294 ; - 584 00000294 ;******************************************************* - - - -ARM Macro Assembler Page 16 - - - *********************** - 585 00000294 AREA |.text|, CODE, READONLY - 586 00000000 - 587 00000000 ;******************************************************* - *********************** - 588 00000000 ; - 589 00000000 ; Useful functions. - 590 00000000 ; - 591 00000000 ;******************************************************* - *********************** - 592 00000000 EXPORT DisableInterrupts - 593 00000000 EXPORT EnableInterrupts - 594 00000000 EXPORT StartCritical - 595 00000000 EXPORT EndCritical - 596 00000000 EXPORT WaitForInterrupt - 597 00000000 - 598 00000000 ;*********** DisableInterrupts *************** - 599 00000000 ; disable interrupts - 600 00000000 ; inputs: none - 601 00000000 ; outputs: none - 602 00000000 DisableInterrupts - 603 00000000 B672 CPSID I - 604 00000002 4770 BX LR - 605 00000004 - 606 00000004 ;*********** EnableInterrupts *************** - 607 00000004 ; disable interrupts - 608 00000004 ; inputs: none - 609 00000004 ; outputs: none - 610 00000004 EnableInterrupts - 611 00000004 B662 CPSIE I - 612 00000006 4770 BX LR - 613 00000008 - 614 00000008 ;*********** StartCritical ************************ - 615 00000008 ; make a copy of previous I bit, disable interrupts - 616 00000008 ; inputs: none - 617 00000008 ; outputs: previous I bit - 618 00000008 StartCritical - 619 00000008 F3EF 8010 MRS R0, PRIMASK ; save old status - 620 0000000C B672 CPSID I ; mask all (except - faults) - 621 0000000E 4770 BX LR - 622 00000010 - 623 00000010 ;*********** EndCritical ************************ - 624 00000010 ; using the copy of previous I bit, restore I bit to pre - vious value - 625 00000010 ; inputs: previous I bit - 626 00000010 ; outputs: none - 627 00000010 EndCritical - 628 00000010 F380 8810 MSR PRIMASK, R0 - 629 00000014 4770 BX LR - 630 00000016 - 631 00000016 ;*********** WaitForInterrupt ************************ - 632 00000016 ; go to low power mode while waiting for the next interr - upt - 633 00000016 ; inputs: none - 634 00000016 ; outputs: none - 635 00000016 WaitForInterrupt - 636 00000016 BF30 WFI - 637 00000018 4770 BX LR - - - -ARM Macro Assembler Page 17 - - - 638 0000001A - 639 0000001A ;******************************************************* - *********************** - 640 0000001A ; - 641 0000001A ; The function expected of the C library startup code fo - r defining the stack - 642 0000001A ; and heap memory locations. For the C library version - of the startup code, - 643 0000001A ; provide this function so that the C library initializa - tion code can find out - 644 0000001A ; the location of the stack and heap. - 645 0000001A ; - 646 0000001A ;******************************************************* - *********************** - 647 0000001A IF :DEF: __MICROLIB - 648 0000001A EXPORT __initial_sp - 649 0000001A EXPORT __heap_base - 650 0000001A EXPORT __heap_limit - 651 0000001A ELSE - 660 ENDIF - 661 0000001A - 662 0000001A ;******************************************************* - *********************** - 663 0000001A ; - 664 0000001A ; Make sure the end of this section is aligned. - 665 0000001A ; - 666 0000001A ;******************************************************* - *********************** - 667 0000001A 00 00 ALIGN - 668 0000001C - 669 0000001C ;******************************************************* - *********************** - 670 0000001C ; - 671 0000001C ; Tell the assembler that we're done. - 672 0000001C ; - 673 0000001C ;******************************************************* - *********************** - 674 0000001C END -Command Line: --debug --xref --cpu=Cortex-M4.fp --apcs=interwork --depend=.\sta -rtup.d -o.\startup.o -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\ -3.20.4\CMSIS\Include -IC:\Keil_v5\ARM\Inc\Luminary --predefine="__EVAL SETA 1" ---predefine="__MICROLIB SETA 1" --list=.\startup.lst startup.s - - - -ARM Macro Assembler Page 1 Alphabetic symbol ordering -Relocatable symbols - -STACK 00000000 - -Symbol: STACK - Definitions - At line 52 in file startup.s - Uses - None -Comment: STACK unused -StackMem 00000000 - -Symbol: StackMem - Definitions - At line 53 in file startup.s - Uses - At line 90 in file startup.s -Comment: StackMem used once -__initial_sp 00000400 - -Symbol: __initial_sp - Definitions - At line 55 in file startup.s - Uses - At line 648 in file startup.s -Comment: __initial_sp used once -3 symbols - - - -ARM Macro Assembler Page 1 Alphabetic symbol ordering -Relocatable symbols - -HEAP 00000000 - -Symbol: HEAP - Definitions - At line 62 in file startup.s - Uses - None -Comment: HEAP unused -HeapMem 00000000 - -Symbol: HeapMem - Definitions - At line 64 in file startup.s - Uses - None -Comment: HeapMem unused -__heap_base 00000000 - -Symbol: __heap_base - Definitions - At line 63 in file startup.s - Uses - At line 649 in file startup.s -Comment: __heap_base used once -__heap_limit 00000000 - -Symbol: __heap_limit - Definitions - At line 66 in file startup.s - Uses - At line 650 in file startup.s -Comment: __heap_limit used once -4 symbols - - - -ARM Macro Assembler Page 1 Alphabetic symbol ordering -Relocatable symbols - -ADC0Seq0_Handler 00000292 - -Symbol: ADC0Seq0_Handler - Definitions - At line 468 in file startup.s - Uses - At line 120 in file startup.s - At line 353 in file startup.s - -ADC0Seq1_Handler 00000292 - -Symbol: ADC0Seq1_Handler - Definitions - At line 469 in file startup.s - Uses - At line 121 in file startup.s - At line 354 in file startup.s - -ADC0Seq2_Handler 00000292 - -Symbol: ADC0Seq2_Handler - Definitions - At line 470 in file startup.s - Uses - At line 122 in file startup.s - At line 355 in file startup.s - -ADC0Seq3_Handler 00000292 - -Symbol: ADC0Seq3_Handler - Definitions - At line 471 in file startup.s - Uses - At line 123 in file startup.s - At line 356 in file startup.s - -ADC1Seq0_Handler 00000292 - -Symbol: ADC1Seq0_Handler - Definitions - At line 502 in file startup.s - Uses - At line 154 in file startup.s - At line 387 in file startup.s - -ADC1Seq1_Handler 00000292 - -Symbol: ADC1Seq1_Handler - Definitions - At line 503 in file startup.s - Uses - At line 155 in file startup.s - At line 388 in file startup.s - -ADC1Seq2_Handler 00000292 - -Symbol: ADC1Seq2_Handler - Definitions - At line 504 in file startup.s - - - -ARM Macro Assembler Page 2 Alphabetic symbol ordering -Relocatable symbols - - Uses - At line 156 in file startup.s - At line 389 in file startup.s - -ADC1Seq3_Handler 00000292 - -Symbol: ADC1Seq3_Handler - Definitions - At line 505 in file startup.s - Uses - At line 157 in file startup.s - At line 390 in file startup.s - -BusFault_Handler 00000286 - -Symbol: BusFault_Handler - Definitions - At line 310 in file startup.s - Uses - At line 95 in file startup.s - At line 311 in file startup.s - -CAN0_Handler 00000292 - -Symbol: CAN0_Handler - Definitions - At line 493 in file startup.s - Uses - At line 145 in file startup.s - At line 378 in file startup.s - -CAN1_Handler 00000292 - -Symbol: CAN1_Handler - Definitions - At line 494 in file startup.s - Uses - At line 146 in file startup.s - At line 379 in file startup.s - -CAN2_Handler 00000292 - -Symbol: CAN2_Handler - Definitions - At line 495 in file startup.s - Uses - At line 147 in file startup.s - At line 380 in file startup.s - -Comp0_Handler 00000292 - -Symbol: Comp0_Handler - Definitions - At line 479 in file startup.s - Uses - At line 131 in file startup.s - At line 364 in file startup.s - -Comp1_Handler 00000292 - - - -ARM Macro Assembler Page 3 Alphabetic symbol ordering -Relocatable symbols - - -Symbol: Comp1_Handler - Definitions - At line 480 in file startup.s - Uses - At line 132 in file startup.s - At line 365 in file startup.s - -Comp2_Handler 00000292 - -Symbol: Comp2_Handler - Definitions - At line 481 in file startup.s - Uses - At line 133 in file startup.s - At line 366 in file startup.s - -DebugMon_Handler 0000028C - -Symbol: DebugMon_Handler - Definitions - At line 324 in file startup.s - Uses - At line 102 in file startup.s - At line 325 in file startup.s - -Ethernet_Handler 00000292 - -Symbol: Ethernet_Handler - Definitions - At line 496 in file startup.s - Uses - At line 148 in file startup.s - At line 381 in file startup.s - -ExtBus_Handler 00000292 - -Symbol: ExtBus_Handler - Definitions - At line 507 in file startup.s - Uses - At line 159 in file startup.s - At line 392 in file startup.s - -FPU_Handler 00000292 - -Symbol: FPU_Handler - Definitions - At line 536 in file startup.s - Uses - At line 212 in file startup.s - At line 421 in file startup.s - -Fan0_Handler 00000292 - -Symbol: Fan0_Handler - Definitions - At line 544 in file startup.s - Uses - - - -ARM Macro Assembler Page 4 Alphabetic symbol ordering -Relocatable symbols - - At line 220 in file startup.s - At line 429 in file startup.s - -FlashCtl_Handler 00000292 - -Symbol: FlashCtl_Handler - Definitions - At line 483 in file startup.s - Uses - At line 135 in file startup.s - At line 368 in file startup.s - -GPIOPortA_Handler 00000292 - -Symbol: GPIOPortA_Handler - Definitions - At line 454 in file startup.s - Uses - At line 106 in file startup.s - At line 339 in file startup.s - -GPIOPortB_Handler 00000292 - -Symbol: GPIOPortB_Handler - Definitions - At line 455 in file startup.s - Uses - At line 107 in file startup.s - At line 340 in file startup.s - -GPIOPortC_Handler 00000292 - -Symbol: GPIOPortC_Handler - Definitions - At line 456 in file startup.s - Uses - At line 108 in file startup.s - At line 341 in file startup.s - -GPIOPortD_Handler 00000292 - -Symbol: GPIOPortD_Handler - Definitions - At line 457 in file startup.s - Uses - At line 109 in file startup.s - At line 342 in file startup.s - -GPIOPortE_Handler 00000292 - -Symbol: GPIOPortE_Handler - Definitions - At line 458 in file startup.s - Uses - At line 110 in file startup.s - At line 343 in file startup.s - -GPIOPortF_Handler 00000292 - - - - -ARM Macro Assembler Page 5 Alphabetic symbol ordering -Relocatable symbols - -Symbol: GPIOPortF_Handler - Definitions - At line 484 in file startup.s - Uses - At line 136 in file startup.s - At line 369 in file startup.s - -GPIOPortG_Handler 00000292 - -Symbol: GPIOPortG_Handler - Definitions - At line 485 in file startup.s - Uses - At line 137 in file startup.s - At line 370 in file startup.s - -GPIOPortH_Handler 00000292 - -Symbol: GPIOPortH_Handler - Definitions - At line 486 in file startup.s - Uses - At line 138 in file startup.s - At line 371 in file startup.s - -GPIOPortJ_Handler 00000292 - -Symbol: GPIOPortJ_Handler - Definitions - At line 508 in file startup.s - Uses - At line 160 in file startup.s - At line 393 in file startup.s - -GPIOPortK_Handler 00000292 - -Symbol: GPIOPortK_Handler - Definitions - At line 509 in file startup.s - Uses - At line 161 in file startup.s - At line 394 in file startup.s - -GPIOPortL_Handler 00000292 - -Symbol: GPIOPortL_Handler - Definitions - At line 510 in file startup.s - Uses - At line 162 in file startup.s - At line 395 in file startup.s - -GPIOPortM_Handler 00000292 - -Symbol: GPIOPortM_Handler - Definitions - At line 541 in file startup.s - Uses - At line 217 in file startup.s - - - -ARM Macro Assembler Page 6 Alphabetic symbol ordering -Relocatable symbols - - At line 426 in file startup.s - -GPIOPortN_Handler 00000292 - -Symbol: GPIOPortN_Handler - Definitions - At line 542 in file startup.s - Uses - At line 218 in file startup.s - At line 427 in file startup.s - -GPIOPortP1_Handler 00000292 - -Symbol: GPIOPortP1_Handler - Definitions - At line 546 in file startup.s - Uses - At line 223 in file startup.s - At line 431 in file startup.s - -GPIOPortP2_Handler 00000292 - -Symbol: GPIOPortP2_Handler - Definitions - At line 547 in file startup.s - Uses - At line 224 in file startup.s - At line 432 in file startup.s - -GPIOPortP3_Handler 00000292 - -Symbol: GPIOPortP3_Handler - Definitions - At line 548 in file startup.s - Uses - At line 225 in file startup.s - At line 433 in file startup.s - -GPIOPortP4_Handler 00000292 - -Symbol: GPIOPortP4_Handler - Definitions - At line 549 in file startup.s - Uses - At line 226 in file startup.s - At line 434 in file startup.s - -GPIOPortP5_Handler 00000292 - -Symbol: GPIOPortP5_Handler - Definitions - At line 550 in file startup.s - Uses - At line 227 in file startup.s - At line 435 in file startup.s - -GPIOPortP6_Handler 00000292 - -Symbol: GPIOPortP6_Handler - - - -ARM Macro Assembler Page 7 Alphabetic symbol ordering -Relocatable symbols - - Definitions - At line 551 in file startup.s - Uses - At line 228 in file startup.s - At line 436 in file startup.s - -GPIOPortP7_Handler 00000292 - -Symbol: GPIOPortP7_Handler - Definitions - At line 552 in file startup.s - Uses - At line 229 in file startup.s - At line 437 in file startup.s - -GPIOPortP_Handler 00000292 - -Symbol: GPIOPortP_Handler - Definitions - At line 545 in file startup.s - Uses - At line 222 in file startup.s - At line 430 in file startup.s - -GPIOPortQ1_Handler 00000292 - -Symbol: GPIOPortQ1_Handler - Definitions - At line 554 in file startup.s - Uses - At line 231 in file startup.s - At line 439 in file startup.s - -GPIOPortQ2_Handler 00000292 - -Symbol: GPIOPortQ2_Handler - Definitions - At line 555 in file startup.s - Uses - At line 232 in file startup.s - At line 440 in file startup.s - -GPIOPortQ3_Handler 00000292 - -Symbol: GPIOPortQ3_Handler - Definitions - At line 556 in file startup.s - Uses - At line 233 in file startup.s - At line 441 in file startup.s - -GPIOPortQ4_Handler 00000292 - -Symbol: GPIOPortQ4_Handler - Definitions - At line 557 in file startup.s - Uses - At line 234 in file startup.s - At line 442 in file startup.s - - - -ARM Macro Assembler Page 8 Alphabetic symbol ordering -Relocatable symbols - - -GPIOPortQ5_Handler 00000292 - -Symbol: GPIOPortQ5_Handler - Definitions - At line 558 in file startup.s - Uses - At line 235 in file startup.s - At line 443 in file startup.s - -GPIOPortQ6_Handler 00000292 - -Symbol: GPIOPortQ6_Handler - Definitions - At line 559 in file startup.s - Uses - At line 236 in file startup.s - At line 444 in file startup.s - -GPIOPortQ7_Handler 00000292 - -Symbol: GPIOPortQ7_Handler - Definitions - At line 560 in file startup.s - Uses - At line 237 in file startup.s - At line 445 in file startup.s - -GPIOPortQ_Handler 00000292 - -Symbol: GPIOPortQ_Handler - Definitions - At line 553 in file startup.s - Uses - At line 230 in file startup.s - At line 438 in file startup.s - -GPIOPortR_Handler 00000292 - -Symbol: GPIOPortR_Handler - Definitions - At line 561 in file startup.s - Uses - At line 238 in file startup.s - At line 446 in file startup.s - -GPIOPortS_Handler 00000292 - -Symbol: GPIOPortS_Handler - Definitions - At line 562 in file startup.s - Uses - At line 239 in file startup.s - At line 447 in file startup.s - -HardFault_Handler 00000282 - -Symbol: HardFault_Handler - Definitions - - - -ARM Macro Assembler Page 9 Alphabetic symbol ordering -Relocatable symbols - - At line 299 in file startup.s - Uses - At line 93 in file startup.s - At line 300 in file startup.s - -Hibernate_Handler 00000292 - -Symbol: Hibernate_Handler - Definitions - At line 497 in file startup.s - Uses - At line 149 in file startup.s - At line 382 in file startup.s - -I2C0_Handler 00000292 - -Symbol: I2C0_Handler - Definitions - At line 462 in file startup.s - Uses - At line 114 in file startup.s - At line 347 in file startup.s - -I2C1_Handler 00000292 - -Symbol: I2C1_Handler - Definitions - At line 491 in file startup.s - Uses - At line 143 in file startup.s - At line 376 in file startup.s - -I2C2_Handler 00000292 - -Symbol: I2C2_Handler - Definitions - At line 518 in file startup.s - Uses - At line 174 in file startup.s - At line 403 in file startup.s - -I2C3_Handler 00000292 - -Symbol: I2C3_Handler - Definitions - At line 519 in file startup.s - Uses - At line 175 in file startup.s - At line 404 in file startup.s - -I2C4_Handler 00000292 - -Symbol: I2C4_Handler - Definitions - At line 539 in file startup.s - Uses - At line 215 in file startup.s - At line 424 in file startup.s - - - - -ARM Macro Assembler Page 10 Alphabetic symbol ordering -Relocatable symbols - -I2C5_Handler 00000292 - -Symbol: I2C5_Handler - Definitions - At line 540 in file startup.s - Uses - At line 216 in file startup.s - At line 425 in file startup.s - -I2S0_Handler 00000292 - -Symbol: I2S0_Handler - Definitions - At line 506 in file startup.s - Uses - At line 158 in file startup.s - At line 391 in file startup.s - -IntDefaultHandler 00000292 - -Symbol: IntDefaultHandler - Definitions - At line 337 in file startup.s - Uses - None -Comment: IntDefaultHandler unused -LPC0_Handler 00000292 - -Symbol: LPC0_Handler - Definitions - At line 538 in file startup.s - Uses - At line 214 in file startup.s - At line 423 in file startup.s - -MemManage_Handler 00000284 - -Symbol: MemManage_Handler - Definitions - At line 305 in file startup.s - Uses - At line 94 in file startup.s - At line 306 in file startup.s - -NMI_Handler 00000280 - -Symbol: NMI_Handler - Definitions - At line 286 in file startup.s - Uses - At line 92 in file startup.s - At line 287 in file startup.s - -PECI0_Handler 00000292 - -Symbol: PECI0_Handler - Definitions - At line 537 in file startup.s - Uses - - - -ARM Macro Assembler Page 11 Alphabetic symbol ordering -Relocatable symbols - - At line 213 in file startup.s - At line 422 in file startup.s - -PWM0Fault_Handler 00000292 - -Symbol: PWM0Fault_Handler - Definitions - At line 463 in file startup.s - Uses - At line 115 in file startup.s - At line 348 in file startup.s - -PWM0Generator0_Handler 00000292 - -Symbol: PWM0Generator0_Handler - Definitions - At line 464 in file startup.s - Uses - At line 116 in file startup.s - At line 349 in file startup.s - -PWM0Generator1_Handler 00000292 - -Symbol: PWM0Generator1_Handler - Definitions - At line 465 in file startup.s - Uses - At line 117 in file startup.s - At line 350 in file startup.s - -PWM0Generator2_Handler 00000292 - -Symbol: PWM0Generator2_Handler - Definitions - At line 466 in file startup.s - Uses - At line 118 in file startup.s - At line 351 in file startup.s - -PWM0Generator3_Handler 00000292 - -Symbol: PWM0Generator3_Handler - Definitions - At line 499 in file startup.s - Uses - At line 151 in file startup.s - At line 384 in file startup.s - -PWM1Fault_Handler 00000292 - -Symbol: PWM1Fault_Handler - Definitions - At line 567 in file startup.s - Uses - At line 244 in file startup.s - At line 452 in file startup.s - -PWM1Generator0_Handler 00000292 - - - - -ARM Macro Assembler Page 12 Alphabetic symbol ordering -Relocatable symbols - -Symbol: PWM1Generator0_Handler - Definitions - At line 563 in file startup.s - Uses - At line 240 in file startup.s - At line 448 in file startup.s - -PWM1Generator1_Handler 00000292 - -Symbol: PWM1Generator1_Handler - Definitions - At line 564 in file startup.s - Uses - At line 241 in file startup.s - At line 449 in file startup.s - -PWM1Generator2_Handler 00000292 - -Symbol: PWM1Generator2_Handler - Definitions - At line 565 in file startup.s - Uses - At line 242 in file startup.s - At line 450 in file startup.s - -PWM1Generator3_Handler 00000292 - -Symbol: PWM1Generator3_Handler - Definitions - At line 566 in file startup.s - Uses - At line 243 in file startup.s - At line 451 in file startup.s - -PendSV_Handler 0000028E - -Symbol: PendSV_Handler - Definitions - At line 328 in file startup.s - Uses - At line 104 in file startup.s - At line 329 in file startup.s - -Quadrature0_Handler 00000292 - -Symbol: Quadrature0_Handler - Definitions - At line 467 in file startup.s - Uses - At line 119 in file startup.s - At line 352 in file startup.s - -Quadrature1_Handler 00000292 - -Symbol: Quadrature1_Handler - Definitions - At line 492 in file startup.s - Uses - At line 144 in file startup.s - - - -ARM Macro Assembler Page 13 Alphabetic symbol ordering -Relocatable symbols - - At line 377 in file startup.s - -Quadrature2_Handler 00000292 - -Symbol: Quadrature2_Handler - Definitions - At line 543 in file startup.s - Uses - At line 219 in file startup.s - At line 428 in file startup.s - -RESET 00000000 - -Symbol: RESET - Definitions - At line 80 in file startup.s - Uses - None -Comment: RESET unused -Reset_Handler 0000026C - -Symbol: Reset_Handler - Definitions - At line 253 in file startup.s - Uses - At line 91 in file startup.s - At line 252 in file startup.s - -SSI0_Handler 00000292 - -Symbol: SSI0_Handler - Definitions - At line 461 in file startup.s - Uses - At line 113 in file startup.s - At line 346 in file startup.s - -SSI1_Handler 00000292 - -Symbol: SSI1_Handler - Definitions - At line 488 in file startup.s - Uses - At line 140 in file startup.s - At line 373 in file startup.s - -SSI2_Handler 00000292 - -Symbol: SSI2_Handler - Definitions - At line 511 in file startup.s - Uses - At line 163 in file startup.s - At line 396 in file startup.s - -SSI3_Handler 00000292 - -Symbol: SSI3_Handler - Definitions - - - -ARM Macro Assembler Page 14 Alphabetic symbol ordering -Relocatable symbols - - At line 512 in file startup.s - Uses - At line 164 in file startup.s - At line 397 in file startup.s - -SVC_Handler 0000028A - -Symbol: SVC_Handler - Definitions - At line 319 in file startup.s - Uses - At line 101 in file startup.s - At line 320 in file startup.s - -SysCtl_Handler 00000292 - -Symbol: SysCtl_Handler - Definitions - At line 482 in file startup.s - Uses - At line 134 in file startup.s - At line 367 in file startup.s - -SysTick_Handler 00000290 - -Symbol: SysTick_Handler - Definitions - At line 332 in file startup.s - Uses - At line 105 in file startup.s - At line 333 in file startup.s - -Timer0A_Handler 00000292 - -Symbol: Timer0A_Handler - Definitions - At line 473 in file startup.s - Uses - At line 125 in file startup.s - At line 358 in file startup.s - -Timer0B_Handler 00000292 - -Symbol: Timer0B_Handler - Definitions - At line 474 in file startup.s - Uses - At line 126 in file startup.s - At line 359 in file startup.s - -Timer1A_Handler 00000292 - -Symbol: Timer1A_Handler - Definitions - At line 475 in file startup.s - Uses - At line 127 in file startup.s - At line 360 in file startup.s - - - - -ARM Macro Assembler Page 15 Alphabetic symbol ordering -Relocatable symbols - -Timer1B_Handler 00000292 - -Symbol: Timer1B_Handler - Definitions - At line 476 in file startup.s - Uses - At line 128 in file startup.s - At line 361 in file startup.s - -Timer2A_Handler 00000292 - -Symbol: Timer2A_Handler - Definitions - At line 477 in file startup.s - Uses - At line 129 in file startup.s - At line 362 in file startup.s - -Timer2B_Handler 00000292 - -Symbol: Timer2B_Handler - Definitions - At line 478 in file startup.s - Uses - At line 130 in file startup.s - At line 363 in file startup.s - -Timer3A_Handler 00000292 - -Symbol: Timer3A_Handler - Definitions - At line 489 in file startup.s - Uses - At line 141 in file startup.s - At line 374 in file startup.s - -Timer3B_Handler 00000292 - -Symbol: Timer3B_Handler - Definitions - At line 490 in file startup.s - Uses - At line 142 in file startup.s - At line 375 in file startup.s - -Timer4A_Handler 00000292 - -Symbol: Timer4A_Handler - Definitions - At line 520 in file startup.s - Uses - At line 176 in file startup.s - At line 405 in file startup.s - -Timer4B_Handler 00000292 - -Symbol: Timer4B_Handler - Definitions - At line 521 in file startup.s - - - -ARM Macro Assembler Page 16 Alphabetic symbol ordering -Relocatable symbols - - Uses - At line 177 in file startup.s - At line 406 in file startup.s - -Timer5A_Handler 00000292 - -Symbol: Timer5A_Handler - Definitions - At line 522 in file startup.s - Uses - At line 198 in file startup.s - At line 407 in file startup.s - -Timer5B_Handler 00000292 - -Symbol: Timer5B_Handler - Definitions - At line 523 in file startup.s - Uses - At line 199 in file startup.s - At line 408 in file startup.s - -UART0_Handler 00000292 - -Symbol: UART0_Handler - Definitions - At line 459 in file startup.s - Uses - At line 111 in file startup.s - At line 344 in file startup.s - -UART1_Handler 00000292 - -Symbol: UART1_Handler - Definitions - At line 460 in file startup.s - Uses - At line 112 in file startup.s - At line 345 in file startup.s - -UART2_Handler 00000292 - -Symbol: UART2_Handler - Definitions - At line 487 in file startup.s - Uses - At line 139 in file startup.s - At line 372 in file startup.s - -UART3_Handler 00000292 - -Symbol: UART3_Handler - Definitions - At line 513 in file startup.s - Uses - At line 165 in file startup.s - At line 398 in file startup.s - -UART4_Handler 00000292 - - - -ARM Macro Assembler Page 17 Alphabetic symbol ordering -Relocatable symbols - - -Symbol: UART4_Handler - Definitions - At line 514 in file startup.s - Uses - At line 166 in file startup.s - At line 399 in file startup.s - -UART5_Handler 00000292 - -Symbol: UART5_Handler - Definitions - At line 515 in file startup.s - Uses - At line 167 in file startup.s - At line 400 in file startup.s - -UART6_Handler 00000292 - -Symbol: UART6_Handler - Definitions - At line 516 in file startup.s - Uses - At line 168 in file startup.s - At line 401 in file startup.s - -UART7_Handler 00000292 - -Symbol: UART7_Handler - Definitions - At line 517 in file startup.s - Uses - At line 169 in file startup.s - At line 402 in file startup.s - -USB0_Handler 00000292 - -Symbol: USB0_Handler - Definitions - At line 498 in file startup.s - Uses - At line 150 in file startup.s - At line 383 in file startup.s - -UsageFault_Handler 00000288 - -Symbol: UsageFault_Handler - Definitions - At line 315 in file startup.s - Uses - At line 96 in file startup.s - At line 316 in file startup.s - -WDT_Handler 00000292 - -Symbol: WDT_Handler - Definitions - At line 472 in file startup.s - Uses - - - -ARM Macro Assembler Page 18 Alphabetic symbol ordering -Relocatable symbols - - At line 124 in file startup.s - At line 357 in file startup.s - -WideTimer0A_Handler 00000292 - -Symbol: WideTimer0A_Handler - Definitions - At line 524 in file startup.s - Uses - At line 200 in file startup.s - At line 409 in file startup.s - -WideTimer0B_Handler 00000292 - -Symbol: WideTimer0B_Handler - Definitions - At line 525 in file startup.s - Uses - At line 201 in file startup.s - At line 410 in file startup.s - -WideTimer1A_Handler 00000292 - -Symbol: WideTimer1A_Handler - Definitions - At line 526 in file startup.s - Uses - At line 202 in file startup.s - At line 411 in file startup.s - -WideTimer1B_Handler 00000292 - -Symbol: WideTimer1B_Handler - Definitions - At line 527 in file startup.s - Uses - At line 203 in file startup.s - At line 412 in file startup.s - -WideTimer2A_Handler 00000292 - -Symbol: WideTimer2A_Handler - Definitions - At line 528 in file startup.s - Uses - At line 204 in file startup.s - At line 413 in file startup.s - -WideTimer2B_Handler 00000292 - -Symbol: WideTimer2B_Handler - Definitions - At line 529 in file startup.s - Uses - At line 205 in file startup.s - At line 414 in file startup.s - -WideTimer3A_Handler 00000292 - - - - -ARM Macro Assembler Page 19 Alphabetic symbol ordering -Relocatable symbols - -Symbol: WideTimer3A_Handler - Definitions - At line 530 in file startup.s - Uses - At line 206 in file startup.s - At line 415 in file startup.s - -WideTimer3B_Handler 00000292 - -Symbol: WideTimer3B_Handler - Definitions - At line 531 in file startup.s - Uses - At line 207 in file startup.s - At line 416 in file startup.s - -WideTimer4A_Handler 00000292 - -Symbol: WideTimer4A_Handler - Definitions - At line 532 in file startup.s - Uses - At line 208 in file startup.s - At line 417 in file startup.s - -WideTimer4B_Handler 00000292 - -Symbol: WideTimer4B_Handler - Definitions - At line 533 in file startup.s - Uses - At line 209 in file startup.s - At line 418 in file startup.s - -WideTimer5A_Handler 00000292 - -Symbol: WideTimer5A_Handler - Definitions - At line 534 in file startup.s - Uses - At line 210 in file startup.s - At line 419 in file startup.s - -WideTimer5B_Handler 00000292 - -Symbol: WideTimer5B_Handler - Definitions - At line 535 in file startup.s - Uses - At line 211 in file startup.s - At line 420 in file startup.s - -__Vectors 00000000 - -Symbol: __Vectors - Definitions - At line 89 in file startup.s - Uses - At line 88 in file startup.s - - - -ARM Macro Assembler Page 20 Alphabetic symbol ordering -Relocatable symbols - -Comment: __Vectors used once -uDMA_Error 00000292 - -Symbol: uDMA_Error - Definitions - At line 501 in file startup.s - Uses - At line 153 in file startup.s - At line 386 in file startup.s - -uDMA_Handler 00000292 - -Symbol: uDMA_Handler - Definitions - At line 500 in file startup.s - Uses - At line 152 in file startup.s - At line 385 in file startup.s - -127 symbols - - - -ARM Macro Assembler Page 1 Alphabetic symbol ordering -Relocatable symbols - -.text 00000000 - -Symbol: .text - Definitions - At line 585 in file startup.s - Uses - None -Comment: .text unused -DisableInterrupts 00000000 - -Symbol: DisableInterrupts - Definitions - At line 602 in file startup.s - Uses - At line 592 in file startup.s -Comment: DisableInterrupts used once -EnableInterrupts 00000004 - -Symbol: EnableInterrupts - Definitions - At line 610 in file startup.s - Uses - At line 593 in file startup.s -Comment: EnableInterrupts used once -EndCritical 00000010 - -Symbol: EndCritical - Definitions - At line 627 in file startup.s - Uses - At line 595 in file startup.s -Comment: EndCritical used once -StartCritical 00000008 - -Symbol: StartCritical - Definitions - At line 618 in file startup.s - Uses - At line 594 in file startup.s -Comment: StartCritical used once -WaitForInterrupt 00000016 - -Symbol: WaitForInterrupt - Definitions - At line 635 in file startup.s - Uses - At line 596 in file startup.s -Comment: WaitForInterrupt used once -6 symbols - - - -ARM Macro Assembler Page 1 Alphabetic symbol ordering -Absolute symbols - -Heap 00000000 - -Symbol: Heap - Definitions - At line 45 in file startup.s - Uses - At line 65 in file startup.s -Comment: Heap used once -Stack 00000400 - -Symbol: Stack - Definitions - At line 38 in file startup.s - Uses - At line 54 in file startup.s - At line 90 in file startup.s - -2 symbols - - - -ARM Macro Assembler Page 1 Alphabetic symbol ordering -External symbols - -__main 00000000 - -Symbol: __main - Definitions - At line 276 in file startup.s - Uses - At line 277 in file startup.s -Comment: __main used once -1 symbol -476 symbols in table diff --git a/DMATimer_4F120/startup.o b/DMATimer_4F120/startup.o deleted file mode 100644 index f48cea410404672a9d5115b3020c43f6c9f769c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9472 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 YCYd2O0`2+z{$x+}7cqUMg$R@X1z!{V*#H0l diff --git a/MeasurementOfDistance/ADC.c b/MeasurementOfDistance/ADC.c new file mode 100644 index 0000000..1fd74ac --- /dev/null +++ b/MeasurementOfDistance/ADC.c @@ -0,0 +1,44 @@ +// ADC.c +// Runs on LM4F120/TM4C123 +// Provide functions that initialize ADC0 SS3 to be triggered by +// software and trigger a conversion, wait for it to finish, +// and return the result. +// Daniel Valvano +// April 8, 2014 + +/* This example accompanies the book + "Embedded Systems: Real Time Interfacing to Arm Cortex M Microcontrollers", + ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2013 + + Copyright 2013 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ + +#include "ADC.h" +#include "..//tm4c123gh6pm.h" + +// This initialization function sets up the ADC +// Max sample rate: <=125,000 samples/second +// SS3 triggering event: software trigger +// SS3 1st sample source: channel 1 +// SS3 interrupts: enabled but not promoted to controller +void ADC0_Init(void){ + +} + + +//------------ADC0_In------------ +// Busy-wait Analog to digital conversion +// Input: none +// Output: 12-bit result of ADC conversion +unsigned long ADC0_In(void){ + return 0; // replace this line with proper code +} diff --git a/MeasurementOfDistance/ADC.h b/MeasurementOfDistance/ADC.h new file mode 100644 index 0000000..a2f00de --- /dev/null +++ b/MeasurementOfDistance/ADC.h @@ -0,0 +1,39 @@ +// ADC.h +// Runs on LM4F120/TM4C123 +// Provide functions that initialize ADC0 SS3 to be triggered by +// software and trigger a conversion, wait for it to finish, +// and return the result. +// Daniel Valvano +// April 8, 2014 + +/* This example accompanies the book + "Embedded Systems: Real Time Interfacing to Arm Cortex M Microcontrollers", + ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2013 + + Copyright 2013 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ + + +// This initialization function sets up the ADC +// Max sample rate: <=125,000 samples/second +// SS3 triggering event: software trigger +// SS3 1st sample source: channel 1 +// SS3 interrupts: enabled but not promoted to controller +void ADC0_Init(void); + + + +//------------ADC0_In------------ +// Busy-wait Analog to digital conversion +// Input: none +// Output: 12-bit result of ADC conversion +unsigned long ADC0_In(void); diff --git a/MeasurementOfDistance/Calibration.xls b/MeasurementOfDistance/Calibration.xls new file mode 100644 index 0000000000000000000000000000000000000000..ecbc9971d0489dbb7effff5b8c53ad586e9d5165 GIT binary patch literal 30208 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 + + + -4.1 + +
    ### uVision Project, (C) Keil Software
    + + + + + + 38003 + Registers + 115 113 + + + 346 + Code Coverage + 780 160 + + + 204 + Performance Analyzer + 940 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + FiltIdx=0;DescrEn=0;DescrHeight=4;FuncTrc=0;FindType=8;ColWidths=001300200082003500310044003A0096 + 75 135 130 95 70 230 200 + + + + + + 0 + 0 + 0 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 89 + 203 + 1225 + 811 + + + + 0 + + 420 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000000000000100000063443A5C44726F70626F785C61706E3137365C6564585F6C61627331345F31355C4D7953657475705C4C6162776172655C4C616231345F4D6561737572656D656E744F6644697374616E63655C4D6561737572656D656E744F6644697374616E63652E6300000000174D6561737572656D656E744F6644697374616E63652E6300000000FFDC7800FFFFFFFF53443A5C44726F70626F785C61706E3137365C6564585F6C61627331345F31355C4D7953657475705C4C6162776172655C4C616231345F4D6561737572656D656E744F6644697374616E63655C54457861532E68000000000754457861532E6800000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F20000005E00000040060000CA020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F20000004B000000A8040000C2000000 + + + 16 + F20000005E000000A8040000D5000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB0000009E020000 + + + 16 + 30000000430000001E01000021020000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB0000009E020000 + + + 16 + 30000000430000001E01000021020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + F500000062000000A5040000A9000000 + + + 16 + EE000000630000003C060000DA000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB0000009E020000 + + + 16 + 30000000430000001E01000021020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB0000009E020000 + + + 16 + 30000000430000001E01000021020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000CF0200004006000032030000 + + + 16 + 300000004300000084020000BA000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000004F00000040060000B7020000 + + + 16 + 3E000000910000006B0300004A030000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000D20200003D06000019030000 + + + 16 + 300000004300000084020000BA000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + F500000062000000A5040000A9000000 + + + 16 + EE000000630000003C060000DA000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + F500000062000000A5040000A9000000 + + + 16 + EE000000630000003C060000DA000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 300000004300000084020000BA000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + F500000062000000A5040000A9000000 + + + 16 + EE000000630000003C060000DA000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + F500000062000000A5040000A9000000 + + + 16 + EE000000630000003C060000DA000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + F500000062000000A5040000A9000000 + + + 16 + EE000000630000003C060000DA000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 1B03000062000000A5040000AE010000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB0000009E020000 + + + 16 + 30000000430000001E01000021020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000D20200003D06000019030000 + + + 16 + 300000004300000084020000BA000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000D20200003D06000019030000 + + + 16 + 30000000430000001E01000021020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D0600009E020000 + + + 16 + 3000000043000000C0010000D3010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 882 + 0 + 8192 + 0 + + 16 + 00000000000000007D0300001A000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000320300004006000045030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 417 + 0 + 8192 + 1 + + 16 + 000000001A000000AC01000034000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 572 + 0 + 8192 + 2 + + 16 + 0000000034000000470200004E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF2000000C2000000A8040000C6000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000F20000005E000000A8040000D5000000F20000004B000000A8040000C20000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF140300004B00000018030000C7010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000180300005E000000A8040000DA010000180300004B000000A8040000C70100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFEE0000004B000000F2000000B7020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000005E000000EE000000CA020000000000004B000000EE000000B70200000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000004B000000400600004F00000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000006200000040060000CA020000000000004F00000040060000B702000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF54020000B7010000580200004202000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000B702000040060000BB020000010000000100001004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000CE020000400600004503000000000000BB02000040060000320300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2261 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000007766F6C746167659600000000000000140007766F6C74616765047265616C0574696D657204616463301353595343544C5F5243435F50574D4449565F320D7365745F6D61785F737065656412535349436F6E666967536574457870436C6B037770750E53595343544C5F52434743315F5205706F727461065761766550740834303046453037300E53595343544C5F52434743305F520472636763035044330465313030056C61622033046C616233046C6162320873657467726164650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C6572030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 637 + 00200000010000000F00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000004001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000054C6162313496000000000000000100054C61623134000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E0000000000000000000000000000000001000000010000000180BE010000000004005000000000000000000000000000000000010000000100000000000000054275696C64A1010000 + + + 548 + 0F00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 548 + 0F00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A0000000000000000000000000000000001000000010000000180BE010000000000000B000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F7200000000000000000100000000000000010000000000000000000000010000000000000000000544656275673C020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1600 + 900 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F20000004B00000040060000C2000000 + + + 16 + F20000005E00000040060000D5000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB00000027020000 + + + 16 + 9E000000B10000008C0100008F020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB00000027020000 + + + 16 + 9E000000B10000008C0100008F020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F5000000620000003D060000A9000000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 1939 + 1939 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB00000027020000 + + + 16 + 9E000000B10000008C0100008F020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB00000027020000 + + + 16 + 9E000000B10000008C0100008F020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000E2010000A504000029020000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000044020000FE03000032030000 + + + 16 + 3E000000910000006B0300004A030000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E2010000A504000029020000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + F20000005F00000040060000C2000000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F5000000620000003D060000A9000000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F5000000620000003D060000A9000000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F5000000620000003D060000A9000000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F5000000620000003D060000A9000000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3040000620000003D06000027020000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000EB00000027020000 + + + 16 + 9E000000B10000008C0100008F020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E2010000A504000029020000 + + + 16 + 9E000000B1000000F202000028010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E2010000A504000029020000 + + + 16 + 9E000000B10000008C0100008F020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 050400005B0200003D06000019030000 + + + 16 + 9E000000B10000002E02000041020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 882 + 0 + 8192 + 0 + + 16 + 00000000000000007D0300001A000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000320300004006000045030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 417 + 0 + 8192 + 1 + + 16 + 000000001A000000AC01000034000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 572 + 0 + 8192 + 2 + + 16 + 000000001A0000004702000034000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2635 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFF2000000C200000040060000C6000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000F20000005E00000040060000D5000000F20000004B00000040060000C20000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFAC0400004B000000B004000040020000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000B00400005E0000004006000053020000B00400004B00000040060000400200000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF115445786153204772616465722076322E3100000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFEE0000004B000000F200000040020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000005E000000EE00000053020000000000004B000000EE000000400200000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000004002000040060000440200000100000001000010040000000100000018FFFFFF1601000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000001000000020400005702000040060000450300000204000044020000400600003203000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331010000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF010000000000000001000000000000000100000001000000FFFFFFFFFE03000044020000020400003203000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000C7010000A8040000CB010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000000000000DE010000A80400005502000000000000CB010000A8040000420200000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2261 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000007766F6C746167659600000000000000140007766F6C74616765047265616C0574696D657204616463301353595343544C5F5243435F50574D4449565F320D7365745F6D61785F737065656412535349436F6E666967536574457870436C6B037770750E53595343544C5F52434743315F5205706F727461065761766550740834303046453037300E53595343544C5F52434743305F520472636763035044330465313030056C61622033046C616233046C6162320873657467726164650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C6572030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 622 + 00200000000000000F00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E0000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64A1010000 + + + 548 + 0F00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 548 + 0F00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A0000000000000000000000000000000001000000010000000180BE010000000000000B000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000100330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F7201000000000000000100000000000000010000000000000000000000010000000000000000000544656275673C020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1600 + 900 + + + + + + + D:\Dropbox\apn176\edX_labs14_15\MySetup\Labware\Lab14_MeasurementOfDistance\TExaS.h + 0 + 2 + 13 + + + + + 1 + 0 + + 100 + 0 + + .\MeasurementOfDistance.c + 15 + 34 + 35 + 1 + + 0 + + + TExaS.h + 23 + 2 + 13 + 1 + + 0 + + + + +
    diff --git a/MeasurementOfDistance/Lab14_PCBartist.sch b/MeasurementOfDistance/Lab14_PCBartist.sch new file mode 100644 index 0000000000000000000000000000000000000000..3a827092fa44b5213f1f2ba49f408bb06d80dc4a GIT binary patch literal 67584 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 L8+{!Aw=(|^NjIY3 literal 0 HcmV?d00001 diff --git a/MeasurementOfDistance/MeasurementOfDistance.c b/MeasurementOfDistance/MeasurementOfDistance.c new file mode 100644 index 0000000..57c0062 --- /dev/null +++ b/MeasurementOfDistance/MeasurementOfDistance.c @@ -0,0 +1,118 @@ +// MeasurementOfDistance.c +// Runs on LM4F120/TM4C123 +// Use SysTick interrupts to periodically initiate a software- +// triggered ADC conversion, convert the sample to a fixed- +// point decimal distance, and store the result in a mailbox. +// The foreground thread takes the result from the mailbox, +// converts the result to a string, and prints it to the +// Nokia5110 LCD. The display is optional. +// April 8, 2014 + +/* This example accompanies the book + "Embedded Systems: Introduction to ARM Cortex M Microcontrollers", + ISBN: 978-1469998749, Jonathan Valvano, copyright (c) 2013 + + Copyright 2013 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ + +// Slide pot pin 3 connected to +3.3V +// Slide pot pin 2 connected to PE1 and PD3 +// Slide pot pin 1 connected to ground + + +#include "ADC.h" +#include "..//tm4c123gh6pm.h" +#include "Nokia5110.h" +#include "TExaS.h" + +void EnableInterrupts(void); // Enable interrupts + +unsigned char String[10]; +unsigned long Distance; // units 0.001 cm +unsigned long ADCdata; // 12-bit 0 to 4095 sample +unsigned long Flag; // 1 means valid Distance, 0 means Distance is empty + +//********Convert**************** +// Convert a 12-bit binary ADC sample into a 32-bit unsigned +// fixed-point distance (resolution 0.001 cm). Calibration +// data is gathered using known distances and reading the +// ADC value measured on PE1. +// Overflow and dropout should be considered +// Input: sample 12-bit ADC sample +// Output: 32-bit distance (resolution 0.001cm) +unsigned long Convert(unsigned long sample){ + return 0; // replace this line with real code +} + +// Initialize SysTick interrupts to trigger at 40 Hz, 25 ms +void SysTick_Init(unsigned long period){ + +} +// executes every 25 ms, collects a sample, converts and stores in mailbox +void SysTick_Handler(void){ + +} + +//-----------------------UART_ConvertDistance----------------------- +// Converts a 32-bit distance into an ASCII string +// Input: 32-bit number to be converted (resolution 0.001cm) +// Output: store the conversion in global variable String[10] +// Fixed format 1 digit, point, 3 digits, space, units, null termination +// Examples +// 4 to "0.004 cm" +// 31 to "0.031 cm" +// 102 to "0.102 cm" +// 2210 to "2.210 cm" +//10000 to "*.*** cm" any value larger than 9999 converted to "*.*** cm" +void UART_ConvertDistance(unsigned long n){ +// as part of Lab 11 you implemented this function + +} +int main(void){ + volatile unsigned long delay; + TExaS_Init(ADC0_AIN1_PIN_PE2, SSI0_Real_Nokia5110_Scope); +// initialize ADC0, channel 1, sequencer 3 +// initialize Nokia5110 LCD (optional) +// initialize SysTick for 40 Hz interrupts +// initialize profiling on PF1 (optional) + // wait for clock to stabilize + + EnableInterrupts(); +// print a welcome message (optional) + while(1){ +// read mailbox +// output to Nokia5110 LCD (optional) + } +} + +int main1(void){ + TExaS_Init(ADC0_AIN1_PIN_PE2, SSI0_Real_Nokia5110_Scope); + ADC0_Init(); // initialize ADC0, channel 1, sequencer 3 + EnableInterrupts(); + while(1){ + ADCdata = ADC0_In(); + } +} +int main2(void){ + TExaS_Init(ADC0_AIN1_PIN_PE2, SSI0_Real_Nokia5110_NoScope); + ADC0_Init(); // initialize ADC0, channel 1, sequencer 3 + Nokia5110_Init(); // initialize Nokia5110 LCD + EnableInterrupts(); + while(1){ + ADCdata = ADC0_In(); + Nokia5110_SetCursor(0, 0); + Distance = Convert(ADCdata); + UART_ConvertDistance(Distance); // from Lab 11 + Nokia5110_OutString(String); + } +} + diff --git a/MeasurementOfDistance/Nokia5110.c b/MeasurementOfDistance/Nokia5110.c new file mode 100644 index 0000000..09b7778 --- /dev/null +++ b/MeasurementOfDistance/Nokia5110.c @@ -0,0 +1,418 @@ +// Nokia5110.c +// Runs on LM4F120/TM4C123 +// Use SSI0 to send an 8-bit code to the Nokia5110 48x84 +// pixel LCD to display text, images, or other information. +// This file has been modified to work with TExaS, which +// sets the PLL to 80 MHz, where earlier versions ran at +// 50 MHz or less. +// Daniel Valvano +// December 10, 2013 + +// Font table, initialization, and other functions based +// off of Nokia_5110_Example from Spark Fun: +// 7-17-2011 +// Spark Fun Electronics 2011 +// Nathan Seidle +// http://dlnmh9ip6v2uc.cloudfront.net/datasheets/LCD/Monochrome/Nokia_5110_Example.pde + +/* This example accompanies the book + "Embedded Systems: Real Time Interfacing to Arm Cortex M Microcontrollers", + ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2013 + + Copyright 2013 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ + +// Blue Nokia 5110 +// --------------- +// Signal (Nokia 5110) LaunchPad pin +// Reset (RST, pin 1) connected to PA7 +// SSI0Fss (CE, pin 2) connected to PA3 +// Data/Command (DC, pin 3) connected to PA6 +// SSI0Tx (Din, pin 4) connected to PA5 +// SSI0Clk (Clk, pin 5) connected to PA2 +// 3.3V (Vcc, pin 6) power +// back light (BL, pin 7) not connected, consists of 4 white LEDs which draw ~80mA total +// Ground (Gnd, pin 8) ground + +// Red SparkFun Nokia 5110 (LCD-10168) +// ----------------------------------- +// Signal (Nokia 5110) LaunchPad pin +// 3.3V (VCC, pin 1) power +// Ground (GND, pin 2) ground +// SSI0Fss (SCE, pin 3) connected to PA3 +// Reset (RST, pin 4) connected to PA7 +// Data/Command (D/C, pin 5) connected to PA6 +// SSI0Tx (DN, pin 6) connected to PA5 +// SSI0Clk (SCLK, pin 7) connected to PA2 +// back light (LED, pin 8) not connected, consists of 4 white LEDs which draw ~80mA total + +#include "Nokia5110.h" +// Maximum dimensions of the LCD, although the pixels are +// numbered from zero to (MAX-1). Address may automatically +// be incremented after each transmission. +#define MAX_X 84 +#define MAX_Y 48 + +#define DC (*((volatile unsigned long *)0x40004100)) +#define DC_COMMAND 0 +#define DC_DATA 0x40 +#define RESET (*((volatile unsigned long *)0x40004200)) +#define RESET_LOW 0 +#define RESET_HIGH 0x80 +#define GPIO_PORTA_DIR_R (*((volatile unsigned long *)0x40004400)) +#define GPIO_PORTA_AFSEL_R (*((volatile unsigned long *)0x40004420)) +#define GPIO_PORTA_DEN_R (*((volatile unsigned long *)0x4000451C)) +#define GPIO_PORTA_AMSEL_R (*((volatile unsigned long *)0x40004528)) +#define GPIO_PORTA_PCTL_R (*((volatile unsigned long *)0x4000452C)) +#define SSI0_CR0_R (*((volatile unsigned long *)0x40008000)) +#define SSI0_CR1_R (*((volatile unsigned long *)0x40008004)) +#define SSI0_DR_R (*((volatile unsigned long *)0x40008008)) +#define SSI0_SR_R (*((volatile unsigned long *)0x4000800C)) +#define SSI0_CPSR_R (*((volatile unsigned long *)0x40008010)) +#define SSI0_CC_R (*((volatile unsigned long *)0x40008FC8)) +#define SSI_CR0_SCR_M 0x0000FF00 // SSI Serial Clock Rate +#define SSI_CR0_SPH 0x00000080 // SSI Serial Clock Phase +#define SSI_CR0_SPO 0x00000040 // SSI Serial Clock Polarity +#define SSI_CR0_FRF_M 0x00000030 // SSI Frame Format Select +#define SSI_CR0_FRF_MOTO 0x00000000 // Freescale SPI Frame Format +#define SSI_CR0_DSS_M 0x0000000F // SSI Data Size Select +#define SSI_CR0_DSS_8 0x00000007 // 8-bit data +#define SSI_CR1_MS 0x00000004 // SSI Master/Slave Select +#define SSI_CR1_SSE 0x00000002 // SSI Synchronous Serial Port + // Enable +#define SSI_SR_BSY 0x00000010 // SSI Busy Bit +#define SSI_SR_TNF 0x00000002 // SSI Transmit FIFO Not Full +#define SSI_CPSR_CPSDVSR_M 0x000000FF // SSI Clock Prescale Divisor +#define SSI_CC_CS_M 0x0000000F // SSI Baud Clock Source +#define SSI_CC_CS_SYSPLL 0x00000000 // Either the system clock (if the + // PLL bypass is in effect) or the + // PLL output (default) +#define SYSCTL_RCGC1_R (*((volatile unsigned long *)0x400FE104)) +#define SYSCTL_RCGC2_R (*((volatile unsigned long *)0x400FE108)) +#define SYSCTL_RCGC1_SSI0 0x00000010 // SSI0 Clock Gating Control +#define SYSCTL_RCGC2_GPIOA 0x00000001 // port A Clock Gating Control + + +// This table contains the hex values that represent pixels +// for a font that is 5 pixels wide and 8 pixels high +static const char ASCII[][5] = { + {0x00, 0x00, 0x00, 0x00, 0x00} // 20 + ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 ! + ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 " + ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 # + ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $ + ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 % + ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 & + ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 ' + ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 ( + ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 ) + ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a * + ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b + + ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c , + ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d - + ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e . + ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f / + ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0 + ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1 + ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2 + ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3 + ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4 + ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5 + ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6 + ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7 + ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8 + ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9 + ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a : + ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ; + ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c < + ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d = + ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e > + ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ? + ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @ + ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A + ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B + ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C + ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D + ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E + ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F + ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G + ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H + ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I + ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J + ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K + ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L + ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M + ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N + ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O + ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P + ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q + ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R + ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S + ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T + ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U + ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V + ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W + ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X + ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y + ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z + ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [ + ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c '\' + ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ] + ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^ + ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _ + ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 ` + ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a + ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b + ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c + ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d + ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e + ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f + ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g + ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h + ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i + ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j + ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k + ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l + ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m + ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n + ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o + ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p + ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q + ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r + ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s + ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t + ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u + ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v + ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w + ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x + ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y + ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z + ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b { + ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c | + ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d } + ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ~ +// ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f DEL + ,{0x1f, 0x24, 0x7c, 0x24, 0x1f} // 7f UT sign +}; + +enum typeOfWrite{ + COMMAND, // the transmission is an LCD command + DATA // the transmission is data +}; +// The Data/Command pin must be valid when the eighth bit is +// sent. The SSI module has hardware input and output FIFOs +// that are 8 locations deep. Based on the observation that +// the LCD interface tends to send a few commands and then a +// lot of data, the FIFOs are not used when writing +// commands, and they are used when writing data. This +// ensures that the Data/Command pin status matches the byte +// that is actually being transmitted. +// The write command operation waits until all data has been +// sent, configures the Data/Command pin for commands, sends +// the command, and then waits for the transmission to +// finish. +// The write data operation waits until there is room in the +// transmit FIFO, configures the Data/Command pin for data, +// and then adds the data to the transmit FIFO. + +// This is a helper function that sends an 8-bit message to the LCD. +// inputs: type COMMAND or DATA +// message 8-bit code to transmit +// outputs: none +// assumes: SSI0 and port A have already been initialized and enabled +void static lcdwrite(enum typeOfWrite type, char message){ + if(type == COMMAND){ + // wait until SSI0 not busy/transmit FIFO empty + while((SSI0_SR_R&SSI_SR_BSY)==SSI_SR_BSY){}; + DC = DC_COMMAND; + SSI0_DR_R = message; // command out + // wait until SSI0 not busy/transmit FIFO empty + while((SSI0_SR_R&SSI_SR_BSY)==SSI_SR_BSY){}; + } else{ + while((SSI0_SR_R&SSI_SR_TNF)==0){}; // wait until transmit FIFO not full + DC = DC_DATA; + SSI0_DR_R = message; // data out + } +} + +//********Nokia5110_Init***************** +// Initialize Nokia 5110 48x84 LCD by sending the proper +// commands to the PCD8544 driver. One new feature of the +// LM4F120 is that its SSIs can get their baud clock from +// either the system clock or from the 16 MHz precision +// internal oscillator. +// inputs: none +// outputs: none +// assumes: system clock rate of 80 MHz +void Nokia5110_Init(void){ + volatile unsigned long delay; + SYSCTL_RCGC1_R |= SYSCTL_RCGC1_SSI0; // activate SSI0 + SYSCTL_RCGC2_R |= SYSCTL_RCGC2_GPIOA; // activate port A + delay = SYSCTL_RCGC2_R; // allow time to finish activating + GPIO_PORTA_DIR_R |= 0xC0; // make PA6,7 out + GPIO_PORTA_AFSEL_R |= 0x2C; // enable alt funct on PA2,3,5 + GPIO_PORTA_AFSEL_R &= ~0xC0; // disable alt funct on PA6,7 + GPIO_PORTA_DEN_R |= 0xEC; // enable digital I/O on PA2,3,5,6,7 + // configure PA2,3,5 as SSI + GPIO_PORTA_PCTL_R = (GPIO_PORTA_PCTL_R&0xFF0F00FF)+0x00202200; + // configure PA6,7 as GPIO + GPIO_PORTA_PCTL_R = (GPIO_PORTA_PCTL_R&0x00FFFFFF)+0x00000000; + GPIO_PORTA_AMSEL_R &= ~0xEC; // disable analog functionality on PA2,3,5,6,7 + SSI0_CR1_R &= ~SSI_CR1_SSE; // disable SSI + SSI0_CR1_R &= ~SSI_CR1_MS; // master mode + // configure for system clock/PLL baud clock source + SSI0_CC_R = (SSI0_CC_R&~SSI_CC_CS_M)+SSI_CC_CS_SYSPLL; + // clock divider for 3.33 MHz SSIClk (80 MHz PLL/24) + // SysClk/(CPSDVSR*(1+SCR)) + // 80/(24*(1+0)) = 3.33 MHz (slower than 4 MHz) + SSI0_CPSR_R = (SSI0_CPSR_R&~SSI_CPSR_CPSDVSR_M)+24; // must be even number + SSI0_CR0_R &= ~(SSI_CR0_SCR_M | // SCR = 0 (3.33 Mbps data rate) + SSI_CR0_SPH | // SPH = 0 + SSI_CR0_SPO); // SPO = 0 + // FRF = Freescale format + SSI0_CR0_R = (SSI0_CR0_R&~SSI_CR0_FRF_M)+SSI_CR0_FRF_MOTO; + // DSS = 8-bit data + SSI0_CR0_R = (SSI0_CR0_R&~SSI_CR0_DSS_M)+SSI_CR0_DSS_8; + SSI0_CR1_R |= SSI_CR1_SSE; // enable SSI + + RESET = RESET_LOW; // reset the LCD to a known state + for(delay=0; delay<10; delay=delay+1);// delay minimum 100 ns + RESET = RESET_HIGH; // negative logic + + lcdwrite(COMMAND, 0x21); // chip active; horizontal addressing mode (V = 0); use extended instruction set (H = 1) + // set LCD Vop (contrast), which may require some tweaking: + lcdwrite(COMMAND, CONTRAST); // try 0xB1 (for 3.3V red SparkFun), 0xB8 (for 3.3V blue SparkFun), 0xBF if your display is too dark, or 0x80 to 0xFF if experimenting + lcdwrite(COMMAND, 0x04); // set temp coefficient + lcdwrite(COMMAND, 0x14); // LCD bias mode 1:48: try 0x13 or 0x14 + + lcdwrite(COMMAND, 0x20); // we must send 0x20 before modifying the display control mode + lcdwrite(COMMAND, 0x0C); // set display control to normal mode: 0x0D for inverse +} + +//********Nokia5110_OutChar***************** +// Print a character to the Nokia 5110 48x84 LCD. The +// character will be printed at the current cursor position, +// the cursor will automatically be updated, and it will +// wrap to the next row or back to the top if necessary. +// One blank column of pixels will be printed on either side +// of the character for readability. Since characters are 8 +// pixels tall and 5 pixels wide, 12 characters fit per row, +// and there are six rows. +// inputs: data character to print +// outputs: none +// assumes: LCD is in default horizontal addressing mode (V = 0) +void Nokia5110_OutChar(unsigned char data){ + int i; + lcdwrite(DATA, 0x00); // blank vertical line padding + for(i=0; i<5; i=i+1){ + lcdwrite(DATA, ASCII[data - 0x20][i]); + } + lcdwrite(DATA, 0x00); // blank vertical line padding +} + +//********Nokia5110_OutString***************** +// Print a string of characters to the Nokia 5110 48x84 LCD. +// The string will automatically wrap, so padding spaces may +// be needed to make the output look optimal. +// inputs: ptr pointer to NULL-terminated ASCII string +// outputs: none +// assumes: LCD is in default horizontal addressing mode (V = 0) +void Nokia5110_OutString(unsigned char *ptr){ + while(*ptr){ + Nokia5110_OutChar((unsigned char)*ptr); + ptr = ptr + 1; + } +} + +//********Nokia5110_OutUDec***************** +// Output a 16-bit number in unsigned decimal format with a +// fixed size of five right-justified digits of output. +// Inputs: n 16-bit unsigned number +// Outputs: none +// assumes: LCD is in default horizontal addressing mode (V = 0) +void Nokia5110_OutUDec(unsigned short n){ + if(n < 10){ + Nokia5110_OutString(" "); + Nokia5110_OutChar(n+'0'); /* n is between 0 and 9 */ + } else if(n<100){ + Nokia5110_OutString(" "); + Nokia5110_OutChar(n/10+'0'); /* tens digit */ + Nokia5110_OutChar(n%10+'0'); /* ones digit */ + } else if(n<1000){ + Nokia5110_OutString(" "); + Nokia5110_OutChar(n/100+'0'); /* hundreds digit */ + n = n%100; + Nokia5110_OutChar(n/10+'0'); /* tens digit */ + Nokia5110_OutChar(n%10+'0'); /* ones digit */ + } + else if(n<10000){ + Nokia5110_OutChar(' '); + Nokia5110_OutChar(n/1000+'0'); /* thousands digit */ + n = n%1000; + Nokia5110_OutChar(n/100+'0'); /* hundreds digit */ + n = n%100; + Nokia5110_OutChar(n/10+'0'); /* tens digit */ + Nokia5110_OutChar(n%10+'0'); /* ones digit */ + } + else { + Nokia5110_OutChar(n/10000+'0'); /* ten-thousands digit */ + n = n%10000; + Nokia5110_OutChar(n/1000+'0'); /* thousands digit */ + n = n%1000; + Nokia5110_OutChar(n/100+'0'); /* hundreds digit */ + n = n%100; + Nokia5110_OutChar(n/10+'0'); /* tens digit */ + Nokia5110_OutChar(n%10+'0'); /* ones digit */ + } +} + +//********Nokia5110_SetCursor***************** +// Move the cursor to the desired X- and Y-position. The +// next character will be printed here. X=0 is the leftmost +// column. Y=0 is the top row. +// inputs: newX new X-position of the cursor (0<=newX<=11) +// newY new Y-position of the cursor (0<=newY<=5) +// outputs: none +void Nokia5110_SetCursor(unsigned char newX, unsigned char newY){ + if((newX > 11) || (newY > 5)){ // bad input + return; // do nothing + } + // multiply newX by 7 because each character is 7 columns wide + lcdwrite(COMMAND, 0x80|(newX*7)); // setting bit 7 updates X-position + lcdwrite(COMMAND, 0x40|newY); // setting bit 6 updates Y-position +} + +//********Nokia5110_Clear***************** +// Clear the LCD by writing zeros to the entire screen and +// reset the cursor to (0,0) (top left corner of screen). +// inputs: none +// outputs: none +void Nokia5110_Clear(void){ + int i; + for(i=0; i<(MAX_X*MAX_Y/8); i=i+1){ + lcdwrite(DATA, 0x00); + } + Nokia5110_SetCursor(0, 0); +} + +//********Nokia5110_DrawFullImage***************** +// Fill the whole screen by drawing a 48x84 bitmap image. +// inputs: ptr pointer to 504 byte bitmap +// outputs: none +// assumes: LCD is in default horizontal addressing mode (V = 0) +void Nokia5110_DrawFullImage(const char *ptr){ + int i; + Nokia5110_SetCursor(0, 0); + for(i=0; i<(MAX_X*MAX_Y/8); i=i+1){ + lcdwrite(DATA, ptr[i]); + } +} diff --git a/MeasurementOfDistance/Nokia5110.h b/MeasurementOfDistance/Nokia5110.h new file mode 100644 index 0000000..a9df8b1 --- /dev/null +++ b/MeasurementOfDistance/Nokia5110.h @@ -0,0 +1,126 @@ +// Nokia5110.h +// Runs on LM4F120/TM4C123 +// Use SSI0 to send an 8-bit code to the Nokia5110 48x84 +// pixel LCD to display text, images, or other information. +// Daniel Valvano +// September 16, 2013 + +// Font table, initialization, and other functions based +// off of Nokia_5110_Example from Spark Fun: +// 7-17-2011 +// Spark Fun Electronics 2011 +// Nathan Seidle +// http://dlnmh9ip6v2uc.cloudfront.net/datasheets/LCD/Monochrome/Nokia_5110_Example.pde + +/* This example accompanies the book + "Embedded Systems: Real Time Interfacing to Arm Cortex M Microcontrollers", + ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2013 + + Copyright 2013 by Jonathan W. Valvano, valvano@mail.utexas.edu + You may use, edit, run or distribute this file + as long as the above copyright notice remains + THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + VALVANO SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + For more information about my classes, my research, and my books, see + http://users.ece.utexas.edu/~valvano/ + */ + +// Blue Nokia 5110 +// --------------- +// Signal (Nokia 5110) LaunchPad pin +// Reset (RST, pin 1) connected to PA7 +// SSI0Fss (CE, pin 2) connected to PA3 +// Data/Command (DC, pin 3) connected to PA6 +// SSI0Tx (Din, pin 4) connected to PA5 +// SSI0Clk (Clk, pin 5) connected to PA2 +// 3.3V (Vcc, pin 6) power +// back light (BL, pin 7) not connected +// Ground (Gnd, pin 8) ground + +// Red SparkFun Nokia 5110 (LCD-10168) +// ----------------------------------- +// Signal (Nokia 5110) LaunchPad pin +// 3.3V (VCC, pin 1) power +// Ground (GND, pin 2) ground +// SSI0Fss (SCE, pin 3) connected to PA3 +// Reset (RST, pin 4) connected to PA7 +// Data/Command (D/C, pin 5) connected to PA6 +// SSI0Tx (DN, pin 6) connected to PA5 +// SSI0Clk (SCLK, pin 7) connected to PA2 +// back light (LED, pin 8) not connected + + +// Contrast value 0xBF looks good on red SparkFun +// and 0xB8 looks good on blue Nokia 5110. +// Adjust this from 0xA0 (lighter) to 0xCF (darker) for your display. +#define CONTRAST 0xBF + +//********Nokia5110_Init***************** +// Initialize Nokia 5110 48x84 LCD by sending the proper +// commands to the PCD8544 driver. One new feature of the +// LM4F120 is that its SSIs can get their baud clock from +// either the system clock or from the 16 MHz precision +// internal oscillator. If the system clock is faster than +// 50 MHz, the SSI baud clock will be faster than the 4 MHz +// maximum of the Nokia 5110. +// inputs: none +// outputs: none +// assumes: system clock rate of 50 MHz or less +void Nokia5110_Init(void); + +//********Nokia5110_OutChar***************** +// Print a character to the Nokia 5110 48x84 LCD. The +// character will be printed at the current cursor position, +// the cursor will automatically be updated, and it will +// wrap to the next row or back to the top if necessary. +// One blank column of pixels will be printed on either side +// of the character for readability. Since characters are 8 +// pixels tall and 5 pixels wide, 12 characters fit per row, +// and there are six rows. +// inputs: data character to print +// outputs: none +// assumes: LCD is in default horizontal addressing mode (V = 0) +void Nokia5110_OutChar(unsigned char data); + +//********Nokia5110_OutString***************** +// Print a string of characters to the Nokia 5110 48x84 LCD. +// The string will automatically wrap, so padding spaces may +// be needed to make the output look optimal. +// inputs: ptr pointer to NULL-terminated ASCII string +// outputs: none +// assumes: LCD is in default horizontal addressing mode (V = 0) +void Nokia5110_OutString(unsigned char *ptr); + +//********Nokia5110_OutUDec***************** +// Output a 16-bit number in unsigned decimal format with a +// fixed size of five right-justified digits of output. +// Inputs: n 16-bit unsigned number +// Outputs: none +// assumes: LCD is in default horizontal addressing mode (V = 0) +void Nokia5110_OutUDec(unsigned short n); + +//********Nokia5110_SetCursor***************** +// Move the cursor to the desired X- and Y-position. The +// next character will be printed here. X=0 is the leftmost +// column. Y=0 is the top row. +// inputs: newX new X-position of the cursor (0<=newX<=11) +// newY new Y-position of the cursor (0<=newY<=5) +// outputs: none +void Nokia5110_SetCursor(unsigned char newX, unsigned char newY); + +//********Nokia5110_Clear***************** +// Clear the LCD by writing zeros to the entire screen and +// reset the cursor to (0,0) (top left corner of screen). +// inputs: none +// outputs: none +void Nokia5110_Clear(void); + +//********Nokia5110_DrawFullImage***************** +// Fill the whole screen by drawing a 48x84 bitmap image. +// inputs: ptr pointer to 504 byte bitmap +// outputs: none +// assumes: LCD is in default horizontal addressing mode (V = 0) +void Nokia5110_DrawFullImage(const char *ptr); diff --git a/MeasurementOfDistance/Schematic Design_ Lab14_PCBartist.pdf b/MeasurementOfDistance/Schematic Design_ Lab14_PCBartist.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e2bda7c83cb508ee6646e7cfab3651f459c41204 GIT binary patch literal 37816 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 literal 0 HcmV?d00001 diff --git a/MeasurementOfDistance/TExaS.h b/MeasurementOfDistance/TExaS.h new file mode 100644 index 0000000..c566e60 --- /dev/null +++ b/MeasurementOfDistance/TExaS.h @@ -0,0 +1,46 @@ +// TExaS.h +// Runs on LM4F120/TM4C123 +// Periodic timer Timer5A which will interact with debugger and grade the lab +// It initializes on reset and runs whenever interrupts are enabled +// Jonathan Valvano. Daniel Valvano +// April 8, 2014 + + +// IMPORTANT: These enumerated types are specific to Lab 14. +enum InputPorts{ + ADC0_AIN1_PIN_PE2 = 2, // used again in Lab 15 + ADC0_AIN0_PIN_PE3 = 3, + ADC0_AIN8_PIN_PE5 = 5 +}; + + +// You have four options for display drivers/hardware: +// 1) Emulate the Nokia5110 LCD using UART0 and PA1-0 to send data to a PC +// running TExaSdisplay in Nokia mode. (Note: this mode is not finished yet) +// 2) Interface a real Nokia5110 LCD and use SSI0 and PA7-2 to send data and +// commands to it. Allow TExaS to use UART0 and a PC running TExaSdisplay +// to implement a low-cost oscilloscope. +// 3) Interface a real Nokia5110 LCD and use SSI0 and PA7-2 to send data and +// commands to it. Do not enable the oscilloscope. +// 4) There is no LCD. Do not enable the oscilloscope. You may use this mode to +// have no display or to use the UART ASCII output like Labs 5 and 11 +enum DisplayType{ + UART0_Emulate_Nokia5110_NoScope, // not finished yet + SSI0_Real_Nokia5110_Scope, + SSI0_Real_Nokia5110_NoScope, + NoLCD_NoScope +}; + +// ************TExaS_Init***************** +// Initialize grader, triggered by timer 5A +// This needs to be called once +// Inputs: iport input(s) connected to this port +// display system used to output the results +// Outputs: none +void TExaS_Init(enum InputPorts iport, enum DisplayType display); + +// ************TExaS_Stop***************** +// Stop the transfer +// Inputs: none +// Outputs: none +void TExaS_Stop(void); diff --git a/MeasurementOfDistance/startup.s b/MeasurementOfDistance/startup.s new file mode 100644 index 0000000..f851ee6 --- /dev/null +++ b/MeasurementOfDistance/startup.s @@ -0,0 +1,674 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2012 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 9453 of the EK-LM4F120XL Firmware Package. +; +;****************************************************************************** +; Edited to conform with ISR names as described in +; "Embedded Systems: Introduction to ARM Cortex M Microcontrollers", +; ISBN: 978-1469998749, Jonathan Valvano, copyright (c) 2012 +; "Embedded Systems: Real Time Interfacing to ARM Cortex M Microcontrollers", +; ISBN: 978-1463590154, Jonathan Valvano, copyright (c) 2012 +; "Embedded Systems: Real-Time Operating Systems for ARM Cortex M Microcontrollers", +; ISBN: 978-1466468863, Jonathan Valvano, copyright (c) 2013 +; +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + DCD GPIOPortA_Handler ; GPIO Port A + DCD GPIOPortB_Handler ; GPIO Port B + DCD GPIOPortC_Handler ; GPIO Port C + DCD GPIOPortD_Handler ; GPIO Port D + DCD GPIOPortE_Handler ; GPIO Port E + DCD UART0_Handler ; UART0 Rx and Tx + DCD UART1_Handler ; UART1 Rx and Tx + DCD SSI0_Handler ; SSI0 Rx and Tx + DCD I2C0_Handler ; I2C0 Master and Slave + DCD PWM0Fault_Handler ; PWM 0 Fault + DCD PWM0Generator0_Handler ; PWM 0 Generator 0 + DCD PWM0Generator1_Handler ; PWM 0 Generator 1 + DCD PWM0Generator2_Handler ; PWM 0 Generator 2 + DCD Quadrature0_Handler ; Quadrature Encoder 0 + DCD ADC0Seq0_Handler ; ADC0 Sequence 0 + DCD ADC0Seq1_Handler ; ADC0 Sequence 1 + DCD ADC0Seq2_Handler ; ADC0 Sequence 2 + DCD ADC0Seq3_Handler ; ADC0 Sequence 3 + DCD WDT_Handler ; Watchdog + DCD Timer0A_Handler ; Timer 0 subtimer A + DCD Timer0B_Handler ; Timer 0 subtimer B + DCD Timer1A_Handler ; Timer 1 subtimer A + DCD Timer1B_Handler ; Timer 1 subtimer B + DCD Timer2A_Handler ; Timer 2 subtimer A + DCD Timer2B_Handler ; Timer 2 subtimer B + DCD Comp0_Handler ; Analog Comp 0 + DCD Comp1_Handler ; Analog Comp 1 + DCD Comp2_Handler ; Analog Comp 2 + DCD SysCtl_Handler ; System Control + DCD FlashCtl_Handler ; Flash Control + DCD GPIOPortF_Handler ; GPIO Port F + DCD GPIOPortG_Handler ; GPIO Port G + DCD GPIOPortH_Handler ; GPIO Port H + DCD UART2_Handler ; UART2 Rx and Tx + DCD SSI1_Handler ; SSI1 Rx and Tx + DCD Timer3A_Handler ; Timer 3 subtimer A + DCD Timer3B_Handler ; Timer 3 subtimer B + DCD I2C1_Handler ; I2C1 Master and Slave + DCD Quadrature1_Handler ; Quadrature Encoder 1 + DCD CAN0_Handler ; CAN0 + DCD CAN1_Handler ; CAN1 + DCD CAN2_Handler ; CAN2 + DCD Ethernet_Handler ; Ethernet + DCD Hibernate_Handler ; Hibernate + DCD USB0_Handler ; USB0 + DCD PWM0Generator3_Handler ; PWM 0 Generator 3 + DCD uDMA_Handler ; uDMA Software Transfer + DCD uDMA_Error ; uDMA Error + DCD ADC1Seq0_Handler ; ADC1 Sequence 0 + DCD ADC1Seq1_Handler ; ADC1 Sequence 1 + DCD ADC1Seq2_Handler ; ADC1 Sequence 2 + DCD ADC1Seq3_Handler ; ADC1 Sequence 3 + DCD I2S0_Handler ; I2S0 + DCD ExtBus_Handler ; External Bus Interface 0 + DCD GPIOPortJ_Handler ; GPIO Port J + DCD GPIOPortK_Handler ; GPIO Port K + DCD GPIOPortL_Handler ; GPIO Port L + DCD SSI2_Handler ; SSI2 Rx and Tx + DCD SSI3_Handler ; SSI3 Rx and Tx + DCD UART3_Handler ; UART3 Rx and Tx + DCD UART4_Handler ; UART4 Rx and Tx + DCD UART5_Handler ; UART5 Rx and Tx + DCD UART6_Handler ; UART6 Rx and Tx + DCD UART7_Handler ; UART7 Rx and Tx + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD I2C2_Handler ; I2C2 Master and Slave + DCD I2C3_Handler ; I2C3 Master and Slave + DCD Timer4A_Handler ; Timer 4 subtimer A + DCD Timer4B_Handler ; Timer 4 subtimer B + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD Timer5A_Handler ; Timer 5 subtimer A + DCD Timer5B_Handler ; Timer 5 subtimer B + DCD WideTimer0A_Handler ; Wide Timer 0 subtimer A + DCD WideTimer0B_Handler ; Wide Timer 0 subtimer B + DCD WideTimer1A_Handler ; Wide Timer 1 subtimer A + DCD WideTimer1B_Handler ; Wide Timer 1 subtimer B + DCD WideTimer2A_Handler ; Wide Timer 2 subtimer A + DCD WideTimer2B_Handler ; Wide Timer 2 subtimer B + DCD WideTimer3A_Handler ; Wide Timer 3 subtimer A + DCD WideTimer3B_Handler ; Wide Timer 3 subtimer B + DCD WideTimer4A_Handler ; Wide Timer 4 subtimer A + DCD WideTimer4B_Handler ; Wide Timer 4 subtimer B + DCD WideTimer5A_Handler ; Wide Timer 5 subtimer A + DCD WideTimer5B_Handler ; Wide Timer 5 subtimer B + DCD FPU_Handler ; FPU + DCD PECI0_Handler ; PECI 0 + DCD LPC0_Handler ; LPC 0 + DCD I2C4_Handler ; I2C4 Master and Slave + DCD I2C5_Handler ; I2C5 Master and Slave + DCD GPIOPortM_Handler ; GPIO Port M + DCD GPIOPortN_Handler ; GPIO Port N + DCD Quadrature2_Handler ; Quadrature Encoder 2 + DCD Fan0_Handler ; Fan 0 + DCD 0 ; Reserved + DCD GPIOPortP_Handler ; GPIO Port P (Summary or P0) + DCD GPIOPortP1_Handler ; GPIO Port P1 + DCD GPIOPortP2_Handler ; GPIO Port P2 + DCD GPIOPortP3_Handler ; GPIO Port P3 + DCD GPIOPortP4_Handler ; GPIO Port P4 + DCD GPIOPortP5_Handler ; GPIO Port P5 + DCD GPIOPortP6_Handler ; GPIO Port P6 + DCD GPIOPortP7_Handler ; GPIO Port P7 + DCD GPIOPortQ_Handler ; GPIO Port Q (Summary or Q0) + DCD GPIOPortQ1_Handler ; GPIO Port Q1 + DCD GPIOPortQ2_Handler ; GPIO Port Q2 + DCD GPIOPortQ3_Handler ; GPIO Port Q3 + DCD GPIOPortQ4_Handler ; GPIO Port Q4 + DCD GPIOPortQ5_Handler ; GPIO Port Q5 + DCD GPIOPortQ6_Handler ; GPIO Port Q6 + DCD GPIOPortQ7_Handler ; GPIO Port Q7 + DCD GPIOPortR_Handler ; GPIO Port R + DCD GPIOPortS_Handler ; GPIO Port S + DCD PWM1Generator0_Handler ; PWM 1 Generator 0 + DCD PWM1Generator1_Handler ; PWM 1 Generator 1 + DCD PWM1Generator2_Handler ; PWM 1 Generator 2 + DCD PWM1Generator3_Handler ; PWM 1 Generator 3 + DCD PWM1Fault_Handler ; PWM 1 Fault + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; DO NOT enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; +; MOVW R0, #0xED88 +; MOVT R0, #0xE000 +; LDR R1, [R0] +; ORR R1, #0x00F00000 +; STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP + +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP +IntDefaultHandler\ + PROC + + EXPORT GPIOPortA_Handler [WEAK] + EXPORT GPIOPortB_Handler [WEAK] + EXPORT GPIOPortC_Handler [WEAK] + EXPORT GPIOPortD_Handler [WEAK] + EXPORT GPIOPortE_Handler [WEAK] + EXPORT UART0_Handler [WEAK] + EXPORT UART1_Handler [WEAK] + EXPORT SSI0_Handler [WEAK] + EXPORT I2C0_Handler [WEAK] + EXPORT PWM0Fault_Handler [WEAK] + EXPORT PWM0Generator0_Handler [WEAK] + EXPORT PWM0Generator1_Handler [WEAK] + EXPORT PWM0Generator2_Handler [WEAK] + EXPORT Quadrature0_Handler [WEAK] + EXPORT ADC0Seq0_Handler [WEAK] + EXPORT ADC0Seq1_Handler [WEAK] + EXPORT ADC0Seq2_Handler [WEAK] + EXPORT ADC0Seq3_Handler [WEAK] + EXPORT WDT_Handler [WEAK] + EXPORT Timer0A_Handler [WEAK] + EXPORT Timer0B_Handler [WEAK] + EXPORT Timer1A_Handler [WEAK] + EXPORT Timer1B_Handler [WEAK] + EXPORT Timer2A_Handler [WEAK] + EXPORT Timer2B_Handler [WEAK] + EXPORT Comp0_Handler [WEAK] + EXPORT Comp1_Handler [WEAK] + EXPORT Comp2_Handler [WEAK] + EXPORT SysCtl_Handler [WEAK] + EXPORT FlashCtl_Handler [WEAK] + EXPORT GPIOPortF_Handler [WEAK] + EXPORT GPIOPortG_Handler [WEAK] + EXPORT GPIOPortH_Handler [WEAK] + EXPORT UART2_Handler [WEAK] + EXPORT SSI1_Handler [WEAK] + EXPORT Timer3A_Handler [WEAK] + EXPORT Timer3B_Handler [WEAK] + EXPORT I2C1_Handler [WEAK] + EXPORT Quadrature1_Handler [WEAK] + EXPORT CAN0_Handler [WEAK] + EXPORT CAN1_Handler [WEAK] + EXPORT CAN2_Handler [WEAK] + EXPORT Ethernet_Handler [WEAK] + EXPORT Hibernate_Handler [WEAK] + EXPORT USB0_Handler [WEAK] + EXPORT PWM0Generator3_Handler [WEAK] + EXPORT uDMA_Handler [WEAK] + EXPORT uDMA_Error [WEAK] + EXPORT ADC1Seq0_Handler [WEAK] + EXPORT ADC1Seq1_Handler [WEAK] + EXPORT ADC1Seq2_Handler [WEAK] + EXPORT ADC1Seq3_Handler [WEAK] + EXPORT I2S0_Handler [WEAK] + EXPORT ExtBus_Handler [WEAK] + EXPORT GPIOPortJ_Handler [WEAK] + EXPORT GPIOPortK_Handler [WEAK] + EXPORT GPIOPortL_Handler [WEAK] + EXPORT SSI2_Handler [WEAK] + EXPORT SSI3_Handler [WEAK] + EXPORT UART3_Handler [WEAK] + EXPORT UART4_Handler [WEAK] + EXPORT UART5_Handler [WEAK] + EXPORT UART6_Handler [WEAK] + EXPORT UART7_Handler [WEAK] + EXPORT I2C2_Handler [WEAK] + EXPORT I2C3_Handler [WEAK] + EXPORT Timer4A_Handler [WEAK] + EXPORT Timer4B_Handler [WEAK] + EXPORT Timer5A_Handler [WEAK] + EXPORT Timer5B_Handler [WEAK] + EXPORT WideTimer0A_Handler [WEAK] + EXPORT WideTimer0B_Handler [WEAK] + EXPORT WideTimer1A_Handler [WEAK] + EXPORT WideTimer1B_Handler [WEAK] + EXPORT WideTimer2A_Handler [WEAK] + EXPORT WideTimer2B_Handler [WEAK] + EXPORT WideTimer3A_Handler [WEAK] + EXPORT WideTimer3B_Handler [WEAK] + EXPORT WideTimer4A_Handler [WEAK] + EXPORT WideTimer4B_Handler [WEAK] + EXPORT WideTimer5A_Handler [WEAK] + EXPORT WideTimer5B_Handler [WEAK] + EXPORT FPU_Handler [WEAK] + EXPORT PECI0_Handler [WEAK] + EXPORT LPC0_Handler [WEAK] + EXPORT I2C4_Handler [WEAK] + EXPORT I2C5_Handler [WEAK] + EXPORT GPIOPortM_Handler [WEAK] + EXPORT GPIOPortN_Handler [WEAK] + EXPORT Quadrature2_Handler [WEAK] + EXPORT Fan0_Handler [WEAK] + EXPORT GPIOPortP_Handler [WEAK] + EXPORT GPIOPortP1_Handler [WEAK] + EXPORT GPIOPortP2_Handler [WEAK] + EXPORT GPIOPortP3_Handler [WEAK] + EXPORT GPIOPortP4_Handler [WEAK] + EXPORT GPIOPortP5_Handler [WEAK] + EXPORT GPIOPortP6_Handler [WEAK] + EXPORT GPIOPortP7_Handler [WEAK] + EXPORT GPIOPortQ_Handler [WEAK] + EXPORT GPIOPortQ1_Handler [WEAK] + EXPORT GPIOPortQ2_Handler [WEAK] + EXPORT GPIOPortQ3_Handler [WEAK] + EXPORT GPIOPortQ4_Handler [WEAK] + EXPORT GPIOPortQ5_Handler [WEAK] + EXPORT GPIOPortQ6_Handler [WEAK] + EXPORT GPIOPortQ7_Handler [WEAK] + EXPORT GPIOPortR_Handler [WEAK] + EXPORT GPIOPortS_Handler [WEAK] + EXPORT PWM1Generator0_Handler [WEAK] + EXPORT PWM1Generator1_Handler [WEAK] + EXPORT PWM1Generator2_Handler [WEAK] + EXPORT PWM1Generator3_Handler [WEAK] + EXPORT PWM1Fault_Handler [WEAK] + +GPIOPortA_Handler +GPIOPortB_Handler +GPIOPortC_Handler +GPIOPortD_Handler +GPIOPortE_Handler +UART0_Handler +UART1_Handler +SSI0_Handler +I2C0_Handler +PWM0Fault_Handler +PWM0Generator0_Handler +PWM0Generator1_Handler +PWM0Generator2_Handler +Quadrature0_Handler +ADC0Seq0_Handler +ADC0Seq1_Handler +ADC0Seq2_Handler +ADC0Seq3_Handler +WDT_Handler +Timer0A_Handler +Timer0B_Handler +Timer1A_Handler +Timer1B_Handler +Timer2A_Handler +Timer2B_Handler +Comp0_Handler +Comp1_Handler +Comp2_Handler +SysCtl_Handler +FlashCtl_Handler +GPIOPortF_Handler +GPIOPortG_Handler +GPIOPortH_Handler +UART2_Handler +SSI1_Handler +Timer3A_Handler +Timer3B_Handler +I2C1_Handler +Quadrature1_Handler +CAN0_Handler +CAN1_Handler +CAN2_Handler +Ethernet_Handler +Hibernate_Handler +USB0_Handler +PWM0Generator3_Handler +uDMA_Handler +uDMA_Error +ADC1Seq0_Handler +ADC1Seq1_Handler +ADC1Seq2_Handler +ADC1Seq3_Handler +I2S0_Handler +ExtBus_Handler +GPIOPortJ_Handler +GPIOPortK_Handler +GPIOPortL_Handler +SSI2_Handler +SSI3_Handler +UART3_Handler +UART4_Handler +UART5_Handler +UART6_Handler +UART7_Handler +I2C2_Handler +I2C3_Handler +Timer4A_Handler +Timer4B_Handler +Timer5A_Handler +Timer5B_Handler +WideTimer0A_Handler +WideTimer0B_Handler +WideTimer1A_Handler +WideTimer1B_Handler +WideTimer2A_Handler +WideTimer2B_Handler +WideTimer3A_Handler +WideTimer3B_Handler +WideTimer4A_Handler +WideTimer4B_Handler +WideTimer5A_Handler +WideTimer5B_Handler +FPU_Handler +PECI0_Handler +LPC0_Handler +I2C4_Handler +I2C5_Handler +GPIOPortM_Handler +GPIOPortN_Handler +Quadrature2_Handler +Fan0_Handler +GPIOPortP_Handler +GPIOPortP1_Handler +GPIOPortP2_Handler +GPIOPortP3_Handler +GPIOPortP4_Handler +GPIOPortP5_Handler +GPIOPortP6_Handler +GPIOPortP7_Handler +GPIOPortQ_Handler +GPIOPortQ1_Handler +GPIOPortQ2_Handler +GPIOPortQ3_Handler +GPIOPortQ4_Handler +GPIOPortQ5_Handler +GPIOPortQ6_Handler +GPIOPortQ7_Handler +GPIOPortR_Handler +GPIOPortS_Handler +PWM1Generator0_Handler +PWM1Generator1_Handler +PWM1Generator2_Handler +PWM1Generator3_Handler +PWM1Fault_Handler + + B . + + ENDP + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; Useful functions. +; +;****************************************************************************** + EXPORT DisableInterrupts + EXPORT EnableInterrupts + EXPORT StartCritical + EXPORT EndCritical + EXPORT WaitForInterrupt + +;*********** DisableInterrupts *************** +; disable interrupts +; inputs: none +; outputs: none +DisableInterrupts + CPSID I + BX LR + +;*********** EnableInterrupts *************** +; disable interrupts +; inputs: none +; outputs: none +EnableInterrupts + CPSIE I + BX LR + +;*********** StartCritical ************************ +; make a copy of previous I bit, disable interrupts +; inputs: none +; outputs: previous I bit +StartCritical + MRS R0, PRIMASK ; save old status + CPSID I ; mask all (except faults) + BX LR + +;*********** EndCritical ************************ +; using the copy of previous I bit, restore I bit to previous value +; inputs: previous I bit +; outputs: none +EndCritical + MSR PRIMASK, R0 + BX LR + +;*********** WaitForInterrupt ************************ +; go to low power mode while waiting for the next interrupt +; inputs: none +; outputs: none +WaitForInterrupt + WFI + BX LR + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END