Wednesday, December 03, 2014

IRONMAN Arizona Trip Report Part II

[Note: I wrote this mostly as a reminder for myself, but I think it might be helpful to other triathletes as well. I recognize that it may seem overly detailed, but triathlons are complicated affairs that require some trial and error to get right.]

This is part II of my IRONMAN Arizona 2014 trip report. It concerns all the stuff that happened on race day. The details leading up to race day can be found in Part I.

I was up by 0400hrs on Sunday morning. Actually, I was up a bit before that but I did not feel tired at all, nor was I really that nervous. This is an endurance event, not a test of skill, so there is really nothing to be nervous about. I think my body was just readying itself for the task ahead.

The first order of business was to follow my usual morning routine. One of the golden rules of triathlon is to never do anything out of the ordinary before a race, so I still took a shower even though I was about to go swimming and then sweat for another 12 hours. I finished up by putting on the heart rate monitor, tri-suit, timing chip, and finally my street clothes.

I hung out in the hotel room for a bit reading the news and checking the weather. I was disappointed to discover that the winds on the race course were expected to be 25 knots after being nearly dead calm for the last few weeks. It was only after the race that I found that that this was a gross under-prediction. The actual winds were a sustained 40 knots, gusting to ludicrous speeds...

I was down at the hotel breakfast by about 0500hrs. I had a little coffee and a bowl of cereal, but that was about all I could get down. I would have loved to be able to send a thousand calorie breakfast down the pipe for some insurance, but it was just not possible. Fueling in an IRONMAN is called the "fourth discipline" for a reason - it is very difficult to get right. No one has the kind of built in reserves to last an entire race, and your digestive system is carefully evolved to come to a screaming halt during athletic endeavors. You have to take on calories as you go and stay ahead of the reaper, but you have to be careful about how you do it. I saw more than a few athletes "praying to the dusty ground" during this race. I was not too worried about the slim breakfast though because I had a well tested fueling plan for the race.

I was back at the hotel room at 0515hrs to pick up my Orange and Black special needs bags, as well as my Green "morning clothes" bag. I put all of my swim gear in my Green bag the night before, and planned on swapping it all out for my morning clothes once I got suited up for the swim. The wife and I jumped into the rental car and made it close enough to the starting line by 0530hrs. She took the obligatory "before" picture, gave me a kiss, and then headed back to the hotel to get the boy up.

I walked among the rapidly growing crowd of athletes as we made our way into the transition area for final race preparations. The first order of business was to drop off my Orange and Black special needs bags. Then I made my way back to the Red and Blue transition bags. I added some hydration to each, and put my athlete tracker into the Blue bike transition bag. Finally, I put my bike computer on my bike, and then got suited up for the swim.

I should probably expand on my swim "uniform". I wear a Tyr Hurricane Cat 3 wetsuit in size Large, a Tyr wrinkle free swim cap, then my goggles, and then the required IRONMAN swim cap. Sandwiching your goggles between two swim caps is a great way to keep them from being knocked off during the mass swim, and also affords you a bit more head insulation. I also wear some silicone ear plugs to prevent from getting dizzy during the swim. I am not normally prone to inner ear issues when I swim, but on rare occasions strange stuff happens.

After packing all of my morning clothes into my Green bag, I handed it over to one of the morning clothes bag volunteers and then headed over to the long lineup of athletes waiting to get into the water. The actual swim start is about 200 metres from the swim entrance, so you have a nice non competitive warm-up swim to the start line.

The pro-men entered the water first and started their race at 0645hrs. The pro-women enter second, and start their race five minutes later. While all of that was going on, the race volunteers do their best to get over 3000 age group athletes in the water as quickly as possible. Whether you are in the water or not, your race starts at 0700hrs so there is a lot of effort to keep that line moving. The line looked incredibly long, but I am pretty sure everyone was in the water on time.

I figure I was somewhere in the first third of age groupers waiting to get into the water. Tempe Town Lake was a lot lower this year so they had to continuously warn people to be careful when they got in the water. Despite that, somehow the top of my left foot scraped the bottom and I lost a nice chunk of skin - none of which I felt at the time, probably thanks to the adrenaline...

The water was not nearly as cold as I remember it being at the practice swim, but I did require a few minutes to acclimate before I felt comfortable putting my face in and swimming normally. The race officials told us the temperature was about 68F, which felt about right to me. I took my time making my way to the starting line, occasionally looking back and waving to the spectators on the bridges above. All things considered, it was the perfect warmup.

I took a spot about 20 metres back from the starting line on the far left side, closest to the buoys. This has the advantage of swimming the shortest distance, while still being far enough back that you do not get mowed over by faster swimmers. I treaded water while Mike "The Voice of IRONMAN" Reilly got the crowd excited. A few minutes before the starting gun, they played the Star Spangled Banner, which ended with a roaring crowd and more than a few athletes yelling "Play Ball!".

Once the gun went off it was down to business. I am not a fast swimmer, so my plan was to draft as much as possible and make it out of the water sometime between 1:20 and 1:30. The early parts of the swim reminded me of what it would probably be like to be a member of a zombie horde. You really cannot see or hear much, and everyone just stumbles along more or less in the same direction.

In general I just plodded along doing my best to keep clear water in front of me and sighting from one buoy to the next. I forgot to make a count of the buoys before the swim started, so I settled into a sustainable groove and kept following the yellow buoys until that gorgeous red turnaround buoy appeared in the distance. The way back is easier to swim because the field of swimmers is a lot more spread out and you can judge your remaining distance by sighting the two bridges just before the swim exit.

As for complications, I barely ran into any at all. Until you get past the turn buoy, the big struggle is to find clear water and avoid athletes who suddenly stop. If you feel like you need to stop during a mass swim, please turn backwards to face oncoming traffic. Most swimmers are more focused on buoy sighting, so there is little chance that they will see you in time.

Other than that, the other big thing to watch out for is swimmers who converge into you. Shortly after the start you are more or less in a pod of people going about the same speed, but not exactly the same direction. The challenge is to "de-couple" once you find yourself converging with another swimmer. Your strokes tend to become synchronized and you have to work at making sure there is enough spacing between you. If there is clear water, you can adjust pretty easily. Otherwise you just have to accept that you are going to bump into someone a few times while you get things sorted out. Most people are cooperative and do their best to make room, although a small minority seemed to want to hold their line at all costs.

All told I got hit in the face twice, and had a few additional bumps here and there. Otherwise everything was fine. I heard some stories of people taking a foot to the face, but none of them appeared to have suffered any real injury. Another athlete told me stories of people swimming over the top of him, but nothing like that happened to me. The best way to avoid anything like that is to be realistic about your swimming abilities and start a bit further back than you think you should.

As you cross under the two bridges near the end of the swim, you can really hear Mike Reilly and the crowds cheering the athletes on. The crowd noise and the image of the swim exit as you round that last corner were really motivating and it made that last leg of the swim a lot of fun. I have to admit that I was a little sad for that part of the race to be over - and trust me, I am no big fan of swimming.

Since the water was so low this year, the bottom step of the swim exit was above the water level. This required some effort to actually get out of the water. The idea was to put your back to the exit and hoist yourself up into a sitting position on the bottom step. Then you twist around, and use the rail to pull yourself to your feet. A volunteer is there to help, but I was surprisingly stable getting out of the water and did not need any help.

The first order of business was to raise my goggles to my forehead and strip my wetsuit down to my waist in one graceful motion - all while walk-running with a large pack of athletes who are doing more or less the same thing. Next you encounter the wetsuit strippers who have you lay down so they can get the rest of you out of your wetsuit in about 3.5 nanoseconds.

Once I had my wetsuit off, I made my way over to the changing tent while stripping off my swim caps, goggles, and ear plugs. I passed by the Blue bike transition bag area, yelled out my number and my bike transition bag magically appeared in my hand courtesy of a very helpful volunteer. Since I finished the swim in 1:25, the most average time imaginable, it was prime time in the changing tent.

I managed to find an open chair, and used it to hold my swim gear while I rummaged through my bag for my bike gear. Contrary to what you would imagine, you really do not need a towel in T1. You may be a bit wet, but it dries off incredibly fast, and even putting on socks is not that hard by the time you get to the changing tent. The only issue I encountered was all of the dried grass that sticks to your feet - I was still picking it out of my luggage after we got home. For that reason alone, I will probably bring a small towel next time to get the gunk off of my feet before I put my socks on.

Some of the athletes were doing a full change of clothes, I opted to remain in my tri-suit for the bike - which turned out to be a good idea. Once I was ready to ride, I stuffed my swim gear into my Blue bike bag, handed it off to a volunteer, and then went over to the Sunscreen volunteers to get all of my pasty white Irish skin covered. From there I headed over to my numbered bike location, shoved my cleat covers into my saddle bag, and walked my bike out of the transition area and to the bicycle mount line.

Once I crossed the bicycle mount line, I was officially out of T1 and on to the bike portion of the race. My target speed of 18.8 mph has me through the bike course in just under 6 hours and leaves me with plenty of "juice" to run the marathon. On a flat course with relatively calm winds, this translates to around 175 watts, well under 80% of my FTP (Functional Threshold Power) of 267 watts. If I went all out, I could probably do the course in under five hours, but I would have absolutely nothing left for the run.

Like my old Chief Engineer used to say, no plan withstands first contact with the enemy. The winds turned out to be a sustained 40 knot headwind on the climbing portion of the course. I later found out that they were the strongest in the 11 year history of the race. This makes it all the more amazing that someone broke the course record this year - two time Olympian, Brent McMahon finished in 7 hours 55 minutes!

Despite the wind I was still able to complete the first lap exactly on schedule. I took stock of my situation after that, and realized there was no way I was going to have anything left if I kept the same pace for the remaining two laps. I dialed it down quite a bit and did my best to make up time on the downwind side of the course. I lost 15 minutes on the second lap and 30 minutes on the third lap. I think I could have done better, but after my complete meltdown on the run at IRONMAN St. George, I was trying to be as cautious as possible.

Another issue on the bike was my fueling plan. Originally it called for a mix of Honey Stinger gels and mixed nuts - something I had tested throughout my training. Unfortunately my stomach completely shut down just after the beginning of the ride, and I had to abandon all forms of solid food and stick to gels (one every ten miles). This was not nearly enough calories to get me through the race, but it was better than nothing. I put a can of Red Bull in my special needs bag and downed it during my second lap and that helped immensely. About five minutes after drinking it the world got brighter and AC/DC poured forth from the skies! I have a lot of work to do on my fueling plan for next year, but I am fairly certain that more Red Bull will be part of it.

One thing I did get right was to not waste any weight carrying my own hydration. The volunteers have stations set up every ten miles with a variety of drinks and food, including water bottles with pop tops that fit perfectly in your bike cage.

As I got closer to the bike leg finish, I was quite ready to get off the bike. A tri-suit does not have the usual amount of padding, and riding in a hunched over "semi-aero" position takes its toll after a while. Aside from the positioning issues, I came into the bike transition feeling really good. About a mile out I started loosening my shoes, and by the dismount line I was able to pull my feet out and leave the shoes attached to the pedals. A volunteer took my bike while I trotted over to the run transition bag area. I yelled out my number, a volunteer handed me my bag, and I was on my way into the changing tent once again.

The changing tent was still chaotic, but not nearly as much as during the T1 transition. I found a seat and got to work switching out my bike gear for my run gear. Instead of doing the Marathon in my tri-suit, I opted to change into traditional running gear. It took me an extra few minutes, but it added a lot of comfort to a very long run. Also, in future races I may try doing the bike ride without any socks. I do not believe the socks helped me at all, and I ended up changing into a new pair for the run.

I noticed in the changing tent that my right eye was very cloudy. I thought my contact lens had gotten "gunked" up, but my right eye was still cloudy after removing the lens that night. I have no idea what it was, but the cloudiness was gone when I woke up the next morning.

Once I was ready to go I stuffed all of my bike gear into my run transition bag, handed it off to a volunteer, and hit the sunblock station. I should note that I was surprised at how little the sun seemed to affect me until I noticed a very red silver dollar sized area on my back the day after the race. The sunblock applicators missed a small spot and I had a very ominous demonstration of just how bad I would have been burned had I not been so diligent about being covered.

Looking back at IRONMAN St. George 70.3 in May, 2013, I remember feeling like death when I left T2. 13.1 miles seemed like a lot at the time, but I was incredibly grateful to not have a whole marathon ahead of me. Much of my training since then has focused on making sure that never happens again. I learned to budget my energy on the bike better, and I did a lot of bike to run training to get used to the feel of running after a bike ride. It seemed to pay off this time because I felt amazing once I started running. Truth be told, I felt like I had not even ridden a bike at all. Granted, this feeling did not last very long, but I felt very happy knowing that I had made some major progress on one of my biggest problems.

My first mile was a respectable 9:17, and the next six averaged just over ten. From there my average settled in at 12:32 per mile. This was actually a slower overall pace than IRONMAN St. George, but the distances were much longer and I felt a lot better. All things considered, I feel like it was a major improvement. For comparison, when running fresh, I can easily lay down 8 minute miles for a half marathon, and I just did my first ever sub-20 minute 5k.

Once again my digestive system completely shut down, and I was not able to take anything in but water. This happened shortly after the first mile, and did not let up for the next five miles. I felt certain that I was going to puke a few times during that period, especially after forcing myself to down a gel at mile three, but nothing happened and the feeling slowly passed.

I have no idea why all of these digestive issues happened to me, but I will be looking into it as part of my 2015 training plan. After the sixth mile, I started drinking watered down Coke with some ice in it at every aid station, and added cups of warm chicken broth once they started making them available after sundown. My body tolerated all of that quite well. Ultimately my performance is going to be limited if I do not solve this fueling problem...

I managed to run the first six miles, only walking briefly through the aid stations. After mile seven my quads really started to hurt and my walk through the aid stations took longer and longer. By mile 15 I met up with another racer who was going my speed, and we started a pattern of walking a quarter mile and running three quarters of a mile. It was painful, but doable. We also had some great conversations that did a lot for our mental focus.

By mile 24 you can really hear Mike Reilly and the crowds in the distance. We hit the last aid station at mile 25 and did a little extra walking so we could hit the finish strong. At the last 0.2 miles, the road bends to the right and goes up a slight incline. This is where the crowds start to line up, and they get thicker and thicker as you enter the finish area. As we approached the corner I felt like it was time to put what energy I had left into the final run to the finish. I thought my running partner was going to come with me, but as I picked up speed, he wished me well. I told him I would see him at the finish line and took off. It felt good to pick up speed like that, but I knew I could not sustain it for very long.

The finish was an absolute blur. All I remember seeing through my cloudy vision was a lot of flashes and the approximate location of the finish line. I vaguely remember hearing my name called and the title of IRONMAN conferred on me by Mike Reilly, as well as the cheering crowd noise in the background. I also remembered to not touch my Garmin watch until well after I crossed the finish line. They warn you about this in the race packet. Apparently a lot of athletes cross the finish line with their head down and their hand pressing buttons on their watch. It makes for a terrible picture as you cross the finish line.

As soon as I crossed the finish line I stopped running and nearly fell over. One of the volunteer catchers grabbed me and held me upright while another volunteer removed my timing chip and gave me a foil blanket. My catcher walked me over to get my finisher medal, hat, and t-shirt, and then took me to the picture station to get my finisher picture taken. Finally, she brought me over to the food tent, put me in a chair, and got me some of the best tasting cold pizza in the whole freaking world. Right next to the food tent was a free massage area, which I took full advantage of. I am not sure if it was the 13+ hour effort, or the magic hands on my masseuse, but that massage felt amazing.

Other than finding it hard to walk, the only real issue after finishing was that I could not regulate my own body temperature. I am not sure what I would have done without that foil blanket.

The whole area from the finish chute on back to the rest area is for athletes only, so the wife and the boy had to greet me from the fence. I was really happy to see them, but could barely get out of the chair to give them a hug. It turns out they had already gotten my bike out of the transition area and turned it in to the TriBike Transport people. They also picked up my transition bags and were ready to go as soon as I was rested enough to walk out of there. Since they ended up parking a mile away from the finish line, we took a bike taxi to the rental car. Normally I would never pay for something like that, but this time it was worth every penny - plus the guy had some killer tunes playing on his sound system.

We got back to the hotel where I had a nice soak in the tub to wash the stink off, and then hit the sack feeling very satisfied. I lounged around the hotel the whole next day while the wife and boy went to do some college campus tours and check out Sedona. I was really sore for the next few days, but by the second day after the race, I felt good enough to race the boy up several flights of stairs - which I won quite handily.

I want to save the final words in this post for the amazing volunteers. At every station and situation, the volunteers were well trained, highly enthusiastic, and ready to help in any way possible. I did not suffer a moment of confusion, or unnecessary discomfort thanks to them. They did their best to energetically support all of the athletes from sunrise to long after sunset and I have nothing but effusive praise for them. I wish all of the volunteers the very best and give them my sincere thanks for their time and energy!

Swim Gear
  • Body Glide (Makes it easier to get into the wetsuit)
  • Wetsuit
  • Base swim cap
  • Goggles
  • Top swim cap
  • Defogger (I never ended up using this because my goggles were still fairly new)
  • Ear plugs
  • Garmin 910xt


Blue Bag (T1 - Swim to Bike)
  • 220 Calorie bottle of Ensure (Ended up drinking this)
  • Can of Red Bull (Cannot remember if I drank this)
  • Water bottle with plain water in it (Took a few swings of this)
  • Chamois Butt'r (I used tons of this in the morning, so none was needed)
  • Mole skin (I used this for a spot on my foot that tends to chafe a lot)
  • Socks (I wore these, but may not do so again at the next race)
  • Bike shoes
  • Helmet
  • Sunglasses
  • Athlete Tracker


Orange Bag (Bike Special Needs)
  • Red Bull (I ended up drinking this)
  • Snickers (Never ate it)
  • Chamois Butt'r
  • Fruit snacks (Never ate 'em)
  • Moleskins (Did not need them)


Red Bag (T2 - Bike to Run)
  • Amphipod with mixed nuts (Did not end up using this)
  • Fuel belt with race number and 10x Honey Stingers (Only used one Honey Stinger)
  • Small towel (Used to clear sweat out of my eyes; only needed it once on the run)
  • Chamois Butt'r
  • Socks (Definitely used these)
  • Moleskin (Had to re-apply because the first one came off with my bike socks)
  • Running Shoes
  • White running cap (Very helpful in all conditions)
  • Bottle of water (Took a few swigs from this)
  • Running shorts and tech shirt (Changed into these in the changing tent)
  • Tube of salt pills and some chewable Pepto (Took all of it)


Black Bag (Run Special Needs - I never used any of this)
  • Tube of salt pills and some chewable Pepto
  • Moleskins
  • Chamois Butt'r
  • Pro Bar
  • Red Bull
  • Snickers
  • Beef Jerkey
  • Fruit Snacks


Other stuff I packed in my giant duffle bag...
  • Bicycle Pump (Came in very handy)
  • Garmin 910xt charger
  • Garmin 800 (So I could read my stats on the bike without looking at my watch)
  • Garmin 800 charger
  • Pedal Wrench (Did not need it)
  • Cassette Socket (Did not need it)
  • Torque Wrench (Used it, but could have left it at home)
  • Socket Set (Used it, but could have left it at home)
  • Crank Tightener (Did not need it)
  • Chain link tool (Did not need it)
  • Precision driver set (Handy for changing batteries in the hear rate monitor, etc)
  • Scissors (Surprisingly handy)
  • Bike mounted fuel pouch (Very handy for storing gel wrappers, and solid food)
  • 4x Bike bottles (I used three of these)
  • Spare CR2032 batteries (I did not need any, but was glad to have them)
  • 2x Spare tubes (Thankfully did not need these)
  • Di2 charger (Did not need it)
  • Electrical Tape (Fantastically useful for mounting gels to bike top tube)
  • Clear plastic tape (I forget why I had this...)
  • Safety pins (Very useful for double securing race chip)
  • Sunblock (I should have used more of this, I got a light sunburn on Thursday...)

And last but not least, my official race results:

Swim
  • Distance: 2.4 miles
  • Split Time: 1:25:26
  • Race Time: 1:25:26
  • Pace: 2:12/100m
  • Division Rank: 238 of 502
  • Gender Rank: 1112 of 2270
  • Overall Rank: 1427 of 3202

T1: 00:08:32


Bike
  • Distance: 112 miles
  • Split Time: 06:41:31
  • Race Time: 08:15:29
  • Pace: 16.74 mph
  • Division Rank: 246 of 502
  • Gender Rank: 1098 of 2270
  • Overall Rank: 1366 of 3202

T2: 00:07:49


Run
  • Distance: 26.2 miles
  • Split Time: 05:24:09
  • Race Time: 13:47:27
  • Pace: 12:22/mi
  • Division Rank: 244 of 502
  • Gender Rank: 1062 of 2270
  • Overall Rank: 1358 of 3202

Finisher Breakdown
  • 2390 finishers out of 3202 signed up.
  • 1696 male finishers out of 2270 signed up.
  • 378 male 40-44 finishers out of 502 signed up.
  • 2639 registered participants started the race.
  • 563 registered participants had a DNS (Did Not Start)
  • 241 registered participants had a DNF (Did Not Finish)
  • 8 registered participants had a DQ (Disqualified)

My Overall Percentiles
  • Male 40-44: 51st percentile (registrants), 35th percentile (finishers)
  • Male: 53rd percentile (registrants), 37th percentile (finishers)
  • Overall: 57th percentile (registrants), 43rd percentile (finishers)

Tuesday, December 02, 2014

IRONMAN Arizona Trip Report Part I

[Note: I wrote this mostly as a reminder for myself, but I think it might be helpful to other triathletes as well. I recognize that it may seem overly detailed, but triathlons are complicated affairs that require some trial and error to get right.]

I participated in IRONMAN Arizona 2014 on Sunday, November 16, and 
this is Part I of my trip report. If you are bored by detailed rundowns of packet pickup, and practice swims, you can jump directly to Part II for the race day action.

This trip really started back in November of 2013. IRONMAN Arizona is so popular that the only way to ensure a spot is to volunteer for a race. This gives you the right to register on-site Monday after the race. The lineup for volunteer registration seemed to start around 0300hrs for a 0800hrs registration. I got in line around 0430hrs and, despite being pretty far back, had no trouble getting a spot on the 2014 roster.

After volunteers, the general public can register onsite, and finally registration is opened online. In 2014, I heard that online registration ended five minutes after it opened. I just checked on the 2015 race and there was no online registration. The race filled up from onsite registration alone! If you are willing to pay double ($1,450), at the time of this writing there are some IRONMAN Foundation slots still open for the 2015 race.

One of the benefits of getting into the race is the right to sign up for the next year's race during packet pickup. If you plan to do this race multiple times, it is a real benefit. I have some specific goals in mind that are going to take a few years to reach, so it was worth it for me to invest in the volunteer trip.

Volunteering for the previous year's race also had some benefits that went way beyond assuring a spot. If you have never done a long course (140.6) triathlon before, it really helps to watch how things go at the event before participating. It was also useful to get to know the town of Tempe as well. All of that made for significantly less stress when I did the race this year.

This year's race schedule started on Thursday. You could arrive as late as Friday, but there is so much to do prior to one of these races that arriving on Friday might make things uncomfortably busy. I wanted arrive even before Thursday to get better acclimated to the desert environment, but work and other responsibilities did not allow for it.

My plane landed around noon on Thursday and by 1300hrs I had my rental car and was on my way to Tempe Beach Park. By 1330hrs I was parked in downtown Tempe (downtown Tempe has tons of parking), and headed into the registration tent to pick up my race packet.

The first step was to show my driver's license. In return I got a card with my race number printed on it, a liability waiver, and a medical release waiver. I went to a table in the back corner to read the waivers and then sign and date both. The medical release waiver permits IRONMAN to release medical information to your family if something happens to you during the race, and the liability waiver is the standard legalese to remind you that you race at your own risk.

Once read and signed, you go to the second table to turn in your forms and receive your wristband. Your wristband is your ticket to all of the athlete areas - and trust me, security is pretty tight, they will check it a lot. It has your athlete number printed on it, and it cannot be removed without destroying it.

After receiving your wristband, you are directed to the packet pickup table. You hand them the race number card that you got at the first table, and in return you get your race envelope with your race stickers, your race bib, and your colored swim cap (green for males, pink for females, white for IRONMAN Foundation racers, and I believe grey for pros). A volunteer writes your number on your swim cap, answers any questions you may have, and then directs you to the next table to pick up some SWAG.

I passed on most of the SWAG because none of it looked that interesting to me - I have no use for posters and flashy brochures. I did pick up some spiffy baggage tags though. They are made of very durable plastic and come in handy when you want a nice label for your luggage.

The last table in the registration tent is the timing chip. They check the race number on your wristband and then program that into a chip. You can verify they have the right race number programmed into the chip because your name shows up on the computer screen when you hear that satisfying *beep* that signifies your chip is ready to go. The chip comes with an ankle holder that attaches via velcro. Despite being bulletproof and virtually impossible to fall off, purely out of paranoia, I weave a safety pin into both sides of the velcro. I also wear the chip facing the inside of my leg, out of concern that it may clip something if it is on the outside.

After completing the registration tent, they direct you to the merchandising tent to pick up your backpack and athlete bags. While it is possible that they do it this way to get you into the merchandising tent, judging by how crowded the registration tent is, it seems more likely that they simply ran out of room. I took a break before I went over to the merchandising tent to listen to the remainder of the mandatory athlete meeting.

The athlete meeting goes over a lot of what is in the athlete manual (published on the website), other details that may not be obvious, and they take questions from the athletes. I have done shorter triathlons and I always find these meetings useful, so I made it a point to attend. I ended up missing the first quarter of the meeting while I was in the registration tent, so I attended a repeat meeting on Saturday.

Back at the merchandising tent, I picked up my backpack and athlete bags. The backpack is a rather nice gift, and the athlete bags are part of your equipment to complete the race. Each bag is a different color and serves a different purpose.
  • Green - Morning Clothes
  • Blue - Bike Gear
  • Red - Run Gear
  • Orange - Bike Special Needs
  • Black - Run Special Needs

Most of that should be self explanatory, but I will briefly go over each one. All of the stuff you will need in T1 (transition from swim to bike) goes in the blue bag. All of the stuff you need in T2 (transition from bike to run) goes in the red bag. Your street clothes that you wear to the race in the morning go into the green bag. If you need anything to help you through the bike or the run, you can put those in the orange and black special needs bags. The special needs bags are made available to athletes at a designated location on the bike and run courses. I ended up using my bike special needs bag, but not my run special needs bag. I have placed a list of the contents of all my bags, and what worked and did not work, at the bottom of the Part II post.

Now that I was all checked in, my last stop was to the TriBike Transport tent to pick up my bike. This is my second event with TriBike Transport, and I have nothing but praise for them. They save me a *TON* of trouble by making sure my bike gets to the event and back safely. The alternative is to buy an expensive bike box, disassemble my bike, pack it in the box, pay extra to check it on the airplane, and hope that it arrives in one piece. TriBike has a vested interest in getting bikes to events without so much as a scratch on them. And the best part is that I get to hand my bike back to them, all sticky and nasty, right after the event. A few days later I get an email when it arrives back in Seattle.

At this point, I grabbed some dinner at an outdoor pub, loaded everything up into my rental car, and checked into my hotel.

I spent nearly all of Friday unpacking and organizing my race gear. Once I got things squared away, I filled my gear bags to get them ready for gear check-in on Saturday. This was also the time I spent mentally going over my race plan to make sure I was not missing anything. I am not sure how other people do this, but it took up a fair bit of space in the hotel room to accomplish this whole process.

Saturday was the practice swim and gear check-in. It is illegal to swim in Tempe Town Lake unless you have a permit, so the practice swim was the only time to "test the waters". I treated it just like the actual event swim and wore my wetsuit. They also require you to wear your racing chip so they can chip you in and out of the water. The line to get into the swim was pretty long, so I recommend getting there closer to when it opens. The practice swim course was an 800 metre version of the actual event swim. They gave you the option of swimming all or part of it, or perhaps even going further. I opted to just swim the practice course, which took me about 20 minutes and ultimately registered 0.63 miles on my Garmin watch. The water felt surprisingly cold, even though it was tested to be 68F. I guess I am too used to swimming in the 80F water at my local pool.

The practice swim had an athlete gear storage area just outside of the swim entry. There was no privacy, just a fenced off area with stakes in the ground marking athlete number ranges. As long as you wore your bathing suit under your street clothes, you could change into your wetsuit right there and drop off your gear in your numbered area. When your practice swim is over you do the reverse. I also opted to hang my wetsuit on the fence so that it would dry in the sun. By the time I picked it up after gear check-in, it was nearly completely dry.

I took my swim gear (minus the wetsuit) back to the car and traded them for my bike, run gear bag, and bike gear bag. Overall the check-in process was extremely straightforward. I rolled my bike into the T1 transition area, found my race number and racked my bike on the bike holder. I then went over to the bike and run gear bag areas and placed my bag near the section that contained my race number. I have to admit that their race numbering was a bit hard to read, but they had volunteers helping us get our bags in the right place. After gear check-in closed the volunteers did a thorough check to ensure the bags were in the right order.

I ended Saturday's activities by attending the last athlete meeting to pick up whatever I missed in the first athlete meeting.

Continue on to part II...

Sunday, November 02, 2014

Purple Stride 5K

The boy and I ran the Purple Strider 5K today. It was a great race for a great cause!

I managed to nail a personal best time of 19:53, and the boy came in at around 24:30.

Sunday, September 14, 2014

Another Sprint Triathlon

The boy and I did another Sprint triathlon today. This one was a 0.5 mile swim, 11 mile bike, and 2.8 mile run. As usual, the boy smoked me on the swim, but I managed to catch up to him on the bike at the 2.3 mile point. Here are the results (out of 123 finishers):

The Boy:
  • Place Overall: 37
  • Overall Time: 1:22:43
  • Division Place: 1
  • Swim Rank / Time: 14 / 00:13:52
  • T1: 2:59
  • Bike Rank / Time: 66 / 00:38:57
  • T2: ??
  • Run Rank / Time: 80 / 00:26:54


Me:
  • Place Overall: 11
  • Overall Time: 1:14:54
  • Division Place: 3
  • Swim Rank / Time: 33 / 00:15:38
  • T1: 2:52
  • Bike Rank / Time: 10 / 00:32:17
  • T2: 1:31
  • Run Rank / Time: 29 / 00:22:36

Saturday, June 28, 2014

Sprint Triathlon

The Boy and I did a sprint triathlon today (0.25 mile swim, 14 mile bike, 3.1 mile run). He smoked me on the swim, but I cleaned up on the rest. Here are our results (out of 154 finishers):


The Boy
  • Place Overall: 103 
  • Division Place: 3rd (15-19) 
  • Swim Rank/Time: 18 / 0:06:38.0 
  • T1: 0:02:15.6 
  • Bike Rank / Time / Speed: 101 / 0:49:07.2 / 17.1MPH 
  • T2: 0:01:06.8 
  • Run Rank / Time / Speed: 126 / 0:28:28.6 / 9:11/M 
  • Overall Time: 1:27:36.2


Me:
  • Place Overall: 38 
  • Division Place: 7th (40-44) 
  • Swim Rank/Time: 79 / 0:08:36.4 
  • T1: 0:01:21.7 
  • Bike Rank / Time / Speed: 31 / 0:39:15.1 / 21.4MPH 
  • T2: 0:01:07.3 
  • Run Rank / Time / Speed: 61 / 0:23:11.4 7:29/M 
  • Overall Time: 1:13:31.9

Downloading FIT files manually from a Garmin 910xt

When Garmin switched from their ANT agent to Garmin Express, the first version(s) of Garmin Express would not save the FIT files on your machine after it sync'd with Garmin Connect. The switch from the ANT agent to Garmin Express also broke connectivity with Strava and any other website that relied on the Garmin web browser plugin.

The workaround was (is) to upload FIT files directly to any site that got their plugin connectivity broken. Since the FIT files were deleted with earlier versions of Garmin Express, they could not be found to upload (catch-22). The fix is to extract the files manually with the 
Garmin-Forerunner-610-Extractor tool - yes, it works on the Garmin 910xt despite the name.

Here are detailed instructions for installing and running the manual extraction tool on an Apple machine running OSX Mavericks or later (and probably Linux). I have no idea how to do this on a win-tel machine. Also note that this how I personally got things working. Your mileage may vary, and I am not responsible for any problems that arise out of the use of these instructions. If you have problems, feel free to post a detailed explanation of what went wrong, and I will try to help.

In your web browser go to http://www.libusb.org/ and click on the link to "Download the latest release tarball" of libusb (Currently libusb-1.0.18).


[Note: A few people have missed the capital "D" in "Development" and "Documents". The OS X HFS+ filesystem is case sensitive, so you must be sure to get the case correct.]
  1. Open the terminal (You can find this by opening the finder and selecting "Applications" and then "Utilities". Double click on "Terminal"). 
  2. Type the following command in the Terminal: mkdir -p ~/Documents/Development && cd ~/Documents/Development 
  3. Type the following command in the Terminal: git clone https://github.com/Tigge/Garmin-Forerunner-610-Extractor 
  4. Type the following command in the Terminal: cd ~/Documents/Development/Garmin-Forerunner-610-Extractor/ 
  5. Type the following command in the Terminal: sudo easy_install pyusb 
  6. Type the following command in the Terminal: cp ~/Downloads/libusb* ~/Documents/Development/Garmin-Forerunner-610-Extractor/ 
  7. Type the following command in the Terminal: tar -zxvf libusb-* 
  8. Type the following command in the Terminal: cd libusb* 
  9. Type the following command in the Terminal: ./configure && make && sudo make install 
  10. Type the following command in the Terminal: cd .. 
  11. Turn on your Garmin device. Once it is fully started, plug in your ANT USB stick. 
  12. Type the following command in the Terminal: sudo python ~/Documents/Development/Garmin-Forerunner-610-Extractor/garmin.py 
  13. If this is the first time you have done this, your Garmin 910xt should ask if you want to pair with the Garmin Extractor device. Select "Yes" with the arrow button and press the "Enter" button. 
  14. The FIT files will now start downloading (including those that Garmin Express and the ANT Agent will not download). 
  15. When the download is complete, you can find them in ~/.config/garmin-extractor/$NUMBER/activities ($NUMBER is unique to your device, it should be the only numbered directory in ~/.config/garmin-extractor). This is the directory you will select files from when you need to upload them to sites like Strava. 
Repeat steps 1, and 12 - 16 for subsequent extractions.


Update:

When running step 12, if you get an error similar to the following, it is probably because you have some other program accessing the ANT USB stick, like Garmin Express, or the old ANT Agent. Simply shut down the program in question, reinsert the ANT USB stick, and attempt step 12 again.

Driver available: [, ] - Using: ant.base.driver.USB2DriverTraceback (most recent call last):  File "garmin.py", line 336, in main    g = Garmin(options.upload)  File "garmin.py", line 137, in __init__    Application.__init__(self)  File "/Users/chuckwolber/Documents/Development/Garmin-Forerunner-610-Extractor/ant/fs/manager.py", line 82, in __init__    self._node = Node()  File "/Users/chuckwolber/Documents/Development/Garmin-Forerunner-610-Extractor/ant/easy/node.py", line 48, in __init__    self.ant = Ant()  File "/Users/chuckwolber/Documents/Development/Garmin-Forerunner-610-Extractor/ant/base/ant.py", line 59, in __init__    self._driver.open()  File "/Users/chuckwolber/Documents/Development/Garmin-Forerunner-610-Extractor/ant/base/driver.py", line 180, in open    dev.set_configuration()  File "build/bdist.macosx-10.9-intel/egg/usb/core.py", line 559, in set_configuration    self._ctx.managed_set_configuration(self, configuration)  File "build/bdist.macosx-10.9-intel/egg/usb/core.py", line 92, in managed_set_configuration    self.backend.set_configuration(self.handle, cfg.bConfigurationValue)  File "build/bdist.macosx-10.9-intel/egg/usb/backend/libusb1.py", line 741, in set_configuration    _check(self.lib.libusb_set_configuration(dev_handle.handle, config_value))  File "build/bdist.macosx-10.9-intel/egg/usb/backend/libusb1.py", line 571, in _check    raise USBError(_str_error[ret], ret, _libusb_errno[ret])USBError: [Errno 19] No such device (it may have been disconnected)Interrupted: [Errno 19] No such device (it may have been disconnected)


Update 20Nov2014:

I tested this with a Garmin FR60 and it worked great.


Update 02Jul2015:

If you get the following, error or something like it:

can't open file '/Users/Aaron/documents/development/garmin-forerunner-610-extractor/garmin.py': [Errno 2] No such file or directory

You probably neglected to capitalize the "D" in Documents and/or the "D" in Development. Look through the execution path carefully for "Documents" and "Development" and make sure you capitalize the "D".

Thursday, November 28, 2013

Juniper Network Connect and Mac OS

I run a Macbook Pro to do a lot of my software development. When I work from home I have to connect to the company VPN to push code updates to the repository server - which is done with the Juniper Network Connect client. Occasionally the VPN client will connect and then disconnect after five seconds with a message that begins with, "Your computer's routing table has changed...". There is some discussion of this on the 'tubes, but no one seems to have a solution in hand. I managed to solve it on my own.

The error message is correct, something is updating my machine's routing tables after the VPN connection is made. The simplest way to figure out what is doing this is to start killing processes until the VPN connection starts working - which you do with the "Activity Monitor" application (Macintosh HD -> Applications -> Utilities -> Activity Monitor).

After some experimentation, it appears as if VMWare Fusion may be the culprit. I say "may" because I ended up killing several other processes at the same time, so I cannot be certain that VMWare Fusion was the right one. However, in reading forum posts from others who have had this problem, VMWare Fusion seems to pop up quite often during the discussion.

Also, two other issues of note:

Running the VPN client from within a VMWare instance seems to work all of the time. Even when this is happening within the base Mac OS.

YMMV, but I usually have really messed up DNS settings once the VPN client disconnects. This can be solved by issuing the following two commands in the terminal:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Tuesday, October 01, 2013

Chrome Annoyance

I am writing some code that involves the use of embedded Jetty 9 (Jetty as a POJO). To start with, I was doing some basic testing with a handler that would print a message to the console and then do a Thread.sleep(10000). The idea was to get it sleep long enough for me to kick off a bunch of requests (web browser tabs to start, eventually graduating to a curl script) to see how well Jetty 9 handled simultaneous requests.

No matter what I seemed to do, I could not get my code to respond to simultaneous requests. The requests always seemed to pass through serially. To make things worse, I just happened to be doing this development on a Windows 7 machine - which makes it pretty much impossible to sniff traffic on the localhost interface (yes, I know there are some possible ways to do that, but they are unreliable). So I was working in the blind and nothing seemed to be working...

Finally I managed to find the answer here. The problem was not my code, it was the Chrome Browser. Apparently you cannot open the same URL on multiple tabs at the same time. I fired up Firefox (pun intended) and everything worked like a champ.

So ah... What is the deal Google?

Thursday, September 19, 2013

PRP Therapy

I was diagnosed with a split tear in my left Peroneal Brevis. My guess is that it was an old Soccer injury that got lit up by all of the training. My options were surgery, or something a bit newer called PRP Therapy. Surgery was the least preferable because it leaves me unable to train for six months. PRP - which stands for Platelet Rich Plasma, enables the body to heal the split on its own. It is about 70% effective and is far less invasive, enabling me to get back to training in weeks rather than months.

The key problem with Tendons is that they have limited blood flow, which makes repair unlikely when damage exceeds certain limits. The lack of blood flow means that injuries do not get the benefit of the rich set of growth factors found in blood Platelets. PRP fixes that problem by injecting your own blood Platelets into the damaged area. The Platelets rapidly differentiate into growth factors that build a Collagen matrix. That Collagen matrix goes through a bunch of changes from one type of Collagen to another, eventually leaving you with a fully repaired Tendon.

In practice, PRP is pretty simple stuff. They draw a small vial of your blood and spin it down in a centrifuge. The bottom layer is all of your red and white blood cells, and the top layer is a yellowish substance that contains all of the Platelets and other stuff that your body uses to heal itself on a regular basis. When they showed me my vial of centrifuged blood, it appeared as if nearly half of the vial was Platelet "goo". The doctor mixed some of the Platelet solution with Calcium Carbonate fluid, to prevent clotting, and then injected it into the split. She was guided to the split by a Sonogram (made by Sonosite - that apparently costs $60,000).

Interestingly, the doctor was able to clearly see the injury with the sonogram, which made me wonder why I had to get an MRI for this injury in the first place. She told me that it was because the Sonogram device was very expensive, and it takes a lot of skill to use it in this manner. But she also agreed that things probably needed to change simply from a cost standpoint. An MRI costs $2000 ($1000 with insurance discounts), and a Sonogram is only about $150. She also indicated that they are training all of their new Fellows to diagnose injuries with a Sonogram.

I had the injection today, and am now in an air cast boot for the next two weeks while the first phase of healing happens. I will not lie, the injection stung a little. They used Lidocaine at the injection site, but I later found out that Lidocaine can inhibit the Platelet action, so they do not anesthetize the Tendon itself. Normally the only painful part of most procedures is the initial stick of Lidocaine. The secondary sting took me by surprise. Had I known it was coming I would have been able to ignore it - it really was not that bad.

Once the first phase of healing is complete, the next phase involves swimming, or light bike riding, in addition to the normal daily walking around. The second phase is supposed to last about two weeks and helps the collagen matrix go from a disorganized bunch of new cells, to a carefully aligned set of cells that will eventually heal into full fledged tendon material. At the four week point I can ease back into some cardio work with the Elliptical, and then the doctor sees me again at the six week point. If all goes well, I should be able to ease back into running after six or so weeks.

Not exactly the way I wanted to spend the Fall, but it sure does beat being out of commission for six months...


Air cast boot being inspected by Cisco...


Sunday, June 17, 2012

Dura Ace Di2 - Failure to Downshift

If you have a Dura Ace Di2 electronic shifter and you find that it cannot shift the rear cassette to a larger gear (downshift), you might have forgotten to put your rear wheel back on in the same gear in which it was taken off. The Dura Ace Di2 rear cassette electronic shifter does not appear to sense its position. My guess is that it has absolute locations for shift positions, and you can confuse it by putting the derailleur back on at a different position.

But wait! If you return your wheel to a different gear it should automatically find the gear it was previously on, simply because the derailleur  is in that position. For whatever reason, that may not always be the case with the Dura Ace Di2 electronic shifting system. I have had it happen both ways. Sometimes the chain moves to the right place on the rear cassette, sometimes it does not.

In my case, I solved this by removing the rear wheel and shifting all the way to the outermost gear. When I put the wheel back on, I made sure that the chain was on the outermost gear.

Thursday, December 15, 2011

Thank you Mr. Hitchens

In October of 2011 I attended the Texas Freethought Convention and got to see Christopher Hitchens receive the Richard Dawkins Award. During the question and answer period an eight year old girl asked Christopher what authors she should be reading. Christopher considered it for a moment and then told the girl that he would meet her in the hallway after the talk and give her a list. True to his word Christopher met the girl in the hallway and gave her his undivided attention. What follows are the pictures I took of Christopher talking with the young girl. The pictures were taken with my HTC EVO 8 megapixel cellphone camera.










Thursday, October 06, 2011

Benefits of Exercise... Need more proof?

I like to do the timed race up the Columbia Tower in Seattle. In the 2008 I did it in 13:28.25 and 2009 my time was 12:55.55. Both were done without any training and each time I knew that I could have done better. I missed the 2010 race altogether.

Sometime in September of 2010 I started training for the 2011 race. I managed to shave 30 seconds off of my 2009 time with only a few months of training and decided to push it even harder for the 2012 race. I also picked up a heart rate monitor a few months ago in order to get a more detailed understanding of how my body was responding.

As your aerobic capacity increases, your heart gets physically bigger and is able to pump more blood during every cycle. This causes your RHR (Resting Heart Rate) to slow down, which is a good way to track your progress. I got my heart rate monitor on 17Aug2011 and strapped it on for the night while I was sleeping. I added a daily run to my training and strapped on the monitor again last night (05Oct2011) to check my progress.

The results speak for themselves - the blue graph is my August data and the pink represents the current state of affairs.


(Click to embiggen...)

From a subjective standpoint, I feel a lot calmer and more relaxed. The little things do not bug me as much as they used to, and on nights where I cannot get in enough sleep, I feel perfectly fine the next day.

To be sure, the data is not perfect (you are not perfectly at rest while sleeping) and last night could have been an anomaly. I will continue to track this on a monthly basis and see if a true trend is developing. I like what I see so far though.

Monday, September 19, 2011

A lot of good that did...

Then: "I, Rick Perry, Governor of Texas, under the authority vested in me by the Constitution and Statutes of the State of Texas, do hereby proclaim the three-day period from Friday, April 22, 2011, to Sunday, April 24, 2011, as Days of Prayer for Rain in the State of Texas."

Now: "In the past seven days Texas Forest Service has responded to 176 fires for 126,844 acres."


Functional Evaluation

I have some iPad development to do in the near future and I need to learn Objective C. Since Objective C is a super-set of the C programming language, I figured I would finally work my way through the KnR C book. I taught myself how to program in C, which means I most certainly have some gaps in my knowledge that could be filled.

This is one of those embarrassing gaps that falls into the "everyone probably knew this but me" file...

 Somewhere at the end of chapter 2 it says:

"C, like most languages, does not specify the order in which the operands of an operator are evaluated. (The exceptions are &&, ||, ?:, and ',' .) For example in a statement like x = f( ) + g( ); f may be evaluated before g or vice versa; thus if either f or g alters a variable on which the other depends, x can depend on the order of the evaluation." 

This whole time I had naively assumed that evaluation was always done from left to right...

Friday, July 01, 2011

Military Grade Security

Quick back of the napkin guess about the government's current ability to crack passwords... There are probably a lot of flaws in reasoning. Feel free to point them out and I will adjust accordingly.

In 1998 the EFF built a machine called Deep Crack for about $250,000. It was capable of checking 90 Billion 56 bit DES encryption keys per second which means the whole keyspace could be searched in about nine days.

Speculation begins here...

Assumption 1: Moore's Law holds when it comes to dedicated decryption hardware. If you could check 90 Billion 56 bit keys per second in 1998 for $250,000, and there are (rounding up) seven doublings over the ensuing 13 years, then you could check 2^7 * 90,000,000,000 = 11,520,000,000,000 56 bit keys per second in late 2011 for $250,000.

Assumption 2: You can check 2 AES keys (regardless of size) in the time you can check one 56 bit DES key. This puts the late 2011 capability at 23,040,000,000,000 keys per second for $250,000 dollars.

Assumption 3: The federal government can afford a lot more than $250,000 for a password cracking rig. I figure $10 Billion is an entry level price before it starts to attract attention, so that ups the capability by about 40,000 times to 921,600,000,000,000,000 keys per second.

That puts us at about 913 quadrillion keys per second capability in late 2011... Or about 92,160,000 keys per second per dollar spent...

Monday, June 27, 2011

Camp Quest Ohio

Just got back from a camp counselor gig at Camp Quest Ohio. Easily the most amazing week of my life. The kids were incredible and the program went off like a well oiled machine. Many thanks to August Brunsman and his crew for running such a great camp.

I cannot wait to do it again and am especially excited about our efforts to do the same thing with Camp Quest NorthWest. I also have it on good authority that I have been missing out on a great experience over at Skepticon, so I plan to register for that at some point too.

Monday, June 13, 2011

Camp Quest NorthWest

Working a lot lately on setting up a Washington chapter of Camp Quest called Camp Quest NorthWest. Our rough goal is to have a full week camp going by 2013 with a type of weekend activity in 2012. It remains to be seen how close to that we land, but we are trying. Drop me a line if you are interested in volunteering, or simply think it might be fun to send your kid to a fun and interesting camp experience.

Monday, September 20, 2010

HDCP Master Key

HDCP MASTER KEY (MIRROR THIS TEXT!)

This is a forty times forty element matrix of fifty-six bit
hexadecimal numbers.

To generate a source key, take a forty-bit number that (in
binary) consists of twenty ones and twenty zeroes; this is
the source KSV. Add together those twenty rows of the matrix
that correspond to the ones in the KSV (with the lowest bit
in the KSV corresponding to the first row), taking all elements
modulo two to the power of fifty-six; this is the source
private key.

To generate a sink key, do the same, but with the transposed
matrix.


6692d179032205 b4116a96425a7f ecc2ef51af1740 959d3b6d07bce4 fa9f2af29814d9
82592e77a204a8 146a6970e3c4a1 f43a81dc36eff7 568b44f60c79f5 bb606d7fe87dd6
1b91b9b73c68f9 f31c6aeef81de6 9a9cc14469a037 a480bc978970a6 997f729d0a1a39
b3b9accda43860 f9d45a5bf64a1d 180a1013ba5023 42b73df2d33112 851f2c4d21b05e
2901308bbd685c 9fde452d3328f5 4cc518f97414a8 8fca1f7e2a0a14 dc8bdbb12e2378
672f11cedf36c5 f45a2a00da1c1d 5a3e82c124129a 084a707eadd972 cb45c81b64808d
07ebd2779e3e71 9663e2beeee6e5 25078568d83de8 28027d5c0c4e65 ec3f0fc32c7e63
1d6b501ae0f003 f5a8fcecb28092 854349337aa99e 9c669367e08bf1 d9c23474e09f70

3c901d46bada9a 40981ffcfa376f a4b686ca8fb039 63f2ce16b91863 1bade89cc52ca2
4552921af8efd2 fe8ac96a02a6f9 9248b8894b23bd 17535dbff93d56 94bdc32a095df2
cd247c6d30286e d2212f9d8ce80a dc55bdc2a6962c bcabf9b5fcbe6f c2cfc78f5fdafa
80e32223b9feab f1fa23f5b0bf0d ab6bf4b5b698ae d960315753d36f 424701e5a944ed
10f61245ebe788 f57a17fc53a314 00e22e88911d9e 76575e18c7956e c1ef4eee022e38
f5459f177591d9 08748f861098ef 287d2c63bd809e e6a28a6f5d000c 7ae5964a663c1b
0f15f7167f56c6 d6c05b2bbe8800 544a49be026410 d9f3f08602517f 74878dc02827f7
d72ef3ea24b7c8 717c7afc0b55a5 0be2a582516d08 202ded173a5428 9b71e35e45943f

9e7cd2c8789c99 1b590a91f1cffd 903dca7c36d298 52ad58ddcc1861 56dd3acba0d9c5
c76254c1be9ed1 06ecb6ae8ff373 cfcc1afcbc80a4 30eba7ac19308c d6e20ae760c986
c0d1e59db1075f 8933d5d8284b92 9280d9a3faa716 8386984f92bfd6 be56cd7c4bfa59
16593d2aa598a6 d62534326a40ee 0c1f1919936667 acbaf0eefdd395 36dbfdbf9e1439
0bd7c7e683d280 54759e16cfd9ea cac9029104bd51 436d1dca1371d3 ca2f808654cdb2
7d6923e47f97b5 70e256b741910c 7dd466ed5fff2e 26bec4a28e8cc4 5754ea7219d4eb
75270aa4d3cc8d e0ae1d1897b7f4 4fe5663e8cb342 05a80e4a1a950d 66b4eb6ed4c99e
3d7e9d469c6165 81677af04a2e15 ada4be60bc348d dfdfbbad739248 98ad5986f3ca1f

971d02ada31b46 2adab96f7b15da 9855f01b9b7b94 6cef0f65663fbf eb328e8a3c6c5d
e29f0f0b1ef2bf e4a30b29047d31 52250e7ae3a4ac fe3efc3b8c2df1 8c997d15d6078b
49da8b4611ff9f b1e061bc9be995 31fd68c4ad6dc6 fd8974f0c506dd 90421c1cd2b26c
53eec84c91ed17 5159ba3711173b 25e318ddceea6a 98a14125755955 2bb97fd341cea2
3f8404769a0a8e bce5c7a45fb5d4 9608307b43f785 2a98e5856afe75 b4dbead4815cac
d1118af62c964a 3142667a5b0d14 6c6f90933acd3d 6b14a0052e2be4 1b1811fda0f554
12300aa7f10405 1919ca0bff56ea d3e2f3aad5250c 4aeeea5101d2ec 377fc499c07057
6cb1a90cdb7b11 3c839d47a4b814 25c5ac14b5ec28 4ef18646d5b9c2 95a98cc51ebd3b

310e98028e24de 092ffc76b79f44 0740a1ca2d4737 b9f38966257c99 a75afc7454abe4
a6dd815be8ccbf ec2cac2df0c675 41f7636aa4080f 30e87b712520fd d5dfdc6d3266ac
ee28f5479f836f 0bf8ee2112173f 43ae802fa8d52d 4e0dffd36c1eac 3cbda974bb7585
fb60a4700470e3 d9f6b6083ef13d 4a5840f02d0130 6c20ef5e35e2bf dad2f85c745b5b
61c5ddc65d3fc9 7f6ec395d4ae22 2b8906fb3996e2 e4110f59eb92ac 1cb212b44128bb
545afda80a4fd1 b1ffea547eab6b fac3d9166afce8 3fe35fe17586f2 9d082667026a4c
17ffaf1cb50145 24f27b316acfff b6bb758ec4ad60 995e8726359ef7 c44952cb424035
5ec53461dbd248 40a1586f04aee7 49ea3fa4474e52 c13e8f52c51562 30a1a70162cfb8

ccbada27b91c33 33661064d05759 3388bb6315b036 0380a6b43851fb 0228dadb44ad3d
b732565bc37841 993c0d383cfaae 0bea49476758ac accc69dbfcde8b f416ab0474f022
2b7dbcc3002502 20dc4e67289e50 0068424fde9515 64806d59eb0c18 9cf08fb2abc362
8d0ee78a6cace9 b6781bd504d105 af65fab8ee6252 64a8f8dd8e2d14 cb9d3354e06b5b
53082840d3c011 8e080bedab3c4c e30d722a455843 24955a20397c17 82495c1c5114e8
656e71c31d813d 1f0a6d291823a1 6327f9534353fa b89529c2f034fb 70e9b12205c7b3
a06c87969407a2 520bfa2fe80f90 da1efc3d345c65 313936ec023811 a8cc87128be2fa
4cd0e8645ee141 be7975519e2b63 9543d23113c2a8 3d87b0da033f22 df0464c704e9d4

7e1a30947e867e 014ae464b37935 5c4babf689fa4e c4aec0cb01cc35 328c0e4a0230e4
fdacb93b419594 26deefc8a553e6 6e75a2d790cb55 2c4554518f7396 94b77184cb145d
95f883f620a8bb edff42866a2783 7b4ee6304b711d ed56e077a4b9fb c4e60e687ff6c3
0cbf144b8f64d5 023dd10a35eddd beaa3323e999c6 d2e016b31c38c4 8d2917a888f799
18c3abd28e736b 8d38e69b4966cc 624db0143dd2e7 5e2fa510f632b7 ee6e64d45b139a
a1c6d852e74be7 429843b9e6bb7e db9ab07c8dc267 9efa092299f071 dcca9e0e61e960
94406fac95f1d8 d19122f3f88782 1b11a662e9c83f d161fd6fb7f032 89f7d984da9d48
a3583fea45fe58 885e2c4839e254 47e87235f713b1 f4732e05b71aee ae026d063f4349

0a481d2db197af abfce1039d4ac0 4a6b89d2d1aeac 0842eb7178cc53 b82ce2835f1937
3b4002ca21d6b6 e64a78a78abb27 8bd6142ad04526 e035dacb23624a 4cf80110135771
7a52fafc92745e efa28a290ea782 735617cd8b0221 b095e9f4b286a5 021e9ba0727645
3e58e9ec16ed1c d7732bb5ba99a6 374bde43fa89a9 cb83e5ef2e4d04 1da4f73566d134
e01da194625c25 d62018764d7473 64643721313d24 5a01badd970941 481c9578781414
a4d3faa92d1fef bd4b247d37862a 5332a7ca3c2ca6 393ee51989d5a9 01a6e564040d37
390c472ee27892 f0217fe009e9b4 5d3f04da415b35 612ecd5b8e4eac 757e27d2169f2d
92853b737b7526 9ac837c86476df e956c2b45ebd5e d4fa6da687ac39 60f4343669ddd3

64b8d778e72e78 f86cd55efe92b8 a9adbf2e728440 966c8282cee1f9 ea195972b883f4
46ac03b37e7f24 744df253954ae5 22e3f9a0adbc58 6add7c7d8a2961 ba963e4912d17c
2840ac28fcfad9 8d8ec3ad6dfc32 a3c788dd094910 e65ebb61dabb5f b50e906b28c881
003b11eb83e6a9 a2fac0595b138d 3d55a28f915330 c343bd1849a085 54c786629d2b42
1d465cb22ccbc2 d8f87fd52aded1 ecb34f46656b71 b4cbe50f839f2c 2df6a553cc3698
40b2dd25f26d51 492f3c5c6fa566 f80dd453864548 d4be786d8735d9 e364511a0fb62d
3c2df64d6d1c9f f640e4ef4186be 41773025d6ff57 6147e75d7df3f5 49809548639d16
01067ef6034247 4e7c1b20deb154 3f8172a6b98ea0 b0691d4b575801 136a88607a3e5b

0180058ca8742e 972bc2ca1c4cb6 7b05bbc57e63df 5f01049697eaa2 c537f3121384dc
edb1fa0b34f132 689b1374cafe25 802d7bca5c6674 f8e01e75e9eb3d a59c2d9126d85d
f10f603f8c4fd9 d5a358aa84b2d5 f8320f2a3bd078 019bcf0dabb5c3 43dd8dd5e173f0
45169f788a0233 d62daee0e9839c 7d673cf77a53d2 008730faf272d0 3c08080778ae8d
920e40fad87d7e bf118230ffb194 692baf40b951b4 83549affe4e382 68e172f86a40b3
aa5e2c1b74636d c3d7809ac68aae 33c344fd9bcc33 6e6057dc7d71f0 bceef547db57fa
ec91cc1056e4b5 8153f00c8ef4f8 a2ca943ab03915 079a070121782d d592dcec23dd3f
44ba5fe5078279 e6f8ed790ffa59 e7877e834b4391 d1ca3db32bccd7 b382e35bff1ba1

96cb3b9ef8671e 70342fff9216a5 d635530148dcc6 bf40909f72ba4b e3697761ac11f1
f2a77a5f435c5c a57729bb9aaf37 14f78a30f9bf6f 1a7fe7f0271b01 0b224bc83ef07b
0d409ce2157473 adefa793287d48 a6b13ce8e00a7f 74d735fd54a00b e2dc16285d1b5a
8b3d55371ce703 bb3909153586b6 03c8c622aa53e9 89ee3322e069aa 325ce41fbd0175
2cd1326421cd83 3c47eed2daadda 87c2177de0c63f 39b496d688c971 179359349f5e0e
3cfa9ea9345dbc 47b1948cbfe45f 2a13b18cf3a0d1 00b03fc13e6cde 656ef26757f5d1
7c584630c27fb2 02f2e14ca8a67e fcfec527978154 4ec09910379625 e90fc0a898a5b7
5beb0f3ee5d03a 2383832708cfb7 6905747e27453e 1714e418f0f0a3 53bcdef0965e8d

2c9b5813b90c3c bb9a20c8ebb80e 045e04f3d57918 6fe6ffb0718731 201760abf11c27
e289872adda7e1 233e7ef2b2c83b 423b4c0ba711db 334b15e5bd4c01 034d1e41bff0e8
58a436cce28ea3 e6ef4d94b49962 ec8728db63716b 8c8ffc95c21b06 0beb50502d9acb
c1eb732268091a e45e0c30cfed36 31d58c384bc3e4 8a26ae8b7a5c60 83991e11e8a21e
e4f193c0183e07 691fbbf9ccb4c2 4e5214fae905d8 2052c969e9699d f6cea5a6157de3
fd84477a6bad8e 04f37758724bc3 a491d0fd8f084e 19933cec5f51f0 93794e76e1f29b
ebd1f1c057b30c 7ec220fa6d31d9 867d711c9a7674 a700cf5f177e37 cf3fae5da3ddc4
4e8030990c7917 553a5ce2abaaa4 c2296c42e2dcea 19ae4f9b654581 66d5fff1163703

bb5085e0e7d595 12605df8a35f9f 35c6d572c28ea5 5099437e5f5595 fb45cdaa8872f1
6e012db5feedc3 1ba0e5515be76f b793b687fbf1dd 9d2c01063d4ca1 c2e6fde5bc3a1c
c17b11e1a33418 436fcacef170c5 e4c3cbc3066618 2063665d2a1b84 a8b5b4f2e58850
ce74bcbc892d71 b312d96806cdc8 82d9c95678fff1 5d8a0120206c3c 621f13db39bd6e
4a5db4815f181d 8dae6e596cebd5 1b8b1681dd4918 1dbcbd79f8e5ff 135064b0968c4e
d81e91507c1e96 ce08e072644e54 e1648d32befadc d0b7f41fca118d 7b9291b680b18a
10ab9a2fb4f9a0 9f462d2370dd03 bb453f4b48b2ea b3c3e6d63c2559 be4aa3d8e8f129
90af78e01d25c9 2e06a8715063da 988dbf792de669 17eabe5b043c41 b1f700946e4ad2

e329ae8a66581e 4a5bda0ff2a313 79577080aaac8c 0dd34f4f929df3 0f5e87f82b9b1f
1ead67333c42d5 ebac8fb8797375 dc26965e625abb 953ce074d8c84c 2edd54991b2104
a45196065c2bca 98f56533f328bf 8560a1a390e921 37d2506aff3d7b f88576a47d273e
562b7c9592ffdc 2d0ff0ba59787b 4dd89971bd39a6 7a4a778d69a4cc 58bad18bf5fc74
5cac8d53dcc72c ba7e9c7a2b57d7 ff544acc98f08f 1d22f503712081 cf868290f04def
ba48ab7c61a8ab 3ca439f055f713 2401e3a43338e0 b7c4b19cf1edc8 37db6b0d8991a7
10ede95c9c35e6 a8f021fc870126 6e5909a7f3217b 33772e647266ff a5c8fd0c786e0f
04f0bb34025c67 cc33c6a49bf101 45c563f33f807d 6e95e9c2b5e349 3a0e55d42d44b7

611138d0e928dd 24d7958e8e6149 c66faf12b50f45 eaa5eb19337961 e68c81cb35d5d3
ed1fe1f1b8d443 612ca593de8afe 6c15ee22ffb8b0 c27152ca5a1e77 0133b8165e3ed1
608c9c1a6ca4aa df5272bd1b6425 6f7efc5b2bbfa0 b49b5f0c67ee30 f4ef0e7ed820cb
4b14d077b672ce 3a60f2386c0218 9e8d6e5f6caddf a53ccecbae8684 d3183beeba0cef
4cd21e6afc08e8 5db41995d15a93 6afe570246af77 d0994bc305b27f 2de99a0885c909
1629a47aaa161f 0f6b6d45ff8967 cfc4e83f5b469c cc22586cab3936 29e6b3f94d122e
83f00e419d8980 bb282b6f3efdef 30d80463fb25e0 1846f8f1b935d3 3c03ed5243b7b4
cb6b0e6e4c770f 8bc2856390163a 73a332bc2ebabd b3aeafedbc8c08 74ff7726398cd4

0071d5d3644b97 45dd1ae0369e9a c1f518cd384512 b933bc25cb3402 9377c50007d647
e609eb009c9245 7d99fff828ba6e 9f0adcca6cd0a9 5c5cf8366b699f f00f513ad9e29d
7c2ecfdb5afe40 1f131691f0677b 30e1df0cce8710 f3c52df030e941 b2bb6b650cf2d7
012a5a2d11f1b4 4699b78e898918 977b2e06972b36 674e2619e6be97 93007948f99eee
af2b5b80b81bb3 417446ac93bc16 14fb20c6ab0e24 3ffc77d1672771 36580afea2edec
48942ed95911c5 fa312a7aca8f83 992e36a47ef1db 3937ff39b1a9b5 2af79ef5c48c64
6c88d58111a0b7 b6fa6dc5f7c8dc b1acc64f2b083d 332baac65b4feb e58dae530ad4af
0fbdb072d0ba36 e2607b065b6fe4 f803ae22cb2a6c 9b639dd91166cc f5e430b9cece8c

687c1dc2ac5898 b429122b168f1c 4248f91ae51605 1c24d7f1578ba6 1dec5a6c003598
e3c04b01a812a7 2df7909352cece de31efaffdd0d4 e4a7f11873ec87 4768f7b8d77583
23b6f7bae4521f 8fbf571e568d5a 577ad8b71f3721 718b68ac1ada36 e10689cc83ea91
43f73798b295f7 6e2b078c8d68e5 613c3bb265ca36 d25d07032b8c80 843fe3783b5959
e918f7789f0d33 afac1cb1534684 0fb3c6c442a94b 167f58645b56c2 76132472470129
590ae9be533d39 75adfeba5e6230 30dea290d933d7 08cc4d30a4af39 09bc69be193a2f
f7f8ff9f03af3b 3ad1a453e9dde4 a534709b6e15c7 c6ce7d4efd42e9 5e947977595b68
ca674d0c7541e9 97f178a43b6057 137a6483c7653a 49f1eec3082cc7 70824eb5bebf04

cf95519563f7c7 cef140efdaa431 4f8ddc5fb70009 27710736a485cd 41b05dfead9e7a
dcbf8e83a3a89a 23e46b5a421a08 84f0fb922099a4 120b226eedd549 cf4706582b36f4
e3b718cabb9c11 03db1daab9520a 3a29a8c65c45f6 0219e82dbeb36b b351c498a8dda8
0ba2a5607f3bf6 0b95be14721f63 62d3b4d2b1fc16 f46a95de23a55e b70c2f136e83eb
a0b215f5837e73 d76368870bd5bc 0372cf15e7ff03 c992d958598014 1fb03e9712f2c4
a73b9107699fb2 239ad1d706b5f3 3623dab66fefc1 8b5e04ac40e7ed 77eaadd7c4d35c
b3ba11dde839a2 621e7ab334235d 29f2ed9f1990d9 e0d731952272a4 d31f58d8cfad64
57690ff74579fe e78fb0fe43c6cf b127e3c5c7da88 1765c8883fcd01 dc0028f618172d

07d8f79c0e5b79 bdff41e18ee3b3 0990bd1c710888 b0ef52eb6da5bd b790ff7419e17d
22ab4221d42b9a 35bec4ded01a53 6a2f35fd63b686 db66f3c21b9291 165a5fd321d034
f2ea034bd3a6b6 4d47388e2680b7 018dd250cfd53b 53babaed27080a 73c54d98e4a365
6a77f2e71cfab6 4f9539f7e67a64 c35beaa6ab5528 1698a8ee44d10d 01e623ff7096e8
96a68072d59c56 6baba4b0d232ee 725a1f9e0fbeb1 97728ef73b9a8e 16ecfe23a3bdb6
f035aac743b427 202c094281f68b 1c8be9e39e4591 0959fad0920ae6 15a97f475dc632
a3fc9e9363688a 89cea147f0339b d1ffe6e68570d2 329a0b16c32fa2 cbd5818383dd8f
c26f57abe7c8cd 4d680e55e8a77d feefbd47b284a3 41bc9077e7df69 1c32ea11a0df3c

2ea8501eab0c69 63dff30ea51c9f 8de69a045d957b 4036f90d8e90b7 5886f2e5059e5d
7341e707011eca 8d6006677dabf1 2c6f2040741941 5058a43d3958d2 29eee2b01178b8
eb9e382e6ea2e5 62e44ce8f6b19e a5b4444f78d77d c12755f1de34c7 8fd001eb8d0d91
8a3ece83c541b5 659f736aca9076 1c1864cc5b30f1 1b9f901459a142 f5571fc19f94a3
39e842e17176ca ed2a1659a97f8e 625e74d131b3da bdbdfeaa0366bd 95ebf86c33a687
4a09faea206cd1 29f59174377238 908e6c956350cb 686a225a26548c a45140d1ed5b76
75e9ea2087732c 14dd568be007bf 3668e3791bdd4b 56f9aa39df5785 e7b37c964271c9
c5211e837c726e 374513cd4cd34f a5c71ff1a4195e 4e234c5adc13b4 75093fc66c8faf

2ec02dd6ea2715 d8676bb21e7f0b b4c22ceadbd907 9ccaf78857ea36 a28da605bbf2d8
723651fb07c86a 07039b49d2fa32 40dbb6dc2ef93d da48f7e9d5eb92 45bc6190b3a9e4
fc84b55352b994 25f44b36a3fb83 d09a8f4ab7d78e 0829201a523b21 966e0098395656
5984c4e317d930 581dd2ab677c99 a92a70424c5aae 4ea1dbaca67de1 e45918a0d6d560
1e5c75efdd907f 99a6e56cbb015f 04fd11c8ae4d05 83a72f3e967bb6 2ddf23b892d1e5
d648bbe9e5f8d3 d4b128d667ff6a 781dcd435b03f4 1a1cb99fc298e1 69d80c51941a26
5263476c788bb7 db0b584b59ec8d d95a4e9a6a95c5 5263b0eb0cc8d4 98e62e5116ab09
97564c79d4b733 39d708c3284fb2 d2cd596efe674a a9e3b1f33b4473 70b30aa67c0c2c

3532c9874c8ce5 680a796f9db4b3 64e5825663090f eb0a67604f3f9b 7c4716c88afa20
cecf4b6b1467f8 342600406fe556 200290eea56903 36562b6cff764c b02d3847d68f8f
a26c2ab20fe063 5de36be096db8d ac5998b94e3c17 4c8808ebb9bf53 4bbf0a436470da
d3875253f7b0a9 a99369bfede348 8c3391fd3a5f95 5005f88c89d735 acd8196d21d41b
5ba2ce34f48817 da3e7f4332994f 8cfe88c8ae18af e4df8b64d16e61 b0f200ab8229f9
5a15b4ad681a60 350a1bb85a5708 f5731809fe17da 9da29858778783 e496533ffbda6c
a590c76b953dff edbf61ba227191 f7fd713fd0b4bf 4a5e6df9905845 42ed273f1fee88
e56d34cbb2866d cc76209f9773ec 4c21238f991ec6 7adff263cb22b1 4fb41d94f97f42

f26d90e0b24a1a 37fe90421cee92 5cd69e29e95550 bec2bff0431bc0 6acc812fa97ad4
4f19e44dd33a0e d9280b1ae70cff 6575a036db7f1e 7bf2ed31bcef8e 45dfb49b8dc51d
e1fd10fb1b59b8 092da05f342c0a 01fa56a0375319 c1f5ad03dc627a cb1f2c96f11444
5d67a093467a43 a832f56266f0bf 7a464d7fab7c48 42561af703a045 c1c9b270211af3
edcaf802cfd336 6f9ba5cc39c3dc 585554fa4224ca 4a7216b8d2dd3e 16c2d8b31e6fa9
e9ae301e1bfa98 ac8389842b368a 158c5060209885 c01a2c3f5b7bca d20124920faa1c
a2217820d1fa40 803272c88d1844 c2554237c9ecc8 d25f509a6db1de 325148c1726f18
398c66b1339048 8c8c43dd7f2c26 24cf4ec93ee498 54618829620375 eb494db615a50f

69e1fb949b4215 3e02e353426513 bf6ea2adefdded fbbb781d40e52c d6ebec825d94a0
3f84de44b6fd50 0b466ea0458290 3a77f7804e0c62 b0ce750e2b2078 69f346f188a43a
24ef26f7c284a3 544ea716d5498b 3e1f23b1154dcf 6d5c580dbec7f0 120302c7a16ee0
bae4ae638ee502 60cd112182bd84 dbc443744789a8 7faefcebed3a2c 579c0f77cfa536
0d920b050cb068 fb2fc616ee5eb8 3b7082e645d419 40df3b620a8474 df360190d74ec7
28f0d33396ee1e 3c007bfb335325 ac5c5327fcfbe9 9daecd75584e11 770aecaa7200f5
ef955be6081878 8c906f9fbbd9a8 f16d11b5a2980c f837a8f49c0378 33efbbae308e71
0bda652822a309 8990e49a4320ce 8bf60c5517e853 0b0f2a3d47d09b b07d28e7903ac9

5009b61262ab9c 0161bb90668bf4 a314e46c502058 447250d9698fed c3e4ceaa255d41
5ba4045c2fdba8 17b0720f52e736 0eb0036d8439d0 9e15116b8245e2 3dad88738ceab0
260986d154e9a9 56cd13e67e508e 9895906f7a2bc2 4970647a63ed02 5e192810f2e040
02e7f4cad9b4cb 18d5850dc181a2 05204ea9653f18 2d3b188124823d f9b34ca3d2c93b
2e5ba515010f68 7308114d65f874 acbf4d6286131d 46681d439816a8 15fc07b05c47fe
f0ef6a332c3132 c4630529dd2021 a743a1e9423e63 b12af7fe3d806e 0cb7d03c2afdae
7abe068af28323 fe75b567a2c0c7 069313cf6c1f44 a39aeec0ddcc87 747c3bd20c1471
876af6b8558b0f eb0b357c5d8f97 c64ac9dcac22f2 856e4341b42b50 663b16ec5eb01f

0d31dd990e70cc f7203530ab3d19 6d42eb5412ec69 dc9e4fcaf97880 e0dcd2d94a10fc
b5f39a9e831217 4b084adf9c02c4 d3cabf53a97846 4c331980146846 3c9f7c840833be
b0cb542c3108b1 9dcf7401e6f79a c1f27ed5dd4e0e 509cf69e83c56c 15ca00d43e1758
5948602f5bf14d 1d129ae6b9f4ee 2b58f973ae2956 6a6c792feb0c13 62474058c00758
caab48f22b2e6a ed88328618842d 0418ebd349eb34 846eda10087342 e8b6c21b95cbf9
cc90523ed0cb59 4c9374718e79ca 60c8fa29dd489a 41f2190a03e88f 8ac12bebb17c5e
3195835960d662 2317a3d2d90ead 5f5aeb6d34f4e1 7a39957a01179f 3f88d79fc83f9c
edb1049a771b1e 30a85067c640ed 06cac8047923de 59bdda0f1b1b9d 7a014eaecf61b7

292e8b0f865638 4dc1de3d7f5dda d9b1b7557b4db8 54813ab90c75a3 9b35f03246f1e4
20f760465bc347 0da41ba5991181 a6a49de8fdf505 60b1ea116f81a6 ce2716aa9919a7
e3fce68f208dd3 05d5b9594f643d ded74364c812db 16b6e7e4269696 ad975ff975a727
4d6e503b6ae9a9 9ce664850ed1da a714650763250b 944b7b251c3e6b 0d37d4e4854c4c
06c7e1c3d4b917 5602bc69558908 92f5ddd9a20bbd 84d12a16b5963d d1426dd7f44f09
06cca7d8cd71ba 710072c1b4ea7a ebabe1e8242f72 69960c6c0d5bf3 2084edb90ada1d
235ed7d8a9fe39 3b133ed8a3fec1 132c4509579af1 203ca5447787a5 ca938128fcd756
ca569d31b6f05d edec4129270543 ff17078079c2aa f642caa8568a3b 8d1f6c3bf9b5e7

c947c61701ce12 1a3808b18cb73c d1d7543be23892 9917eefd8b4b7d 0eabef30f24b08
b72c10d49c60a3 c01344f22cc2a2 b97c57f2a37b00 f82a2f9338e520 5a8b9c9ce0dc1d
8a4d7e7260e257 62046c5551c0e9 19811c1011cf28 dc158db4a957c2 b516e794206aa4
4a9e535622d8df bea44b252b2ab8 7284568528acd5 239ab1d64c7025 bad538907922d6
57fb163fcb9eca ad97c1507e480a 78e8cfc81ca935 14eee2413bbe9d e349073d92ab5c
8ed191d530d9af f3a72b6e194e41 d26925b22eb6c5 f709c6088bb419 8527923aa6f4f3
1345fcb8916f88 9f82d7a298174b b0a41e5d16d9d4 28c7eab4098fe2 f34abb591392d4
a5084515586118 71f3fcfcee19ff 180d1b40c23b7c c18c22be085cc3 edeb86d04f3c78

c56c61899b8011 2cf78b1bcd5b77 99247be60f0cdb 4c8a9aa7a58409 e2bf0ad4cfe9b6
f79b501f91d364 5fd2c40e48e881 c650973fb8e681 7c8ae6d3aca02c 7a01c329e3bf17
3b126f2cda1e76 229d405bbc41d3 5e028a9f388566 97e13e1dfee5e2 aa02da00a5271a
be2abd92296fc2 e380153ffa1a5d dc3c184ca2fd9a 8dd7381eccc7e0 55a7fef2252572
76da25ac98ef00 3e12a21d43ef92 28c5f1d9e71a96 b7cd9a47a9c9d8 aaf77a03539742
9f8854a9983a9c 2bcde940d64350 6986616ba3f75f e80cc522c68b65 f03f78b91d9f6c
fdf9170e4ac9f1 c84c3819797def 03bbfca0340880 2893d145bda408 df07456e5388bf
cbadcc8ac22dc9 365807ab820d70 29da8be4c0de87 756ee3a7865bfe 46439df366b70b

ab960b51e728db e2e3c346921e4e 74c6317baa49fb b3efd421fb40bd 979d2df24bca93
98d5bd5de71195 bc030746a50c59 02cf2a4b1b9812 467af79145cfaa 0ed643c7b530e4
181ef7d406026a f6ea606e325377 a302d06af1f7cc c7658f6ae6defa bbe5314d959e1f
bb5757386c8799 8759670183f618 58e0cc3816f883 c113183a0578ee ce5456e86ee96b
c04285b8c56bb1 74e5fb66d586e6 9d8eea215e70c8 f4a00feb7bc2f6 369c2bf470063d
5b267be08f0594 c26fb2440b1ac6 8610ef5a140769 bb3d5b50a536d4 df6c30bc09f971
74e572ca84d171 2deb91e812d860 b17ac9ae5be211 c95a0e3f542c78 46397245b13a99
1806ab9ceb6646 1b4161b0ec2edc fc536e2a24abf8 9f7207bf519f1b abf95b0d0d3cae

d9e17ba1bf7678 6526f524fad677 ec243ad271d0cb 9b1c06cf737605 0a36697c74beaa
fa0f0056a6bd7e 9f2d03db497a93 027d76e6e8692a 72ceb29c5913a7 55eb297dae3330
eb676e7345fb39 7021192efd5b47 462906905e7511 e005f52fd8da5e 1288c01960d735
3460b18eafd2d8 faa9b1c3caf426 5035e585d9fd2d 85636dff1d4e42 600c4b7f664267
02b21e6a8c7a03 79ce25c264e2f4 035a7f32c227ea bf8f711445a7d7 d0b5e3b336f71e
c454a416321483 bdc1a7a9d20dea e1ee4744e83143 5b6969f2864529 17a6b42d6346ab
ff0fb6edf2265a ba75b0991f6dfb 6638c1d7243ff8 e7806af6600486 dfe3bc58f31717
b0c4adc2717922 c11abff0b4a290 43598e076f60be 2ef17ad2f77605 3a41a09d974da6

ee787846e7ff26 ce05d869fecf18 fde916d95f9357 4c1b4dd723b90d b1f024400d61a2
f51dfebc71b770 461e7f725d9637 2b1587ff40035e a2cafbcd0c6b17 2e9efaf6986045
80e339a823ea56 febfaa02609bb2 a33955624e1602 a137b84639ef0c 6e2ecf420a6d6b
69f13acbea8f97 b4d36c41e3a867 1352aee4798c08 e3ec254ddf35cb ab600d90f13919
d00cc1d401fd2c 1c629e621756d2 090f8d6e0895fa 701bd1b0a355ce a53c7c91b15eb4
dd8579d4dd92e4 03d1c960c63d55 215a8fbc09cc85 59c1e6069b6dd1 a0428bfb223cca
46d131153e9982 c5dab0c9ffb93d 682db866d6503c a481c48384a087 a417c564567258
2ec7b9722b5c5f 2d491f9cf79086 30cd268b1088d0 f02e69b1441963 d9841b5339d18f

a26deb7b957527 337f3bd67d3c51 e6839a4d5fe4cf 1619c18889be68 d971f0f57d1016
56213ebf152a2d 9c0e0394832c92 9e6fc90ca28ba5 9c5151dfbb8394 f49fe4cf2a3f7a
97f4db054b2b34 2a4c21abf6406f eb941a80bee3f8 7615468e80e77a 0f935ebe8e8842
959f2b3ba1f50c d6bc8b614e39de 3c43d13746983a 7956e617131247 56de3547cf1010
c16d5d1fce2bcc 3e73e5ef9fd691 1211c1a27803ad f1c9644aac4ba2 8d67134e3be189
d8aee617c607cb f62677b30d8ece e7df69402b2291 6ec102f220e09f a6223e874c3e53
fb474983ebdb9f 806832bde2f4e6 7c25ef688134b3 4aadca3409a6b3 bdccd638f3b19a
2b01f18625fdd1 0f5e91c28af081 f28e4dcd9077cd 9229d87caebbfb 072b846b4d2ce0

fd7a25e195d67a ec9546899268d2 ff3068a2e9d0c2 af9f2fc2de9978 01b47566d0faef
fc5a8eab966720 4b981c9fe7ff10 b4a0aa0873484e 25a8b544ed8801 c72530c2e5d37f
94b0483e74e4fa bc5ac97d82cd68 1a23d34cce0d52 6e4d17a8475b19 63493b14551149
d36db24ae5ced3 a24a53ea6aada0 230cbe502aa32e 2aa07485f281e6 66777be0d719c7
5d3ab65be78916 06076f42e71bd2 273e56dd3eccfd 5ef1c9394b6a9e 42f1f49590ffa2
1e6ab6994e56a8 8d54a339e301c2 efff698c46e74e 6721df7c5334d0 f36cf6a93bf3ff
91d8979d8fe631 321dc8b5eccceb a237eb1423c395 4623a16cc50b79 83f616f60d8114
32c15a65536b82 e4a00d384d99cd 369206bbef6fb4 42a720e294a9e4 768a1c77e94dac

31d4798dffbd75 da46bbd77e908b 0fc027a69fcccc 4204ee745159f5 c14155873d42b2
7ce0c031527eae 22fb1c9d6da9a7 33c940531510c9 d938e52464ce71 385b73fa95a2d3
597bf6362dd268 f9901921654409 7c8d064cd5b4ea 80e8fe2f1b3288 ee188609ef2cdf
beee34a1c48fe2 459cefca35857f 33b5320fbbca79 7789297027b6a4 f1debe5a09d013
fd5d818a56bf63 19a092fb1ec45c 526f5d3ff64331 9b8295291aef56 d6963c3a92c34c
065482a033fbbb 9b9ab43410d764 44ebbd99c86a86 4c087234311b85 db6e5a803ba13f
760c159ce2a619 d58d83243fe0ba 1c1e5e83aa79b5 75c8bbae9baabf 2ed91bdb632ae8
8e46b443cfffe5 afa4f53f148577 0be538701c4afa 3fd89c44ef7ced 060dcdc21e9368

0a5b9e2ba4a53b 63db0419a96d30 f68e038377a61e aa15b78389ec74 5f532809ff80f1
f2892acc49ca4e e2d68174c08e81 378254a38f5138 0b060222bb20b1 8013f6f4745c47
ef08e87e2c197d b69d5ddaadf417 7bc66fe482b730 f4bd76d3bb1dfc 09492b63f2935b
43875dd685ab00 e15a528f666486 aad1fac042ef90 b3bb7b8ef9c2e9 c78967b9392a1c
2f05fd5ca0230b 1008345afdd18c dac73c313ace60 346d535e500b62 12e6357496459b
ecccdac5a34926 3b880f7098608f e66c3352a9cdd6 049b176ff1a04d 897d9569948066
806230e9740d6e 179ebf2b7952ab 3a2c5079b5bbea 73261b85c35fb1 5b917dc1bf7e57
9c55b95581c1d5 e1fb86e6219639 c72a22d8404448 95dc5d7b966027 457f3fec730d5d

469cd82a2b3cec 021d9de560b8d6 85b4d126933886 c8265dafb87325 8741d99af7f420
1329e52d3e66f8 7d37c458a6ad05 1241c5ccbc355b 7fdcad3c3c269d 05f04a0a23acc7
ce076aba97cc18 74b36afc4645b2 cd7adaad8f5b91 bd0651649dc722 3d9b6437c667fb
6827ec09eed45e 8ad6102faa934f 1a80658c0bfe1e ef1749235ab59f 75478ad5949a06
49ce6e19841851 8df41dc39cc628 bd9dc9bec89c8b 7771a21fe8028c 65082929b051f3
c657798a3aebd1 ce9c37c494cfc8 156efce8330e42 d0d95860d39040 dfb0fb66f814c4
4b421540a0aece 9e767cbf7e9c49 eeea5b5c866a9e e2026ca4bfb067 ec9fff1a5d41c0
290ed4da32d333 65208d00dba471 99e1d15a83b736 5585401976a265 1668daeb4aad72

cdabffa646baca 7a6c7bb29875f7 1a87a53a2139c1 1ecf7ae823158a b1087bf595f7f2
d8e668fe076e4e b0794cf137a863 81e2a419a320ac 8090b1d39e5171 813903d5f1a68c
ba31f8211e56bb 52413eefa30a66 af88d053eb8a4a 4d2235fdb9bf91 69a947973d3ed3
0dbcf583c26ffd b6bfbee58458b7 5a12f3e625e5d8 53ae22c2b1bc6a 8e6f7e7bbde691
2b692a6746d3be 686438e4ac66e4 aa77be21178471 36aed3fc3ff079 8c9373ebb1c2f7
bb99fd5bfaebc1 665902d08610e8 8af0db91b80b6e 00d4995f9a6ce8 1d503d26442bd9
e61b181dfd0949 2a02f5075a277e 76caa7ddc435fe 5cedae4cae7a57 4b5f7c58c4f214
1446a05c1023ab 459c93a9f5ad37 1ea5f5aa4060b2 a48215350fcd60 ac21e2a4729a51

f18cf87ecf430f 0fd48c241ac6bc 33964cd2e3d9ec 8bebeffc2e848e bb84a5c2ea9b0e
311f20ff7ce601 752573f4effe98 79dbe4d184dce5 6bb04def99d322 7d2d5f23c2475b
7f93f7dbddf04e fff303e751fffe 08d205f8999a3d 5750d14f75e056 1107a3f96ca8e9
f62b50c8ad9f20 53e7fcc55d72d8 6345dec1054cb6 01d52c21dc654a aa0bd78e39c594
2265b675381cd5 57cc03dd65f821 1fa373049059a8 9885886b48085f 8357ab98192a14
5bb6cfbf84048b 5cf862f25ff6ab c9382e36ab2dbd 2357b5ade91fcf 2db77558ceef24
d4a0cb3ba50a2a 12c3cb633dfe47 db805410168807 a5e635ac766e1a 25252810f49fad
cae296fce18ed4 b9932d5822c519 4b7006cc54ea84 2546d761d284cf 2346d0a11b1ed9

81ce0d028c4474 c8002fd0315372 8670db1a6ad6eb 4c7f942260e9c9 822bb2c423cc53
e3b67febea3672 59c24223d913c3 6f4b196f69400f 51bfb6cc7f3603 fb9fbef84ffaf4
7c1632636806f6 a50ec42076931f f68b2be9e5e7ad 7603302a518bd4 d7cd9bb97ffa3c
acf1faaebf7412 f55d55d548bd86 5b34112ed53d06 1b58692e1e33b7 cc7e3cb6d32fe2
8f7b35c14a744f 9a4ed599399554 8eb369e71641af d4a6d1a5c74123 8cc7ec376acf04
ec0a470647b248 2fd9e8eea1f10e 94439285677960 4d11f6e6a426e0 06378817230b68
ec14f2df152cb7 199a8c0bd5f05d ecad5aab44ac2b ca87ab2ba6e905 69c0bf2acdb36c
d66279737bc807 4dd946eb19d81b 4e9c473b5e9846 5a016f7ca86f9d d02c2b7dca744a