From 422eae3e81c6691f3261e4ecc2b1a19d426f9df3 Mon Sep 17 00:00:00 2001 From: dkavanagh Date: Wed, 12 May 2010 18:13:27 +0000 Subject: [PATCH] a scan widget you can include in your iPhone app. Test app coming shortly. git-svn-id: https://zxing.googlecode.com/svn/trunk@1353 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- iphone/ZXingWidget/AddContactAction.h | 51 + iphone/ZXingWidget/AddContactAction.m | 224 ++ .../ZXingWidget/BookmarkDoCoMoResultParser.h | 29 + .../ZXingWidget/BookmarkDoCoMoResultParser.m | 49 + iphone/ZXingWidget/BusinessCardParsedResult.h | 41 + iphone/ZXingWidget/BusinessCardParsedResult.m | 84 + iphone/ZXingWidget/CallAction.h | 36 + iphone/ZXingWidget/CallAction.m | 67 + iphone/ZXingWidget/Decoder.h | 49 + iphone/ZXingWidget/Decoder.mm | 267 ++ iphone/ZXingWidget/DecoderDelegate.h | 34 + iphone/ZXingWidget/DoCoMoResultParser.h | 38 + iphone/ZXingWidget/DoCoMoResultParser.m | 114 + iphone/ZXingWidget/EmailAction.h | 34 + iphone/ZXingWidget/EmailAction.m | 68 + iphone/ZXingWidget/EmailDoCoMoResultParser.h | 29 + iphone/ZXingWidget/EmailDoCoMoResultParser.m | 50 + iphone/ZXingWidget/EmailParsedResult.h | 37 + iphone/ZXingWidget/EmailParsedResult.m | 74 + iphone/ZXingWidget/FormatReader.h | 37 + iphone/ZXingWidget/FormatReader.mm | 64 + iphone/ZXingWidget/GeoParsedResult.h | 34 + iphone/ZXingWidget/GeoParsedResult.m | 59 + iphone/ZXingWidget/GeoResultParser.h | 29 + iphone/ZXingWidget/GeoResultParser.m | 43 + .../GrayBytesMonochromeBitmapSource.cpp | 50 + .../GrayBytesMonochromeBitmapSource.h | 51 + iphone/ZXingWidget/MeCardParser.h | 29 + iphone/ZXingWidget/MeCardParser.m | 54 + iphone/ZXingWidget/MultiFormatReader.mm | 42 + iphone/ZXingWidget/NSString+HTML.h | 32 + iphone/ZXingWidget/NSString+HTML.m | 70 + iphone/ZXingWidget/OpenUrlAction.h | 42 + iphone/ZXingWidget/OpenUrlAction.m | 82 + iphone/ZXingWidget/OverlayView.h | 40 + iphone/ZXingWidget/OverlayView.m | 166 ++ iphone/ZXingWidget/ParsedResult.h | 35 + iphone/ZXingWidget/ParsedResult.m | 104 + iphone/ZXingWidget/PlainEmailResultParser.h | 30 + iphone/ZXingWidget/PlainEmailResultParser.m | 40 + iphone/ZXingWidget/ResultAction.h | 32 + iphone/ZXingWidget/ResultAction.m | 36 + iphone/ZXingWidget/ResultParser.h | 31 + iphone/ZXingWidget/ResultParser.m | 66 + iphone/ZXingWidget/SMSAction.h | 34 + iphone/ZXingWidget/SMSAction.m | 85 + iphone/ZXingWidget/SMSParsedResult.h | 36 + iphone/ZXingWidget/SMSParsedResult.m | 65 + iphone/ZXingWidget/SMSResultParser.h | 29 + iphone/ZXingWidget/SMSResultParser.m | 78 + iphone/ZXingWidget/SMSTOResultParser.h | 29 + iphone/ZXingWidget/SMSTOResultParser.m | 57 + iphone/ZXingWidget/ShowMapAction.h | 34 + iphone/ZXingWidget/ShowMapAction.m | 68 + iphone/ZXingWidget/TelParsedResult.h | 33 + iphone/ZXingWidget/TelParsedResult.m | 58 + iphone/ZXingWidget/TelResultParser.h | 29 + iphone/ZXingWidget/TelResultParser.m | 44 + iphone/ZXingWidget/TextParsedResult.h | 34 + iphone/ZXingWidget/TextParsedResult.m | 58 + iphone/ZXingWidget/TextResultParser.h | 30 + iphone/ZXingWidget/TextResultParser.m | 36 + iphone/ZXingWidget/TwoDDecoderResult.h | 35 + iphone/ZXingWidget/TwoDDecoderResult.m | 52 + iphone/ZXingWidget/URIParsedResult.h | 45 + iphone/ZXingWidget/URIParsedResult.m | 87 + iphone/ZXingWidget/URLResultParser.h | 30 + iphone/ZXingWidget/URLResultParser.m | 80 + iphone/ZXingWidget/URLTOResultParser.h | 29 + iphone/ZXingWidget/URLTOResultParser.m | 54 + .../ZXingWidget.xcodeproj/dkavanagh.mode1v3 | 1464 ++++++++++ .../ZXingWidget.xcodeproj/dkavanagh.pbxuser | 2560 +++++++++++++++++ .../ZXingWidget.xcodeproj/project.pbxproj | 1184 ++++++++ iphone/ZXingWidget/ZXingWidgetController.h | 47 + iphone/ZXingWidget/ZXingWidgetController.m | 163 ++ iphone/ZXingWidget/ZXingWidget_Prefix.pch | 7 + iphone/ZXingWidget/beep-beep.caf | Bin 0 -> 518418 bytes 77 files changed, 9347 insertions(+) create mode 100644 iphone/ZXingWidget/AddContactAction.h create mode 100644 iphone/ZXingWidget/AddContactAction.m create mode 100644 iphone/ZXingWidget/BookmarkDoCoMoResultParser.h create mode 100644 iphone/ZXingWidget/BookmarkDoCoMoResultParser.m create mode 100644 iphone/ZXingWidget/BusinessCardParsedResult.h create mode 100644 iphone/ZXingWidget/BusinessCardParsedResult.m create mode 100644 iphone/ZXingWidget/CallAction.h create mode 100644 iphone/ZXingWidget/CallAction.m create mode 100644 iphone/ZXingWidget/Decoder.h create mode 100644 iphone/ZXingWidget/Decoder.mm create mode 100644 iphone/ZXingWidget/DecoderDelegate.h create mode 100644 iphone/ZXingWidget/DoCoMoResultParser.h create mode 100644 iphone/ZXingWidget/DoCoMoResultParser.m create mode 100644 iphone/ZXingWidget/EmailAction.h create mode 100644 iphone/ZXingWidget/EmailAction.m create mode 100644 iphone/ZXingWidget/EmailDoCoMoResultParser.h create mode 100644 iphone/ZXingWidget/EmailDoCoMoResultParser.m create mode 100644 iphone/ZXingWidget/EmailParsedResult.h create mode 100644 iphone/ZXingWidget/EmailParsedResult.m create mode 100644 iphone/ZXingWidget/FormatReader.h create mode 100644 iphone/ZXingWidget/FormatReader.mm create mode 100644 iphone/ZXingWidget/GeoParsedResult.h create mode 100644 iphone/ZXingWidget/GeoParsedResult.m create mode 100644 iphone/ZXingWidget/GeoResultParser.h create mode 100644 iphone/ZXingWidget/GeoResultParser.m create mode 100644 iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.cpp create mode 100644 iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.h create mode 100644 iphone/ZXingWidget/MeCardParser.h create mode 100644 iphone/ZXingWidget/MeCardParser.m create mode 100644 iphone/ZXingWidget/MultiFormatReader.mm create mode 100644 iphone/ZXingWidget/NSString+HTML.h create mode 100644 iphone/ZXingWidget/NSString+HTML.m create mode 100644 iphone/ZXingWidget/OpenUrlAction.h create mode 100644 iphone/ZXingWidget/OpenUrlAction.m create mode 100755 iphone/ZXingWidget/OverlayView.h create mode 100755 iphone/ZXingWidget/OverlayView.m create mode 100644 iphone/ZXingWidget/ParsedResult.h create mode 100644 iphone/ZXingWidget/ParsedResult.m create mode 100644 iphone/ZXingWidget/PlainEmailResultParser.h create mode 100644 iphone/ZXingWidget/PlainEmailResultParser.m create mode 100644 iphone/ZXingWidget/ResultAction.h create mode 100644 iphone/ZXingWidget/ResultAction.m create mode 100644 iphone/ZXingWidget/ResultParser.h create mode 100644 iphone/ZXingWidget/ResultParser.m create mode 100644 iphone/ZXingWidget/SMSAction.h create mode 100644 iphone/ZXingWidget/SMSAction.m create mode 100644 iphone/ZXingWidget/SMSParsedResult.h create mode 100644 iphone/ZXingWidget/SMSParsedResult.m create mode 100644 iphone/ZXingWidget/SMSResultParser.h create mode 100644 iphone/ZXingWidget/SMSResultParser.m create mode 100644 iphone/ZXingWidget/SMSTOResultParser.h create mode 100644 iphone/ZXingWidget/SMSTOResultParser.m create mode 100644 iphone/ZXingWidget/ShowMapAction.h create mode 100644 iphone/ZXingWidget/ShowMapAction.m create mode 100644 iphone/ZXingWidget/TelParsedResult.h create mode 100644 iphone/ZXingWidget/TelParsedResult.m create mode 100644 iphone/ZXingWidget/TelResultParser.h create mode 100644 iphone/ZXingWidget/TelResultParser.m create mode 100644 iphone/ZXingWidget/TextParsedResult.h create mode 100644 iphone/ZXingWidget/TextParsedResult.m create mode 100644 iphone/ZXingWidget/TextResultParser.h create mode 100644 iphone/ZXingWidget/TextResultParser.m create mode 100644 iphone/ZXingWidget/TwoDDecoderResult.h create mode 100644 iphone/ZXingWidget/TwoDDecoderResult.m create mode 100644 iphone/ZXingWidget/URIParsedResult.h create mode 100644 iphone/ZXingWidget/URIParsedResult.m create mode 100644 iphone/ZXingWidget/URLResultParser.h create mode 100644 iphone/ZXingWidget/URLResultParser.m create mode 100644 iphone/ZXingWidget/URLTOResultParser.h create mode 100644 iphone/ZXingWidget/URLTOResultParser.m create mode 100644 iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.mode1v3 create mode 100644 iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.pbxuser create mode 100644 iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj create mode 100755 iphone/ZXingWidget/ZXingWidgetController.h create mode 100755 iphone/ZXingWidget/ZXingWidgetController.m create mode 100644 iphone/ZXingWidget/ZXingWidget_Prefix.pch create mode 100644 iphone/ZXingWidget/beep-beep.caf diff --git a/iphone/ZXingWidget/AddContactAction.h b/iphone/ZXingWidget/AddContactAction.h new file mode 100644 index 000000000..ac6af6f8e --- /dev/null +++ b/iphone/ZXingWidget/AddContactAction.h @@ -0,0 +1,51 @@ +// +// AddContactAction.h +// ZXing +// +// Created by Christian Brunschen on 29/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultAction.h" +#import "AddressBookUI/AddressBookUI.h" + +@interface AddContactAction : ResultAction { + NSString *name; + NSArray *phoneNumbers; + NSString *note; + NSString *email; + NSString *urlString; + NSString *address; + + UIViewController *viewController; +} + +@property (nonatomic, copy) NSString *name; +@property (nonatomic, retain) NSArray *phoneNumbers; +@property (nonatomic, copy) NSString *note; +@property (nonatomic, copy) NSString *email; +@property (nonatomic, copy) NSString *urlString; +@property (nonatomic, copy) NSString *address; + ++ (id)actionWithName:(NSString *)n + phoneNumbers:(NSArray *)nums + email:(NSString *)em + url:(NSString *)us + address:(NSString *)ad + note:(NSString *)nt; + +@end diff --git a/iphone/ZXingWidget/AddContactAction.m b/iphone/ZXingWidget/AddContactAction.m new file mode 100644 index 000000000..393091384 --- /dev/null +++ b/iphone/ZXingWidget/AddContactAction.m @@ -0,0 +1,224 @@ +// +// AddContactAction.m +// ZXing +// +// Created by Christian Brunschen on 29/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "AddContactAction.h" +#import "AddressBook/AddressBook.h" + + +@implementation AddContactAction + +@synthesize name; +@synthesize phoneNumbers; +@synthesize note; +@synthesize email; +@synthesize urlString; +@synthesize address; + ++ (id)actionWithName:(NSString *)n + phoneNumbers:(NSArray *)nums + email:(NSString *)em + url:(NSString *)us + address:(NSString *)ad + note:(NSString *)nt { + AddContactAction *aca = [[[self alloc] init] autorelease]; + aca.name = n; + aca.phoneNumbers = nums; + aca.email = em; + aca.urlString = us; + aca.address = ad; + aca.note = nt; + return aca; +} + +- (NSString *)title { + return NSLocalizedString(@"AddContactAction title", @"Add Contact"); +} + +- (void) addContactWithController:(UIViewController *)controller { + CFErrorRef *error = NULL; + NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet]; + + ABRecordRef person = ABPersonCreate(); + + NSRange commaRange = [name rangeOfString:@","]; + if (commaRange.location != NSNotFound) { + NSString *lastName = [[name substringToIndex:commaRange.location] + stringByTrimmingCharactersInSet:whitespaceSet]; + ABRecordSetValue(person, kABPersonLastNameProperty, lastName, error); + NSArray *firstNames = [[[name substringFromIndex:commaRange.location + commaRange.length] + stringByTrimmingCharactersInSet:whitespaceSet] + componentsSeparatedByCharactersInSet:whitespaceSet]; + ABRecordSetValue(person, kABPersonFirstNameProperty, [firstNames objectAtIndex:0], error); + for (int i = 1; i < [firstNames count]; i++) { + ABRecordSetValue(person, kABPersonMiddleNameProperty, [firstNames objectAtIndex:1], error); + } + } else { + NSArray *nameParts = [name componentsSeparatedByCharactersInSet:whitespaceSet]; + int nParts = nameParts.count; + if (nParts == 1) { + ABRecordSetValue(person, kABPersonFirstNameProperty, name, error); + } else if (nParts >= 2) { + int lastPart = nParts - 1; + ABRecordSetValue(person, kABPersonFirstNameProperty, [nameParts objectAtIndex:0], error); + for (int i = 1; i < lastPart; i++) { + ABRecordSetValue(person, kABPersonMiddleNameProperty, [nameParts objectAtIndex:i], error); + } + ABRecordSetValue(person, kABPersonLastNameProperty, [nameParts objectAtIndex:lastPart], error); + } + } + + if (self.note) { + ABRecordSetValue(person, kABPersonNoteProperty, self.note, error); + } + + if (self.phoneNumbers && self.phoneNumbers.count > 0) { + // multi-values: nultiple phone numbers + ABMutableMultiValueRef phoneNumberMultiValue = + ABMultiValueCreateMutable(kABStringPropertyType); + for (NSString *number in self.phoneNumbers) { + ABMultiValueAddValueAndLabel(phoneNumberMultiValue, number, + kABPersonPhoneMainLabel, NULL); + } + ABRecordSetValue(person, kABPersonPhoneProperty, + phoneNumberMultiValue, error); + CFRelease(phoneNumberMultiValue); + } + + if (self.email) { + // a single email address + ABMutableMultiValueRef emailMultiValue = + ABMultiValueCreateMutable(kABStringPropertyType); + ABMultiValueAddValueAndLabel(emailMultiValue, self.email, + kABHomeLabel, NULL); + ABRecordSetValue(person, kABPersonEmailProperty, emailMultiValue, error); + CFRelease(emailMultiValue); + } + + if (self.urlString) { + // a single url as the home page + ABMutableMultiValueRef urlMultiValue = + ABMultiValueCreateMutable(kABStringPropertyType); + ABMultiValueAddValueAndLabel(urlMultiValue, self.urlString, + kABPersonHomePageLabel, NULL); + ABRecordSetValue(person, kABPersonURLProperty, urlMultiValue, error); + CFRelease(urlMultiValue); + } + + if (self.address) { + // we can't parse all the possible address formats, alas, so we punt by putting + // the entire thing into a multi-line 'street' address. + // This won't look great on the phone, but at least the info will be there, + // and can be syned to a desktop computer, adjusted as necessary, and so on. + + // split the address into parts at each comma or return + NSArray *parts = + [self.address componentsSeparatedByCharactersInSet: + [NSCharacterSet characterSetWithCharactersInString:@",;\r\n"]]; + NSMutableArray *strippedParts = [NSMutableArray arrayWithCapacity:[parts count]]; + // for each part: + for (NSString *part in parts) { + // strip the part of whitespace + NSString *strippedPart = + [part stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; + if ([strippedPart length] > 0) { + // if there is anything in this address part, add it to the list of stripped parts + [strippedParts addObject:strippedPart]; + } + } + // finally, create a 'street' address by concatenating all the stripped parts, separated by linefeeds + NSString *street = [strippedParts componentsJoinedByString:@"\n"]; + + CFMutableDictionaryRef addressDict = + CFDictionaryCreateMutable(NULL, + 1, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); + CFDictionarySetValue(addressDict, kABPersonAddressStreetKey, street); + + ABMutableMultiValueRef addressMultiValue = + ABMultiValueCreateMutable(kABStringPropertyType); + ABMultiValueAddValueAndLabel(addressMultiValue, + addressDict, + kABHomeLabel, + NULL); + ABRecordSetValue(person, kABPersonAddressProperty, addressMultiValue, error); + CFRelease(addressMultiValue); + CFRelease(addressDict); + } + + ABUnknownPersonViewController *unknownPersonViewController = + [[ABUnknownPersonViewController alloc] init]; + unknownPersonViewController.displayedPerson = person; + unknownPersonViewController.allowsActions = true; + unknownPersonViewController.allowsAddingToAddressBook = true; + unknownPersonViewController.unknownPersonViewDelegate = self; + CFRelease(person); + + viewController = [controller retain]; + [[viewController navigationController] pushViewController:unknownPersonViewController animated:YES]; + [unknownPersonViewController release]; +} + +- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { + if (buttonIndex != [alertView cancelButtonIndex]) { + // perform the action + [self addContactWithController:viewController]; + } +} + +#ifdef CONFIRM_ADDING_CONTACT +#undef CONFIRM_ADDING_CONTACT +#endif +- (void)performActionWithController:(UIViewController *)controller + shouldConfirm:(bool)confirm { +#ifdef CONFIRM_ADDING_CONTACT + if (confirm) { + viewController = controller; + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil + message:NSLocalizedString(@"AddContactAction alert message", @"Add Contact?") + delegate:self + cancelButtonTitle:NSLocalizedString(@"AddContactAction cancel button title", @"Cancel") + otherButtonTitles:NSLocalizedString(@"AddContactAction confirm button title", @"Add Contact"), nil]; + [alertView show]; + [alertView release]; + } else { +#endif + [self addContactWithController:controller]; +#ifdef CONFIRM_ADDING_CONTACT + } +#endif +} + +- (void)dismissUnknownPersonViewController:(ABUnknownPersonViewController *)unknownPersonViewController { + [[viewController navigationController] popToViewController:viewController animated:YES]; + [viewController release]; + viewController = nil; +} + +// ABUnknownPersonViewControllerDelegate + +- (void)unknownPersonViewController:(ABUnknownPersonViewController *)unknownPersonViewController + didResolveToPerson:(ABRecordRef)person { + if (person) { + [self performSelector:@selector(dismissUnknownPersonViewController:) withObject:unknownPersonViewController afterDelay:0.0]; + } +} +@end diff --git a/iphone/ZXingWidget/BookmarkDoCoMoResultParser.h b/iphone/ZXingWidget/BookmarkDoCoMoResultParser.h new file mode 100644 index 000000000..08582e6e5 --- /dev/null +++ b/iphone/ZXingWidget/BookmarkDoCoMoResultParser.h @@ -0,0 +1,29 @@ +// +// BookmarkDoCoMoResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "DoCoMoResultParser.h" + +@interface BookmarkDoCoMoResultParser : DoCoMoResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/BookmarkDoCoMoResultParser.m b/iphone/ZXingWidget/BookmarkDoCoMoResultParser.m new file mode 100644 index 000000000..7c5f47d4c --- /dev/null +++ b/iphone/ZXingWidget/BookmarkDoCoMoResultParser.m @@ -0,0 +1,49 @@ +// +// BookmarkDoCoMoResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "BookmarkDoCoMoResultParser.h" +#import "URIParsedResult.h" + +@implementation BookmarkDoCoMoResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange foundRange = [s rangeOfString:@"MEBKM:"]; + if (foundRange.location == NSNotFound) { + return nil; + } + + NSString *urlString = [s fieldWithPrefix:@"URL:"]; + if (urlString == nil) { + return nil; + } + + NSString *title = [s fieldWithPrefix:@"TITLE:"]; + + return [[[URIParsedResult alloc] initWithURLString:urlString + title:title] autorelease]; +} + + +@end diff --git a/iphone/ZXingWidget/BusinessCardParsedResult.h b/iphone/ZXingWidget/BusinessCardParsedResult.h new file mode 100644 index 000000000..8e7482e4c --- /dev/null +++ b/iphone/ZXingWidget/BusinessCardParsedResult.h @@ -0,0 +1,41 @@ +// +// AddressBookDoCoMoParsedResult.h +// ZXing +// +// Created by Christian Brunschen on 29/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ParsedResult.h" + +@interface BusinessCardParsedResult : ParsedResult { + NSString *name; + NSArray *phoneNumbers; + NSString *note; + NSString *email; + NSString *urlString; + NSString *address; +} + +@property (nonatomic, copy) NSString *name; +@property (nonatomic, retain) NSArray *phoneNumbers; +@property (nonatomic, copy) NSString *note; +@property (nonatomic, copy) NSString *email; +@property (nonatomic, copy) NSString *urlString; +@property (nonatomic, copy) NSString *address; + +@end diff --git a/iphone/ZXingWidget/BusinessCardParsedResult.m b/iphone/ZXingWidget/BusinessCardParsedResult.m new file mode 100644 index 000000000..ce018df0e --- /dev/null +++ b/iphone/ZXingWidget/BusinessCardParsedResult.m @@ -0,0 +1,84 @@ +// +// AddressBookDoCoMoParsedResult.m +// ZXing +// +// Created by Christian Brunschen on 29/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "BusinessCardParsedResult.h" +#import "AddContactAction.h" + +@implementation BusinessCardParsedResult + +@synthesize name; +@synthesize phoneNumbers; +@synthesize note; +@synthesize email; +@synthesize urlString; +@synthesize address; + +- (NSString *)stringForDisplay { + NSMutableString *result = [NSMutableString stringWithString:self.name]; + if (self.phoneNumbers) { + for (NSString *number in self.phoneNumbers) { + [result appendFormat:@"\n%@", number]; + } + } + + if (self.email) { + [result appendFormat:@"\n%@", self.email]; + } + if (self.urlString) { + [result appendFormat:@"\n%@", self.urlString]; + } + if (self.note) { + [result appendFormat:@"\n%@", self.note]; + } + if (self.address) { + [result appendFormat:@"\n%@", self.address]; + } + return [NSString stringWithString:result]; +} + +- (void)populateActions { + [actions addObject:[AddContactAction actionWithName:self.name + phoneNumbers:self.phoneNumbers + email:self.email + url:self.urlString + address:self.address + note:self.note]]; +} + +- (void) dealloc { + [name release]; + [phoneNumbers release]; + [email release]; + [urlString release]; + [address release]; + [note release]; + [super dealloc]; +} + ++ (NSString *)typeName { + return NSLocalizedString(@"Contact Result Type Name", @"Contact"); +} + +- (UIImage *)icon { + return [UIImage imageNamed:@"business-card.png"]; +} + +@end diff --git a/iphone/ZXingWidget/CallAction.h b/iphone/ZXingWidget/CallAction.h new file mode 100644 index 000000000..becd8683b --- /dev/null +++ b/iphone/ZXingWidget/CallAction.h @@ -0,0 +1,36 @@ +// +// CallAction.h +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "OpenUrlAction.h" + +@interface CallAction : OpenUrlAction { + NSString *number; +} + +@property (nonatomic, copy) NSString *number; + ++ (NSURL *)urlForNumber:(NSString *)number; + +- (id)initWithNumber:(NSString *)number; ++ (id)actionWithNumber:(NSString *)number; + +@end diff --git a/iphone/ZXingWidget/CallAction.m b/iphone/ZXingWidget/CallAction.m new file mode 100644 index 000000000..e6acc789e --- /dev/null +++ b/iphone/ZXingWidget/CallAction.m @@ -0,0 +1,67 @@ +// +// CallAction.m +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "CallAction.h" + + +@implementation CallAction + +@synthesize number; + ++ (NSURL *)urlForNumber:(NSString *)number { + NSString *urlString = [NSString stringWithFormat:@"tel:%@", number]; + return [NSURL URLWithString:urlString]; +} + +- (id)initWithNumber:(NSString *)n { + if ((self = [super initWithURL:[[self class] urlForNumber:n]]) != nil) { + self.number = n; + } + return self; +} + ++ (id)actionWithNumber:(NSString *)number { + return [[[self alloc] initWithNumber:number] autorelease]; +} + +- (NSString *)title { + return [NSString localizedStringWithFormat:NSLocalizedString(@"CallAction action title", @"Call %@"), self.number]; +} + +- (NSString *)alertTitle { + return NSLocalizedString(@"CallAction alert title", @"Call"); +} + +- (NSString *)alertMessage { + return [NSString localizedStringWithFormat:NSLocalizedString(@"CallAction alert message", @"Call %@?"), self.number]; +} + +- (NSString *)alertButtonTitle { + return NSLocalizedString(@"CallAction alert button title", @"Call"); +} + + +- (void) dealloc { + [number release]; + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/Decoder.h b/iphone/ZXingWidget/Decoder.h new file mode 100644 index 000000000..4b28141f8 --- /dev/null +++ b/iphone/ZXingWidget/Decoder.h @@ -0,0 +1,49 @@ +// +// Decoder.h +// ZXing +// +// Created by Christian Brunschen on 31/03/2008. +// +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "DecoderDelegate.h" + +@interface Decoder : NSObject { + UIImage *image; + CGRect cropRect; + UIImage *subsetImage; + unsigned char *subsetData; + size_t subsetWidth; + size_t subsetHeight; + size_t subsetBytesPerRow; + id delegate; +} + +@property(nonatomic, retain) UIImage *image; +@property(nonatomic, assign) CGRect cropRect; +@property(nonatomic, retain) UIImage *subsetImage; +@property(nonatomic, assign) unsigned char *subsetData; +@property(assign) size_t subsetWidth; +@property(assign) size_t subsetHeight; +@property(assign) size_t subsetBytesPerRow; +@property(nonatomic, assign) id delegate; + +- (void) decodeImage:(UIImage *)image; +- (void) decodeImage:(UIImage *)image cropRect:(CGRect)cropRect; + +@end diff --git a/iphone/ZXingWidget/Decoder.mm b/iphone/ZXingWidget/Decoder.mm new file mode 100644 index 000000000..e70a685ae --- /dev/null +++ b/iphone/ZXingWidget/Decoder.mm @@ -0,0 +1,267 @@ +// +// Decoder.m +// ZXing +// +// Created by Christian Brunschen on 31/03/2008. +// +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "Decoder.h" +#import "TwoDDecoderResult.h" +#import "FormatReader.h" + +#include +#include +#include +#include +#include "GrayBytesMonochromeBitmapSource.h" + +using namespace zxing; + +@implementation Decoder + +@synthesize image; +@synthesize cropRect; +@synthesize subsetImage; +@synthesize subsetData; +@synthesize subsetWidth; +@synthesize subsetHeight; +@synthesize subsetBytesPerRow; +@synthesize delegate; + +- (void)willDecodeImage { + if ([self.delegate respondsToSelector:@selector(decoder:willDecodeImage:usingSubset:)]) { + [self.delegate decoder:self willDecodeImage:self.image usingSubset:self.subsetImage]; + } +} + +- (void)progressDecodingImage:(NSString *)progress { + if ([self.delegate respondsToSelector:@selector(decoder:decodingImage:usingSubset:progress:)]) { + [self.delegate decoder:self decodingImage:self.image usingSubset:self.subsetImage progress:progress]; + } +} + +- (void)didDecodeImage:(TwoDDecoderResult *)result { + if ([self.delegate respondsToSelector:@selector(decoder:didDecodeImage:usingSubset:withResult:)]) { + [self.delegate decoder:self didDecodeImage:self.image usingSubset:self.subsetImage withResult:result]; + } +} + +- (void)failedToDecodeImage:(NSString *)reason { + if ([self.delegate respondsToSelector:@selector(decoder:failedToDecodeImage:usingSubset:reason:)]) { + [self.delegate decoder:self failedToDecodeImage:self.image usingSubset:self.subsetImage reason:reason]; + } +} + +#define SUBSET_SIZE 320.0 +- (void) prepareSubset { + CGSize size = [image size]; +#ifdef DEBUG + NSLog(@"decoding: image is (%.1f x %.1f), cropRect is (%.1f,%.1f)x(%.1f,%.1f)", size.width, size.height, + cropRect.origin.x, cropRect.origin.y, cropRect.size.width, cropRect.size.height); +#endif + float scale = fminf(1.0f, fmaxf(SUBSET_SIZE / cropRect.size.width, SUBSET_SIZE / cropRect.size.height)); + CGPoint offset = CGPointMake(-cropRect.origin.x, -cropRect.origin.y); +#ifdef DEBUG + NSLog(@" offset = (%.1f, %.1f), scale = %.3f", offset.x, offset.y, scale); +#endif + + subsetWidth = cropRect.size.width * scale; + subsetHeight = cropRect.size.height * scale; + + subsetBytesPerRow = ((subsetWidth + 0xf) >> 4) << 4; +#ifdef DEBUG + NSLog(@"decoding: image to decode is (%d x %d) (%d bytes/row)", subsetWidth, subsetHeight, subsetBytesPerRow); +#endif + + subsetData = (unsigned char *)malloc(subsetBytesPerRow * subsetHeight); +#ifdef DEBUG + NSLog(@"allocated %d bytes of memory", subsetBytesPerRow * subsetHeight); +#endif + + CGColorSpaceRef grayColorSpace = CGColorSpaceCreateDeviceGray(); + + CGContextRef ctx = + CGBitmapContextCreate(subsetData, subsetWidth, subsetHeight, + 8, subsetBytesPerRow, grayColorSpace, + kCGImageAlphaNone); + CGColorSpaceRelease(grayColorSpace); + CGContextSetInterpolationQuality(ctx, kCGInterpolationNone); + CGContextSetAllowsAntialiasing(ctx, false); + // adjust the coordinate system + CGContextTranslateCTM(ctx, 0.0, subsetHeight); + CGContextScaleCTM(ctx, 1.0, -1.0); + +#ifdef DEBUG + NSLog(@"created %dx%d bitmap context", subsetWidth, subsetHeight); +#endif + + UIGraphicsPushContext(ctx); + CGRect rect = CGRectMake(offset.x * scale, offset.y * scale, scale * size.width, scale * size.height); +#ifdef DEBUG + NSLog(@"rect for image = (%.1f,%.1f)x(%.1f,%.1f)", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); +#endif + [image drawInRect:rect]; + UIGraphicsPopContext(); + +#ifdef DEBUG + NSLog(@"drew image into %d(%d)x%d bitmap context", subsetWidth, subsetBytesPerRow, subsetHeight); +#endif + CGContextFlush(ctx); +#ifdef DEBUG + NSLog(@"flushed context"); +#endif + + CGImageRef subsetImageRef = CGBitmapContextCreateImage(ctx); +#ifdef DEBUG + NSLog(@"created CGImage from context"); +#endif + + self.subsetImage = [UIImage imageWithCGImage:subsetImageRef]; + // for debug purposes. + UIImageWriteToSavedPhotosAlbum(self.subsetImage, nil, nil, nil); + + CGImageRelease(subsetImageRef); + + CGContextRelease(ctx); +#ifdef DEBUG + NSLog(@"released context"); +#endif +} + +- (void)decode:(id)arg { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + { + + NSSet *formatReaders = [FormatReader formatReaders]; + + Ref source (new GrayBytesMonochromeBitmapSource(subsetData, subsetWidth, subsetHeight, subsetBytesPerRow)); + + Ref binarizer (new GlobalHistogramBinarizer(source)); + Ref grayImage (new BinaryBitmap(binarizer)); +#ifdef DEBUG + NSLog(@"created GrayBytesMonochromeBitmapSource", subsetWidth, subsetHeight); + NSLog(@"grayImage count = %d", grayImage->count()); +#endif + + TwoDDecoderResult *decoderResult = nil; + +#ifdef TRY_ROTATIONS + for (int i = 0; !decoderResult && i < 4; i++) {` +#endif + for (FormatReader *reader in formatReaders) { + try { + #ifdef DEBUG + NSLog(@"decoding gray image"); + #endif + Ref result([reader decode:grayImage]); + #ifdef DEBUG + NSLog(@"gray image decoded"); + #endif + + Ref resultText(result->getText()); + const char *cString = resultText->getText().c_str(); + const std::vector > &resultPoints = result->getResultPoints(); + NSMutableArray *points = + [NSMutableArray arrayWithCapacity:resultPoints.size()]; + + for (size_t i = 0; i < resultPoints.size(); i++) { + const Ref &rp = resultPoints[i]; + CGPoint p = CGPointMake(rp->getX(), rp->getY()); + [points addObject:[NSValue valueWithCGPoint:p]]; + } + + NSString *resultString = [NSString stringWithCString:cString + encoding:NSUTF8StringEncoding]; + + decoderResult = [TwoDDecoderResult resultWithText:resultString + points:points]; + } catch (ReaderException &rex) { + NSLog(@"failed to decode, caught ReaderException '%s'", + rex.what()); + } catch (IllegalArgumentException &iex) { + NSLog(@"failed to decode, caught IllegalArgumentException '%s'", + iex.what()); + } catch (...) { + NSLog(@"Caught unknown exception!"); + } + } + +#ifdef TRY_ROTATIONS + if (!decoderResult) { +#ifdef DEBUG + NSLog(@"rotating gray image"); +#endif + grayImage = grayImage->rotateCounterClockwise(); +#ifdef DEBUG + NSLog(@"gray image rotated"); +#endif + } + } +#endif + + if (decoderResult) { + [self performSelectorOnMainThread:@selector(didDecodeImage:) + withObject:decoderResult + waitUntilDone:NO]; + } else { + [self performSelectorOnMainThread:@selector(failedToDecodeImage:) + withObject:NSLocalizedString(@"Decoder BarcodeDetectionFailure", @"No barcode detected.") + waitUntilDone:NO]; + } + + free(subsetData); + self.subsetData = NULL; + } + [pool drain]; +#ifdef DEBUG + NSLog(@"finished decoding."); +#endif + + // if this is not the main thread, then we end it + if (![NSThread isMainThread]) { + [NSThread exit]; + } +} + +- (void) decodeImage:(UIImage *)i { + [self decodeImage:i cropRect:CGRectMake(0.0f, 0.0f, image.size.width, image.size.height)]; +} + +- (void) decodeImage:(UIImage *)i cropRect:(CGRect)cr { + self.image = i; + self.cropRect = cr; + + [self prepareSubset]; + [self willDecodeImage]; + [self performSelectorOnMainThread:@selector(progressDecodingImage:) + withObject:NSLocalizedString(@"Decoder MessageWhileDecoding", @"Decoding ...") + waitUntilDone:NO]; + + [NSThread detachNewThreadSelector:@selector(decode:) + toTarget:self + withObject:nil]; +} + +- (void) dealloc { + [image release]; + [subsetImage release]; + if (subsetData) free(subsetData); + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/DecoderDelegate.h b/iphone/ZXingWidget/DecoderDelegate.h new file mode 100644 index 000000000..5a78203dc --- /dev/null +++ b/iphone/ZXingWidget/DecoderDelegate.h @@ -0,0 +1,34 @@ +// +// DecoderDelegate.h +// ZXing +// +// Created by Christian Brunschen on 01/04/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class Decoder; +@class TwoDDecoderResult; + +@protocol DecoderDelegate +@optional +- (void)decoder:(Decoder *)decoder willDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset; +- (void)decoder:(Decoder *)decoder decodingImage:(UIImage *)image usingSubset:(UIImage *)subset progress:(NSString *)message; +- (void)decoder:(Decoder *)decoder didDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset withResult:(TwoDDecoderResult *)result; +- (void)decoder:(Decoder *)decoder failedToDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset reason:(NSString *)reason; + +@end diff --git a/iphone/ZXingWidget/DoCoMoResultParser.h b/iphone/ZXingWidget/DoCoMoResultParser.h new file mode 100644 index 000000000..0b5287014 --- /dev/null +++ b/iphone/ZXingWidget/DoCoMoResultParser.h @@ -0,0 +1,38 @@ +// +// DoCoMoResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + +@interface NSString (DoCoMoFieldParsing) +- (NSString *)backslashUnescaped; +- (NSArray *)fieldsWithPrefix:(NSString *)prefix; +- (NSArray *)fieldsWithPrefix:(NSString *)prefix terminator:(NSString *)term; +- (NSString *)fieldWithPrefix:(NSString *)prefix; +- (NSString *)fieldWithPrefix:(NSString *)prefix terminator:(NSString *)term; +@end + + +@interface DoCoMoResultParser : ResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/DoCoMoResultParser.m b/iphone/ZXingWidget/DoCoMoResultParser.m new file mode 100644 index 000000000..d29e095e4 --- /dev/null +++ b/iphone/ZXingWidget/DoCoMoResultParser.m @@ -0,0 +1,114 @@ +// +// DoCoMoResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "DoCoMoResultParser.h" + + +@implementation NSString (DoCoMoFieldParsing) + +- (NSString *)backslashUnescaped { + NSRange backslashRange = [self rangeOfString:@"\\"]; + if (backslashRange.location == NSNotFound) { + return self; + } + + int max = [self length]; + int startLocation = 0; + NSMutableString *result = [NSMutableString stringWithCapacity:[self length]]; + while (backslashRange.location != NSNotFound) { + [result appendString:[self substringWithRange:NSMakeRange(startLocation, + backslashRange.location - startLocation)]]; + [result appendFormat:@"%c", [self characterAtIndex:backslashRange.location + 1]]; + startLocation = backslashRange.location + 2; + NSRange searchRange = NSMakeRange(startLocation, max - startLocation); + backslashRange = [self rangeOfString:@"\\" options:0 range:searchRange]; + } + if (startLocation < max) { + [result appendString:[self substringWithRange:NSMakeRange(startLocation, max - startLocation)]]; + } + return [NSString stringWithString:result]; +} + +- (NSArray *)fieldsWithPrefix:(NSString *)prefix { + return [self fieldsWithPrefix:prefix terminator:@";"]; +} + +- (NSArray *)fieldsWithPrefix:(NSString *)prefix terminator:(NSString *)term { + NSMutableArray *result = nil; + + int i = 0; + int max = [self length]; + NSRange searchRange; + NSRange foundRange; + while (i < max) { + searchRange = NSMakeRange(i, max - i); + foundRange = [self rangeOfString:prefix options:0 range:searchRange]; + if(foundRange.location == NSNotFound) { + break; + } + + int start = i = foundRange.location + foundRange.length; + bool done = false; + while (!done) { + searchRange = NSMakeRange(i, max - i); + NSRange termRange = [self rangeOfString:term options:0 range:searchRange]; + if (termRange.location == NSNotFound) { + i = max; + done = true; + } else if ([self characterAtIndex:termRange.location-1] == (unichar)'\\') { + i++; + } else { + NSString *substring = [self substringWithRange:NSMakeRange(start, termRange.location - start)]; + NSString *unescaped = [substring backslashUnescaped]; + if (result == nil) { + result = [NSMutableArray arrayWithObject:unescaped]; + } else { + [result addObject:unescaped]; + } + i = termRange.location + termRange.length; + done = true; + } + } + } + + return result; +} + +- (NSString *)fieldWithPrefix:(NSString *)prefix { + return [self fieldWithPrefix:prefix terminator:@";"]; +} + +- (NSString *)fieldWithPrefix:(NSString *)prefix terminator:(NSString *)term { + NSArray *fields = [self fieldsWithPrefix:prefix terminator:term]; + if (fields.count == 0) { + return nil; + } else { + return [fields lastObject]; + } +} + +@end + + + +@implementation DoCoMoResultParser + +@end diff --git a/iphone/ZXingWidget/EmailAction.h b/iphone/ZXingWidget/EmailAction.h new file mode 100644 index 000000000..78e48e81e --- /dev/null +++ b/iphone/ZXingWidget/EmailAction.h @@ -0,0 +1,34 @@ +// +// EmailAction.h +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#include "OpenUrlAction.h" + +@interface EmailAction : OpenUrlAction { + NSString *recipient; +} + +@property (nonatomic, copy) NSString *recipient; + +- (id)initWithRecipient:(NSString *)recipient subject:(NSString *)subject body:(NSString *)body; ++ (id)actionWithRecipient:(NSString *)recipient subject:(NSString *)subject body:(NSString *)body; + +@end diff --git a/iphone/ZXingWidget/EmailAction.m b/iphone/ZXingWidget/EmailAction.m new file mode 100644 index 000000000..2f4fb01c4 --- /dev/null +++ b/iphone/ZXingWidget/EmailAction.m @@ -0,0 +1,68 @@ +// +// EmailAction.m +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "EmailAction.h" + +@implementation EmailAction + +@synthesize recipient; + +static NSURL *MailtoURL(NSString *to, NSString *sub, NSString *body) { + NSMutableString *result = [NSMutableString stringWithFormat:@"mailto:%@", + [to stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; + if (sub) { + [result appendFormat:@"&subject=%@", [sub stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; + } + if (body) { + [result appendFormat:@"&body=%@", [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; + } + return [NSURL URLWithString:result]; +} + +- (id)initWithRecipient:(NSString *)rec subject:(NSString *)subject body:(NSString *)body { + if ((self = [super initWithURL:MailtoURL(rec, subject, body)]) != nil) { + self.recipient = rec; + } + return self; +} + ++ (id)actionWithRecipient:(NSString *)recipient subject:(NSString *)subject body:(NSString *)body { + return [[[self alloc] initWithRecipient:recipient subject:subject body:body] autorelease]; +} + +- (NSString *)title { + return [NSString localizedStringWithFormat:NSLocalizedString(@"EmailAction action title", @"Email %@"), self.recipient]; +} + +- (NSString *)alertTitle { + return NSLocalizedString(@"EmailAction alert title", @"Compose Email"); +} + +- (NSString *)alertMessage { + return [NSString localizedStringWithFormat:NSLocalizedString(@"EmailAction alert message", @"Compose Email to %@?"), self.recipient]; +} + +- (NSString *)alertButtonTitle { + return NSLocalizedString(@"EmailAction alert button title", @"Compose"); +} + + +@end diff --git a/iphone/ZXingWidget/EmailDoCoMoResultParser.h b/iphone/ZXingWidget/EmailDoCoMoResultParser.h new file mode 100644 index 000000000..5d1b8304c --- /dev/null +++ b/iphone/ZXingWidget/EmailDoCoMoResultParser.h @@ -0,0 +1,29 @@ +// +// EmailDoCoMoResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "DoCoMoResultParser.h" + +@interface EmailDoCoMoResultParser : DoCoMoResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/EmailDoCoMoResultParser.m b/iphone/ZXingWidget/EmailDoCoMoResultParser.m new file mode 100644 index 000000000..c62a473e9 --- /dev/null +++ b/iphone/ZXingWidget/EmailDoCoMoResultParser.m @@ -0,0 +1,50 @@ +// +// EmailDoCoMoResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "EmailDoCoMoResultParser.h" +#import "EmailParsedResult.h" + +@implementation EmailDoCoMoResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange foundRange = [s rangeOfString:@"MATMSG:"]; + if (foundRange.location == NSNotFound) { + return nil; + } + + NSString *to = [s fieldWithPrefix:@"TO:"]; + if (to == nil) { + return nil; + } + + EmailParsedResult *result = [[EmailParsedResult alloc] init]; + result.to = to; + result.subject = [s fieldWithPrefix:@"SUB:"]; + result.body = [s fieldWithPrefix:@"BODY:"]; + + return [result autorelease]; +} + +@end diff --git a/iphone/ZXingWidget/EmailParsedResult.h b/iphone/ZXingWidget/EmailParsedResult.h new file mode 100644 index 000000000..8378f529a --- /dev/null +++ b/iphone/ZXingWidget/EmailParsedResult.h @@ -0,0 +1,37 @@ +// +// EmailDoCoMoParsedResult.h +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ParsedResult.h" + +@interface EmailParsedResult : ParsedResult { + NSString *to; + NSString *subject; + NSString *body; +} + +@property (nonatomic, copy) NSString *to; +@property (nonatomic, copy) NSString *subject; +@property (nonatomic, copy) NSString *body; + ++ (bool) looksLikeAnEmailAddress:(NSString *)s; + +@end diff --git a/iphone/ZXingWidget/EmailParsedResult.m b/iphone/ZXingWidget/EmailParsedResult.m new file mode 100644 index 000000000..d333cbac7 --- /dev/null +++ b/iphone/ZXingWidget/EmailParsedResult.m @@ -0,0 +1,74 @@ +// +// EmailDoCoMoParsedResult.m +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "EmailParsedResult.h" +#import "EmailAction.h" + + +@implementation EmailParsedResult + +@synthesize to; +@synthesize subject; +@synthesize body; + ++ (bool) looksLikeAnEmailAddress:(NSString *)s { + if ([s rangeOfString:@"@"].location == NSNotFound) { + return false; + } + if ([s rangeOfString:@"."].location == NSNotFound) { + return false; + } + if ([s rangeOfCharacterFromSet:[NSCharacterSet whitespaceCharacterSet]].location != NSNotFound) { + return false; + } + return true; +} + + +- (NSString *)stringForDisplay { + NSMutableArray *parts = [[NSMutableArray alloc] initWithCapacity:10]; + [parts addObject:[NSString stringWithFormat:NSLocalizedString(@"EmailParsedResult Display: Recipient", @"To: %@"), self.to]]; + if (self.subject) { + [parts addObject:[NSString stringWithFormat:NSLocalizedString(@"EmailParsedResult Display: Subject", @"Subject: %@"), self.subject]]; + } + if (self.body) { + [parts addObject:@""]; + [parts addObject:[NSString stringWithFormat:NSLocalizedString(@"EmailParsedResult Display: Body", @"%@"), self.body]]; + } + return [parts componentsJoinedByString:@"\n"]; +} + ++ (NSString *)typeName { + return NSLocalizedString(@"EmailParsedResult type name", @"Email"); +} + +- (NSArray *)actions { + return [NSArray arrayWithObject:[EmailAction actionWithRecipient:self.to + subject:self.subject + body:self.body]]; +} + +- (UIImage *)icon { + return [UIImage imageNamed:@"email.png"]; +} + + +@end diff --git a/iphone/ZXingWidget/FormatReader.h b/iphone/ZXingWidget/FormatReader.h new file mode 100644 index 000000000..350a7a64f --- /dev/null +++ b/iphone/ZXingWidget/FormatReader.h @@ -0,0 +1,37 @@ +// +// FormatReader.h +// +// Created by Dave MacLachlan on 2010-05-03. +/* + * Copyright 2010 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import +#import +#import +#import + +@interface FormatReader : NSObject { + zxing::Reader *reader_; +} + ++ (void)registerFormatReader:(FormatReader *)formatReader; ++ (NSSet *)formatReaders; + +- (id)initWithReader:(zxing::Reader *)reader; +- (zxing::Ref)decode:(zxing::Ref)grayImage; + +@end diff --git a/iphone/ZXingWidget/FormatReader.mm b/iphone/ZXingWidget/FormatReader.mm new file mode 100644 index 000000000..a1294d824 --- /dev/null +++ b/iphone/ZXingWidget/FormatReader.mm @@ -0,0 +1,64 @@ +// +// FormatReader.mm +// +// Created by Dave MacLachlan on 2010-05-03. +/* + * Copyright 2010 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FormatReader.h" + +@implementation FormatReader + +static NSMutableSet *sFormatReaders = nil; + ++ (void)registerFormatReader:(FormatReader*)formatReader { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + @synchronized(self) { + if (!sFormatReaders) { + sFormatReaders = [[NSMutableSet alloc] init]; + } + [sFormatReaders addObject:formatReader]; + } + [pool drain]; +} + ++ (NSSet *)formatReaders { + NSSet *formatReaders = nil; + @synchronized(self) { + + formatReaders = [[sFormatReaders copy] autorelease]; + NSLog(@"readers : %d",[formatReaders count]); + } + return formatReaders; +} + +- (id)initWithReader:(zxing::Reader *)reader { + if ((self = [super init])) { + reader_ = reader; + } + return self; +} + +- (void)dealloc { + delete reader_; + [super dealloc]; +} + +- (zxing::Ref)decode:(zxing::Ref)grayImage { + return reader_->decode(grayImage); +} + +@end diff --git a/iphone/ZXingWidget/GeoParsedResult.h b/iphone/ZXingWidget/GeoParsedResult.h new file mode 100644 index 000000000..4feb8802d --- /dev/null +++ b/iphone/ZXingWidget/GeoParsedResult.h @@ -0,0 +1,34 @@ +// +// GeoParsedResult.h +// ZXing +// +// Created by Christian Brunschen on 05/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ParsedResult.h" + +@interface GeoParsedResult : ParsedResult { + NSString *location; +} + +@property (nonatomic, copy) NSString *location; + +- (id)initWithLocation:(NSString *)location; + + +@end diff --git a/iphone/ZXingWidget/GeoParsedResult.m b/iphone/ZXingWidget/GeoParsedResult.m new file mode 100644 index 000000000..44ecfc8cc --- /dev/null +++ b/iphone/ZXingWidget/GeoParsedResult.m @@ -0,0 +1,59 @@ +// +// GeoParsedResult.m +// ZXing +// +// Created by Christian Brunschen on 05/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GeoParsedResult.h" +#import "ShowMapAction.h" + +@implementation GeoParsedResult + +@synthesize location; + +- (id)initWithLocation:(NSString *)l { + if ((self = [super init]) != nil) { + self.location = l; + } + return self; +} + + ++ (NSString *)typeName { + return NSLocalizedString(@"GeoParsedResult type name", @"Geolocation"); +} + +- (UIImage *)icon { + return [UIImage imageNamed:@"map-pin.png"]; +} + + +- (NSString *)stringForDisplay { + return [NSString stringWithFormat:NSLocalizedString(@"GeoParsedResult display", @"Geo: %@"), self.location]; +} + +- (void)populateActions { + [actions addObject:[ShowMapAction actionWithLocation:self.location]]; +} + +- (void) dealloc { + [location release]; + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/GeoResultParser.h b/iphone/ZXingWidget/GeoResultParser.h new file mode 100644 index 000000000..f91b3d412 --- /dev/null +++ b/iphone/ZXingWidget/GeoResultParser.h @@ -0,0 +1,29 @@ +// +// GeoResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + +@interface GeoResultParser : ResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/GeoResultParser.m b/iphone/ZXingWidget/GeoResultParser.m new file mode 100644 index 000000000..790983a00 --- /dev/null +++ b/iphone/ZXingWidget/GeoResultParser.m @@ -0,0 +1,43 @@ +// +// GeoResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GeoResultParser.h" +#import "GeoParsedResult.h" + +#define PREFIX @"geo:" + +@implementation GeoResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange prefixRange = [s rangeOfString:PREFIX options:NSCaseInsensitiveSearch]; + if (prefixRange.location == 0) { + int restStart = prefixRange.location + prefixRange.length; + return [[[GeoParsedResult alloc] initWithLocation:[s substringFromIndex:restStart]] + autorelease]; + } + return nil; +} + +@end diff --git a/iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.cpp b/iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.cpp new file mode 100644 index 000000000..317919ad4 --- /dev/null +++ b/iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.cpp @@ -0,0 +1,50 @@ +// +// GrayBytesMonochromeBitmapSource.cpp +// ZXing +// +// Created by Thomas Recloux, Norsys on 04/12/2009. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "GrayBytesMonochromeBitmapSource.h" +#include + + +GrayBytesMonochromeBitmapSource::GrayBytesMonochromeBitmapSource(const unsigned char *bytes, + int width, + int height, + int bytesPerRow) : + width_(width), + height_(height), + bytes_(bytes), + bytesPerRow_(bytesPerRow) { } + + +int GrayBytesMonochromeBitmapSource::getWidth() const{ + return width_; +} + +int GrayBytesMonochromeBitmapSource::getHeight() const { + return height_; +} + +unsigned char GrayBytesMonochromeBitmapSource::getPixel(int x, int y) const { +/* if (x >= width_ || y >= height_) { + throw new ReaderException("bitmap coordinate out of bounds"); + }*/ + int index = y * bytesPerRow_ + x; + return bytes_[index]; +} diff --git a/iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.h b/iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.h new file mode 100644 index 000000000..462118c22 --- /dev/null +++ b/iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.h @@ -0,0 +1,51 @@ +// +// GrayBytesMonochromeBitmapSource.h +// ZXing +// +// Created by Thomas Recloux, Norsys on 04/12/2009. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __GRAY_BYTES_MONOCHROM_BITMAP_SOURCE_H__ +#define __GRAY_BYTES_MONOCHROM_BITMAP_SOURCE_H__ + +#include + +class GrayBytesMonochromeBitmapSource : public zxing::LuminanceSource { +private: + int width_; + int height_; + const unsigned char *bytes_; + int bytesPerRow_; + +public: + GrayBytesMonochromeBitmapSource(const unsigned char *bytes, + int width, + int height, + int bytesPerRow); + virtual ~GrayBytesMonochromeBitmapSource() { } + + virtual unsigned char getPixel(int x, int y) const; + + virtual int getWidth() const; + virtual int getHeight() const; + +private: + GrayBytesMonochromeBitmapSource(const GrayBytesMonochromeBitmapSource&); + GrayBytesMonochromeBitmapSource& operator=(const GrayBytesMonochromeBitmapSource&); +}; + +#endif // __GRAY_BYTES_MONOCHROM_BITMAP_SOURCE_H__ diff --git a/iphone/ZXingWidget/MeCardParser.h b/iphone/ZXingWidget/MeCardParser.h new file mode 100644 index 000000000..288159ea0 --- /dev/null +++ b/iphone/ZXingWidget/MeCardParser.h @@ -0,0 +1,29 @@ +// +// MeCardParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "DoCoMoResultParser.h" + +@interface MeCardParser : DoCoMoResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/MeCardParser.m b/iphone/ZXingWidget/MeCardParser.m new file mode 100644 index 000000000..77d4e6df2 --- /dev/null +++ b/iphone/ZXingWidget/MeCardParser.m @@ -0,0 +1,54 @@ +// +// MeCardParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "MeCardParser.h" +#import "BusinessCardParsedResult.h" + +@implementation MeCardParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange foundRange = [s rangeOfString:@"MECARD:"]; + if (foundRange.location == NSNotFound) { + return nil; + } + + NSString *name = [s fieldWithPrefix:@"N:"]; + if (name == nil) { + return nil; + } + + BusinessCardParsedResult *result = [[BusinessCardParsedResult alloc] init]; + result.name = name; + result.phoneNumbers = [s fieldsWithPrefix:@"TEL:"]; + result.email = [s fieldWithPrefix:@"EMAIL:"]; + result.note = [s fieldWithPrefix:@"NOTE:"]; + result.urlString = [s fieldWithPrefix:@"URL:"]; + result.address = [s fieldWithPrefix:@"ADR:"]; + + return [result autorelease]; +} + + +@end diff --git a/iphone/ZXingWidget/MultiFormatReader.mm b/iphone/ZXingWidget/MultiFormatReader.mm new file mode 100644 index 000000000..7f38ab270 --- /dev/null +++ b/iphone/ZXingWidget/MultiFormatReader.mm @@ -0,0 +1,42 @@ +// +// MultiFormatReader.mm +// +// Created by Dave MacLachlan on 2010-05-03. +/* + * Copyright 2010 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FormatReader.h" +#import + +@interface MultiFormatReader : FormatReader +@end + +@implementation MultiFormatReader + ++ (void)load { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSLog(@"MultiFormatReader: load called"); + [FormatReader registerFormatReader:[[[self alloc] init] autorelease]]; + [pool drain]; +} + +- (id)init { + zxing::MultiFormatReader *reader = new zxing::MultiFormatReader(); + NSLog(@"MultiFormatReader: init called"); + return [super initWithReader:reader]; +} + +@end diff --git a/iphone/ZXingWidget/NSString+HTML.h b/iphone/ZXingWidget/NSString+HTML.h new file mode 100644 index 000000000..52b6d6aff --- /dev/null +++ b/iphone/ZXingWidget/NSString+HTML.h @@ -0,0 +1,32 @@ +// +// NSString+HTML.h +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + + +@interface NSString (HTMLExtensions) + ++ (NSDictionary *)htmlEscapes; ++ (NSDictionary *)htmlUnescapes; +- (NSString *)htmlEscapedString; +- (NSString *)htmlUnescapedString; + +@end diff --git a/iphone/ZXingWidget/NSString+HTML.m b/iphone/ZXingWidget/NSString+HTML.m new file mode 100644 index 000000000..98c45d43f --- /dev/null +++ b/iphone/ZXingWidget/NSString+HTML.m @@ -0,0 +1,70 @@ +// +// NSString+HTML.m +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "NSString+HTML.h" + + +@implementation NSString (HTMLExtensions) + +static NSDictionary *htmlEscapes = nil; +static NSDictionary *htmlUnescapes = nil; + ++ (NSDictionary *)htmlEscapes { + if (!htmlEscapes) { + htmlEscapes = [[NSDictionary alloc] initWithObjectsAndKeys: + @"&", @"&", + @"<", @"<", + @">", @">", + nil + ]; + } + return htmlEscapes; +} + ++ (NSDictionary *)htmlUnescapes { + if (!htmlUnescapes) { + htmlUnescapes = [[NSDictionary alloc] initWithObjectsAndKeys: + @"&", @"&", + @"<", @"<", + @">", @">", + nil + ]; + } + return htmlEscapes; +} + +static NSString *replaceAll(NSString *s, NSDictionary *replacements) { + for (NSString *key in replacements) { + NSString *replacement = [replacements objectForKey:key]; + s = [s stringByReplacingOccurrencesOfString:key withString:replacement]; + } + return s; +} + +- (NSString *)htmlEscapedString { + return replaceAll(self, [[self class] htmlEscapes]); +} + +- (NSString *)htmlUnescapedString { + return replaceAll(self, [[self class] htmlUnescapes]); +} + +@end diff --git a/iphone/ZXingWidget/OpenUrlAction.h b/iphone/ZXingWidget/OpenUrlAction.h new file mode 100644 index 000000000..cc1e17bd8 --- /dev/null +++ b/iphone/ZXingWidget/OpenUrlAction.h @@ -0,0 +1,42 @@ +// +// OpenUrlAction.h +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultAction.h" + +@interface OpenUrlAction : ResultAction { + NSURL *URL; +} + +@property(nonatomic, retain) NSURL *URL; + +- (id)initWithURL:(NSURL *)URL; ++ (id)actionWithURL:(NSURL *)URL; +- (void)openURL; + +- (NSString *)alertTitle; +- (NSString *)alertMessage; +- (NSString *)alertButtonTitle; + +// UIAlertViewDelegate +- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex; + +@end diff --git a/iphone/ZXingWidget/OpenUrlAction.m b/iphone/ZXingWidget/OpenUrlAction.m new file mode 100644 index 000000000..f59da6072 --- /dev/null +++ b/iphone/ZXingWidget/OpenUrlAction.m @@ -0,0 +1,82 @@ +// +// OpenUrlAction.m +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "OpenUrlAction.h" + + +@implementation OpenUrlAction + +@synthesize URL; + +- (id)initWithURL:(NSURL *)url { + if ((self = [super init]) != nil) { + self.URL = url; + } + return self; +} + ++ (id)actionWithURL:(NSURL *)URL { + return [[[self alloc] initWithURL:URL] autorelease]; +} + +- (NSString *)title { + return [NSString localizedStringWithFormat:NSLocalizedString(@"OpenURLAction action title", @"Open URL"), self.URL]; +} + +- (NSString *)alertTitle { + return NSLocalizedString(@"OpenURLAction alert title", @"Open URL"); +} + +- (NSString *)alertMessage { + return [NSString localizedStringWithFormat:NSLocalizedString(@"OpenURLAction alert message", @"Open URL <%@>?"), self.URL]; +} + +- (NSString *)alertButtonTitle { + return NSLocalizedString(@"OpenURLAction alert button title", @"Open"); +} + +- (void)performActionWithController:(UIViewController *)controller + shouldConfirm:(bool)shouldConfirm { + if (shouldConfirm) { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil + message:[self alertMessage] + delegate:self + cancelButtonTitle:NSLocalizedString(@"OpenURLAction cancel button title", @"Cancel") + otherButtonTitles:[self alertButtonTitle], nil]; + [alertView show]; + [alertView release]; + } else { + [self openURL]; + } +} + +- (void)openURL { + [[UIApplication sharedApplication] openURL:self.URL]; +} + +- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { + if (buttonIndex != [alertView cancelButtonIndex]) { + // perform the action + [self openURL]; + } +} + +@end diff --git a/iphone/ZXingWidget/OverlayView.h b/iphone/ZXingWidget/OverlayView.h new file mode 100755 index 000000000..f8436b10f --- /dev/null +++ b/iphone/ZXingWidget/OverlayView.h @@ -0,0 +1,40 @@ +/** + * Copyright 2009 Jeff Verkoeyen + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@protocol CancelDelegate; + +@interface OverlayView : UIView { + UIImageView *imageView; + NSArray *_points; + UIButton *cancelButton; + id delegate; +} + +//@property (nonatomic, retain) UIImage* image; +@property (nonatomic, retain) NSArray* points; +@property (nonatomic, assign) id delegate; + +- (id)initWithCancelEnabled:(BOOL)cancelEnabled frame:(CGRect)frame; + +- (CGRect)cropRect; + +@end + +@protocol CancelDelegate +- (void)cancelled; +@end \ No newline at end of file diff --git a/iphone/ZXingWidget/OverlayView.m b/iphone/ZXingWidget/OverlayView.m new file mode 100755 index 000000000..35617670b --- /dev/null +++ b/iphone/ZXingWidget/OverlayView.m @@ -0,0 +1,166 @@ +/** + * Copyright 2009 Jeff Verkoeyen + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "OverlayView.h" + +static const CGFloat kPadding = 10; + +@implementation OverlayView + +@synthesize delegate; +@synthesize points = _points; +//@synthesize image; + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +- (id)initWithCancelEnabled:(BOOL)cancelEnabled frame:(CGRect)frame { + if( self = [super initWithFrame:frame] ) { + self.backgroundColor = [UIColor clearColor]; + } + if (cancelEnabled) { + cancelButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; + [cancelButton setTitle:@"Cancel" forState:UIControlStateNormal]; + [cancelButton setFrame:CGRectMake(95, 420, 130, 45)]; + [cancelButton addTarget:self action:@selector(cancel:) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:cancelButton]; + } + return self; +} + +- (void)cancel:(id)sender { + // call delegate to cancel this scanner + if (delegate != nil) { + [delegate cancelled]; + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +- (void) dealloc { + [imageView release]; + imageView = nil; + [_points release]; + _points = nil; + + [super dealloc]; +} + + +- (void)drawRect:(CGRect)rect inContext:(CGContextRef)context { + CGContextBeginPath(context); + CGContextMoveToPoint(context, rect.origin.x, rect.origin.y); + CGContextAddLineToPoint(context, rect.origin.x + rect.size.width, rect.origin.y); + CGContextAddLineToPoint(context, rect.origin.x + rect.size.width, rect.origin.y + rect.size.height); + CGContextAddLineToPoint(context, rect.origin.x, rect.origin.y + rect.size.height); + CGContextAddLineToPoint(context, rect.origin.x, rect.origin.y); + CGContextStrokePath(context); +} + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +- (void)drawRect:(CGRect)rect { + [super drawRect:rect]; + CGContextRef c = UIGraphicsGetCurrentContext(); + + CGRect cropRect = [self cropRect]; + + if (nil != _points) { +// [imageView.image drawAtPoint:cropRect.origin]; + } + + CGFloat white[4] = {1.0f, 1.0f, 1.0f, 1.0f}; + CGContextSetStrokeColor(c, white); + CGContextSetFillColor(c, white); + [self drawRect:cropRect inContext:c]; + +// CGContextSetStrokeColor(c, white); + char *text = "Place a barcode inside the"; + char *text2 = "viewfinder rectangle to scan it."; + // CGContextSetStrokeColor(c, white); + CGContextSaveGState(c); + CGContextSelectFont(c, "Helvetica", 18, kCGEncodingMacRoman); + CGContextScaleCTM(c, -1.0, 1.0); + CGContextRotateCTM(c, 3.1415); + CGContextShowTextAtPoint(c, 48.0, -45.0, text, 26); + CGContextShowTextAtPoint(c, 33.0, -70.0, text2, 32); + CGContextRestoreGState(c); + if( nil != _points ) { + CGFloat blue[4] = {0.0f, 1.0f, 0.0f, 1.0f}; + CGContextSetStrokeColor(c, blue); + CGContextSetFillColor(c, blue); + CGRect smallSquare = CGRectMake(0, 0, 10, 10); + for( NSValue* value in _points ) { + CGPoint point = [value CGPointValue]; + NSLog(@"drawing point at %f, %f", point.x, point.y); + smallSquare.origin = CGPointMake( + cropRect.origin.x + point.x - smallSquare.size.width / 2, + cropRect.origin.y + point.y - smallSquare.size.height / 2); + [self drawRect:smallSquare inContext:c]; + } + } +} + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/* +- (void) setImage:(UIImage*)image { + if( nil == _imageView ) { + _imageView = [[UIImageView alloc] initWithImage:image]; + _imageView.alpha = 0.5; + } else { + _imageView.image = image; + } + + CGRect frame = _imageView.frame; + frame.origin.x = self.cropRect.origin.x; + frame.origin.y = self.cropRect.origin.y; + _imageView.frame = frame; + + [_points release]; + _points = nil; + self.backgroundColor = [UIColor clearColor]; + + [self setNeedsDisplay]; +} +*/ + +//////////////////////////////////////////////////////////////////////////////////////////////////// +- (UIImage*) image { + return imageView.image; +} + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +- (CGRect) cropRect { + CGFloat rectSize = self.frame.size.width - kPadding * 2; + + return CGRectMake(kPadding, (self.frame.size.height - rectSize) / 2, rectSize, rectSize); +} + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +- (void) setPoints:(NSArray*)pnts { + [pnts retain]; + [_points release]; + _points = pnts; + + if (pnts != nil) { + self.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.25]; + } + [self setNeedsDisplay]; +} + + +@end diff --git a/iphone/ZXingWidget/ParsedResult.h b/iphone/ZXingWidget/ParsedResult.h new file mode 100644 index 000000000..1a7566c21 --- /dev/null +++ b/iphone/ZXingWidget/ParsedResult.h @@ -0,0 +1,35 @@ +// +// ParsedResult.h +// ZXing +// +// Created by Christian Brunschen on 22/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface ParsedResult : NSObject { + NSMutableArray *actions; +} + ++ (NSString *)typeName; + +- (NSString *)stringForDisplay; +- (UIImage *)icon; +- (NSArray *)actions; +- (void)populateActions; + +@end diff --git a/iphone/ZXingWidget/ParsedResult.m b/iphone/ZXingWidget/ParsedResult.m new file mode 100644 index 000000000..4d4494dbd --- /dev/null +++ b/iphone/ZXingWidget/ParsedResult.m @@ -0,0 +1,104 @@ +// +// ParsedResult.m +// ZXing +// +// Created by Christian Brunschen on 22/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "ParsedResult.h" + +#import "TextParsedResult.h" +#import "TelParsedResult.h" +#import "EmailParsedResult.h" +#import "BusinessCardParsedResult.h" +#import "URIParsedResult.h" +#import "GeoParsedResult.h" + +#import "UIKit/UIStringDrawing.h" +#import + +@implementation ParsedResult + +static NSMutableDictionary *iconsByClass = nil; + ++ (NSString *)typeName { + return NSStringFromClass(self); +} + +- (NSString *)stringForDisplay { + return @"{none}"; +} + +#define ICON_SIZE 40 +#define ICON_INSIDE 36 + ++ (UIImage *)icon { + if (iconsByClass == nil) { + iconsByClass = [[NSMutableDictionary alloc] initWithCapacity:16]; + } + UIImage *icon = [iconsByClass objectForKey:[self class]]; + if (icon == nil) { + UIGraphicsBeginImageContext(CGSizeMake(ICON_SIZE, ICON_SIZE)); + CGContextRef ctx = UIGraphicsGetCurrentContext(); + + [[UIColor lightGrayColor] set]; + UIRectFill(CGRectMake(0, 0, ICON_SIZE, ICON_SIZE)); + + [[UIColor blackColor] set]; + NSString *s = [[self class] typeName]; + UIFont *font = [UIFont systemFontOfSize:16]; + CGSize stringSize = [s sizeWithFont:font]; + float xScale = fminf(1.0, ICON_INSIDE / stringSize.width); + float yScale = fminf(1.0, ICON_INSIDE / stringSize.height); + + CGContextTranslateCTM(ctx, (ICON_SIZE / 2), (ICON_SIZE / 2)); + CGContextRotateCTM(ctx, -M_PI / 6.0); + CGContextScaleCTM(ctx, xScale, yScale); + CGContextTranslateCTM(ctx, + -(stringSize.width)/2.0, + -(stringSize.height)/2.0); + + [s drawAtPoint:CGPointMake(0, 0) withFont:font]; + + icon = [UIGraphicsGetImageFromCurrentImageContext() retain]; + [iconsByClass setObject:icon forKey:[self class]]; + UIGraphicsEndImageContext(); + } + return icon; +} + +- (UIImage *)icon { + return [[self class] icon]; +} + +- (NSArray *)actions { + if (!actions) { + actions = [[NSMutableArray alloc] init]; + [self populateActions]; + } + return actions; +} + +- (void) populateActions { +} + +- (void) dealloc { + [actions release]; + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/PlainEmailResultParser.h b/iphone/ZXingWidget/PlainEmailResultParser.h new file mode 100644 index 000000000..a689f6460 --- /dev/null +++ b/iphone/ZXingWidget/PlainEmailResultParser.h @@ -0,0 +1,30 @@ +// +// PlainEmailResultParser.h +// ZXing +// +// Created by Christian Brunschen on 28/07/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + + +@interface PlainEmailResultParser : ResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/PlainEmailResultParser.m b/iphone/ZXingWidget/PlainEmailResultParser.m new file mode 100644 index 000000000..6c9078314 --- /dev/null +++ b/iphone/ZXingWidget/PlainEmailResultParser.m @@ -0,0 +1,40 @@ +// +// PlainEmailResultParser.m +// ZXing +// +// Created by Christian Brunschen on 28/07/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "PlainEmailResultParser.h" +#import "EmailParsedResult.h" + +@implementation PlainEmailResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + if ([EmailParsedResult looksLikeAnEmailAddress:s]) { + EmailParsedResult *result = [[[EmailParsedResult alloc] init] autorelease]; + [result setTo:s]; + return result; + } + return nil; +} + +@end diff --git a/iphone/ZXingWidget/ResultAction.h b/iphone/ZXingWidget/ResultAction.h new file mode 100644 index 000000000..5a8e21466 --- /dev/null +++ b/iphone/ZXingWidget/ResultAction.h @@ -0,0 +1,32 @@ +// +// ResultAction.h +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface ResultAction : NSObject { + +} + +- (NSString *)title; +- (void)performActionWithController:(UIViewController *)controller + shouldConfirm:(bool)confirm; + +@end diff --git a/iphone/ZXingWidget/ResultAction.m b/iphone/ZXingWidget/ResultAction.m new file mode 100644 index 000000000..d0b61d362 --- /dev/null +++ b/iphone/ZXingWidget/ResultAction.m @@ -0,0 +1,36 @@ +// +// ResultAction.m +// ZXing +// +// Created by Christian Brunschen on 28/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "ResultAction.h" + + +@implementation ResultAction + +- (NSString *)title { + return @"Abstract Action"; +} + +- (void)performActionWithController:(UIViewController *)controller + shouldConfirm:(bool)confirm { + NSLog(@"Abstract Action performed"); +} + +@end diff --git a/iphone/ZXingWidget/ResultParser.h b/iphone/ZXingWidget/ResultParser.h new file mode 100644 index 000000000..6651f73b6 --- /dev/null +++ b/iphone/ZXingWidget/ResultParser.h @@ -0,0 +1,31 @@ +// +// ResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ParsedResult.h" + +@interface ResultParser : NSObject { + +} ++ (void)registerResultParserClass:(Class)resultParser; ++ (ParsedResult *)parsedResultForString:(NSString *)s; + +@end diff --git a/iphone/ZXingWidget/ResultParser.m b/iphone/ZXingWidget/ResultParser.m new file mode 100644 index 000000000..0e5367695 --- /dev/null +++ b/iphone/ZXingWidget/ResultParser.m @@ -0,0 +1,66 @@ +// +// ResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "ResultParser.h" + +@implementation ResultParser + +static NSMutableSet *sResultParsers = nil; + ++ (void)registerResultParserClass:(Class)resultParser { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + @synchronized(self) { + if (!sResultParsers) { + sResultParsers = [[NSMutableSet alloc] init]; + } + [sResultParsers addObject:resultParser]; + } + [pool drain]; +} + ++ (NSSet *)resultParsers { + NSSet *resultParsers = nil; + @synchronized(self) { + resultParsers = [[sResultParsers copy] autorelease]; + } + return resultParsers; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { +#ifdef DEBUG + NSLog(@"parsing result:\n<<<\n%@\n>>>\n", s); +#endif + for (Class c in [self resultParsers]) { +#ifdef DEBUG + NSLog(@"trying %@", NSStringFromClass(c)); +#endif + ParsedResult *result = [c parsedResultForString:s]; + if (result != nil) { +#ifdef DEBUG + NSLog(@"parsed as %@ %@", NSStringFromClass([result class]), result); +#endif + return result; + } + } + return nil; +} + +@end diff --git a/iphone/ZXingWidget/SMSAction.h b/iphone/ZXingWidget/SMSAction.h new file mode 100644 index 000000000..544867880 --- /dev/null +++ b/iphone/ZXingWidget/SMSAction.h @@ -0,0 +1,34 @@ +// +// SMSAction.h +// ZXing +// +// Created by Christian Brunschen on 16/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "CallAction.h" + +@interface SMSAction : CallAction { + NSString *body; +} + +@property (nonatomic, copy) NSString *body; + ++ actionWithNumber:(NSString *)number body:(NSString *)body; ++ actionWithNumber:(NSString *)number; + +@end diff --git a/iphone/ZXingWidget/SMSAction.m b/iphone/ZXingWidget/SMSAction.m new file mode 100644 index 000000000..14eba42af --- /dev/null +++ b/iphone/ZXingWidget/SMSAction.m @@ -0,0 +1,85 @@ +// +// SMSAction.m +// ZXing +// +// Created by Christian Brunschen on 16/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "SMSAction.h" + +// currently, including a message body makes the iPhone not actually +// go to compose an SMS at all, just start the SMS app. Bummer. +#ifdef SMS_URL_INCLUDE_BODY +#undef SMS_URL_INCLUDE_BODY +#endif + +@implementation SMSAction + +@synthesize body; + ++ (NSURL *)urlForNumber:(NSString *)number withBody:(NSString *)body { + NSString *urlString = +#ifdef SMS_URL_INCLUDE_BODY + (body && [body length]) ? + [NSString stringWithFormat:@"sms:%@?body=%@", number, [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] : +#endif + [NSString stringWithFormat:@"sms:%@", number]; + return [NSURL URLWithString:urlString]; +} + +- initWithNumber:(NSString *)n body:(NSString *)b { + if ((self = [super initWithURL:[[self class] urlForNumber:n withBody:b]]) != nil) { + self.number = n; + self.body = b; + } + return self; +} + +- initWithNumber:(NSString *)n { + return [self initWithNumber:n body:nil]; +} + ++ actionWithNumber:(NSString *)number body:(NSString *)body { + return [[[self alloc] initWithNumber:number body:body] autorelease]; +} + ++ actionWithNumber:(NSString *)number { + return [self actionWithNumber:number body:nil]; +} + +- (NSString *)title { + return [NSString localizedStringWithFormat:NSLocalizedString(@"SMSAction action title", @"Compose SMS to %@"), self.number]; +} + +- (NSString *)alertTitle { + return NSLocalizedString(@"SMSAction alert title", @"Compose"); +} + +- (NSString *)alertMessage { + return [NSString localizedStringWithFormat:NSLocalizedString(@"SMSAction alert message", @"Compose SMS to %@?"), self.number]; +} + +- (NSString *)alertButtonTitle { + return NSLocalizedString(@"SMSAction alert button title", @"Compose"); +} + +- (void) dealloc { + [body release]; + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/SMSParsedResult.h b/iphone/ZXingWidget/SMSParsedResult.h new file mode 100644 index 000000000..3349d1b2c --- /dev/null +++ b/iphone/ZXingWidget/SMSParsedResult.h @@ -0,0 +1,36 @@ +// +// SMSParsedResult.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ParsedResult.h" + + +@interface SMSParsedResult : ParsedResult { + NSString *number; + NSString *body; +} + +@property (nonatomic, copy) NSString *number; +@property (nonatomic, copy) NSString *body; + +- (id)initWithNumber:(NSString *)n body:(NSString *)b; + +@end diff --git a/iphone/ZXingWidget/SMSParsedResult.m b/iphone/ZXingWidget/SMSParsedResult.m new file mode 100644 index 000000000..ac2205bcb --- /dev/null +++ b/iphone/ZXingWidget/SMSParsedResult.m @@ -0,0 +1,65 @@ +// +// SMSParsedResult.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "SMSParsedResult.h" +#import "SMSAction.h" + +@implementation SMSParsedResult + +@synthesize number; +@synthesize body; + +- (id)initWithNumber:(NSString *)n body:(NSString *)b { + if ((self = [super init]) != nil) { + self.number = n; + self.body = b; + } + return self; +} + +- (NSString *)stringForDisplay { + if (self.body) { + return [NSString stringWithFormat:@"%@\n%@", self.number, self.body]; + } + return self.number; +} + + ++ (NSString *)typeName { + return NSLocalizedString(@"SMSParsedResult type name", @"SMS"); +} + +- (UIImage *)icon { + return [UIImage imageNamed:@"sms.png"]; +} + +- (void)populateActions { + [actions addObject:[SMSAction actionWithNumber:self.number body:self.body]]; +} + +- (void) dealloc { + [number release]; + [body release]; + [super dealloc]; +} + + +@end diff --git a/iphone/ZXingWidget/SMSResultParser.h b/iphone/ZXingWidget/SMSResultParser.h new file mode 100644 index 000000000..d087edf4d --- /dev/null +++ b/iphone/ZXingWidget/SMSResultParser.h @@ -0,0 +1,29 @@ +// +// SMSResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + +@interface SMSResultParser : ResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/SMSResultParser.m b/iphone/ZXingWidget/SMSResultParser.m new file mode 100644 index 000000000..d6cf3e8e1 --- /dev/null +++ b/iphone/ZXingWidget/SMSResultParser.m @@ -0,0 +1,78 @@ +// +// SMSResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "SMSResultParser.h" +#import "SMSParsedResult.h" + +#define PREFIX @"sms:" + +@implementation SMSResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange prefixRange = [s rangeOfString:PREFIX options:NSCaseInsensitiveSearch]; + if (prefixRange.location == 0) { + int max = [s length]; + int restStart = prefixRange.location + prefixRange.length; + + // initial presuption: everything after the prefix is the number, and there is no body + NSRange numberRange = NSMakeRange(restStart, max - restStart); + NSRange bodyRange = NSMakeRange(NSNotFound, 0); + + // is there a query string? + NSRange queryRange = [s rangeOfString:@"?" options:0 range:numberRange]; + if (queryRange.location != NSNotFound) { + // truncate the number range at the beginning of the query string + numberRange.length = queryRange.location - numberRange.location; + + int paramsStart = queryRange.location + queryRange.length; + NSRange paramsRange = NSMakeRange(paramsStart, max - paramsStart); + NSRange bodyPrefixRange = [s rangeOfString:@"body=" options:0 range:paramsRange]; + if (bodyPrefixRange.location != NSNotFound) { + int bodyStart = bodyPrefixRange.location + bodyPrefixRange.length; + bodyRange = NSMakeRange(bodyStart, max - bodyStart); + NSRange ampRange = [s rangeOfString:@"&" options:0 range:bodyRange]; + if (ampRange.location != NSNotFound) { + // we found a '&', so we truncate the body range there + bodyRange.length = ampRange.location - bodyRange.location; + } + } + } + + // if there's a semicolon in the number, truncate the number there + NSRange semicolonRange = [s rangeOfString:@";" options:0 range:numberRange]; + if (semicolonRange.location != NSNotFound) { + numberRange.length = semicolonRange.location - numberRange.location; + } + + NSString *number = [s substringWithRange:numberRange]; + NSString *body = bodyRange.location != NSNotFound ? [s substringWithRange:bodyRange] : nil; + return [[[SMSParsedResult alloc] initWithNumber:number body:body] + autorelease]; + } + return nil; +} + + +@end diff --git a/iphone/ZXingWidget/SMSTOResultParser.h b/iphone/ZXingWidget/SMSTOResultParser.h new file mode 100644 index 000000000..43c7bc56d --- /dev/null +++ b/iphone/ZXingWidget/SMSTOResultParser.h @@ -0,0 +1,29 @@ +// +// SMSTOResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + +@interface SMSTOResultParser : ResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/SMSTOResultParser.m b/iphone/ZXingWidget/SMSTOResultParser.m new file mode 100644 index 000000000..a10a55c16 --- /dev/null +++ b/iphone/ZXingWidget/SMSTOResultParser.m @@ -0,0 +1,57 @@ +// +// SMSTOResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "SMSTOResultParser.h" +#import "SMSParsedResult.h" + +#define PREFIX @"SMSTO:" + +@implementation SMSTOResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange prefixRange = [s rangeOfString:PREFIX options:NSCaseInsensitiveSearch]; + if (prefixRange.location == 0) { + int max = [s length]; + int restStart = prefixRange.location + prefixRange.length; + NSRange searchRange = NSMakeRange(restStart, max - restStart); + NSRange colonRange = [s rangeOfString:@":" options:0 range:searchRange]; + if (colonRange.location != NSNotFound) { + NSRange numberRange = NSMakeRange(restStart, + colonRange.location - restStart); + int bodyStart = colonRange.location + colonRange.length; + NSRange bodyRange = NSMakeRange(bodyStart, max - bodyStart); + return [[[SMSParsedResult alloc] initWithNumber:[s substringWithRange:numberRange] + body:[s substringWithRange:bodyRange]] + autorelease]; + } else { + return [[[SMSParsedResult alloc] initWithNumber:[s substringFromIndex:restStart] + body:nil] + autorelease]; + } + } + return nil; +} + +@end diff --git a/iphone/ZXingWidget/ShowMapAction.h b/iphone/ZXingWidget/ShowMapAction.h new file mode 100644 index 000000000..3f3042332 --- /dev/null +++ b/iphone/ZXingWidget/ShowMapAction.h @@ -0,0 +1,34 @@ +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// +// ShowMapAction.h +// ZXing +// +// Created by Christian Brunschen on 05/06/2008. + +#import +#import "OpenUrlAction.h" + +@interface ShowMapAction : OpenUrlAction { + NSString *location; +} + +@property (nonatomic, copy) NSString *location; + +- (id)initWithLocation:(NSString *)location; ++ (id)actionWithLocation:(NSString *)location; + +@end diff --git a/iphone/ZXingWidget/ShowMapAction.m b/iphone/ZXingWidget/ShowMapAction.m new file mode 100644 index 000000000..f3817a23f --- /dev/null +++ b/iphone/ZXingWidget/ShowMapAction.m @@ -0,0 +1,68 @@ +// +// ShowMapAction.m +// ZXing +// +// Created by Christian Brunschen on 05/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "ShowMapAction.h" + + +@implementation ShowMapAction + +@synthesize location; + +static NSURL * URLForLocation(NSString *location) { + NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", + [location stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; + return [NSURL URLWithString:urlString]; +} + +- (id)initWithLocation:(NSString *)l { + if ((self = [super initWithURL:URLForLocation(l)]) != nil) { + self.location = l; + } + return self; +} + ++ (id)actionWithLocation:(NSString *)location { + return [[[self alloc] initWithLocation:location] autorelease]; +} + +- (NSString *)title { + return NSLocalizedString(@"ShowMapAction action title", @"Show on Map"); +} + +- (NSString *)alertTitle { + return NSLocalizedString(@"ShowMapAction alert title", @"Show on Map"); +} + +- (NSString *)alertMessage { + return [NSString stringWithFormat:NSLocalizedString(@"ShowMapAction alert message", @"Show location %@ on Map ?"), self.location]; +} + +- (NSString *)alertButtonTitle { + return NSLocalizedString(@"ShowMapAction alert button title", @"Show"); +} + + +- (void)dealloc { + [location release]; + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/TelParsedResult.h b/iphone/ZXingWidget/TelParsedResult.h new file mode 100644 index 000000000..6d7789da8 --- /dev/null +++ b/iphone/ZXingWidget/TelParsedResult.h @@ -0,0 +1,33 @@ +// +// TelParsedResult.h +// ZXing +// +// Created by Christian Brunschen on 23/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ParsedResult.h" + +@interface TelParsedResult : ParsedResult { + NSString *number; +} + +@property (nonatomic, copy) NSString *number; + +- (id)initWithNumber:(NSString *)n; + +@end diff --git a/iphone/ZXingWidget/TelParsedResult.m b/iphone/ZXingWidget/TelParsedResult.m new file mode 100644 index 000000000..d43118910 --- /dev/null +++ b/iphone/ZXingWidget/TelParsedResult.m @@ -0,0 +1,58 @@ +// +// TelParsedResult.m +// ZXing +// +// Created by Christian Brunschen on 23/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "TelParsedResult.h" +#import "CallAction.h" + +@implementation TelParsedResult + +@synthesize number; + +- (id)initWithNumber:(NSString *)n { + if ((self = [super init]) != nil) { + self.number = n; + } + return self; +} + +- (NSString *)stringForDisplay { + return self.number; +} + + ++ (NSString *)typeName { + return NSLocalizedString(@"TelParsedResult type name", @"Tel"); +} + +- (UIImage *)icon { + return [UIImage imageNamed:@"phone.png"]; +} + +- (void)populateActions { + [actions addObject:[CallAction actionWithNumber:self.number]]; +} + +- (void) dealloc { + [number release]; + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/TelResultParser.h b/iphone/ZXingWidget/TelResultParser.h new file mode 100644 index 000000000..dd989fef5 --- /dev/null +++ b/iphone/ZXingWidget/TelResultParser.h @@ -0,0 +1,29 @@ +// +// TelResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + +@interface TelResultParser : NSObject { + +} + +@end diff --git a/iphone/ZXingWidget/TelResultParser.m b/iphone/ZXingWidget/TelResultParser.m new file mode 100644 index 000000000..901221072 --- /dev/null +++ b/iphone/ZXingWidget/TelResultParser.m @@ -0,0 +1,44 @@ +// +// TelResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "TelResultParser.h" +#import "TelParsedResult.h" + +#define PREFIX @"tel:" + +@implementation TelResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange telRange = [s rangeOfString:PREFIX options:NSCaseInsensitiveSearch]; + if (telRange.location == 0) { + int restStart = telRange.location + telRange.length; + return [[[TelParsedResult alloc] initWithNumber:[s substringFromIndex:restStart]] + autorelease]; + } + return nil; +} + + +@end diff --git a/iphone/ZXingWidget/TextParsedResult.h b/iphone/ZXingWidget/TextParsedResult.h new file mode 100644 index 000000000..c71610474 --- /dev/null +++ b/iphone/ZXingWidget/TextParsedResult.h @@ -0,0 +1,34 @@ +// +// TextParsedResult.h +// ZXing +// +// Created by Christian Brunschen on 23/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import "ParsedResult.h" + +@interface TextParsedResult : ParsedResult { + NSString *text; +} + +@property (nonatomic, copy) NSString *text; + +- (id)initWithString:(NSString *)s; + +@end diff --git a/iphone/ZXingWidget/TextParsedResult.m b/iphone/ZXingWidget/TextParsedResult.m new file mode 100644 index 000000000..1572456e0 --- /dev/null +++ b/iphone/ZXingWidget/TextParsedResult.m @@ -0,0 +1,58 @@ +// +// TextParsedResult.m +// ZXing +// +// Created by Christian Brunschen on 23/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "TextParsedResult.h" +#import "EmailAction.h" + + +@implementation TextParsedResult + +@synthesize text; + +- (id)initWithString:(NSString *)s { + if ((self = [super init]) != nil) { + self.text = s; + } + return self; +} + ++ (NSString *)typeName { + return NSLocalizedString(@"TextParsedResult type name", @"Text"); +} + +- (UIImage *)icon { + return [UIImage imageNamed:@"text.png"]; +} + +- (NSString *)stringForDisplay { + return self.text; +} + +- (void) populateActions { + //[actions addObject:[EmailAction actionWithRecipient:@"recipient@domain" subject:@"QR Code Contents" body:text]]; +} + +- (void)dealloc { + [text release]; + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/TextResultParser.h b/iphone/ZXingWidget/TextResultParser.h new file mode 100644 index 000000000..3dc64adf4 --- /dev/null +++ b/iphone/ZXingWidget/TextResultParser.h @@ -0,0 +1,30 @@ +// +// TextResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + + +@interface TextResultParser : ResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/TextResultParser.m b/iphone/ZXingWidget/TextResultParser.m new file mode 100644 index 000000000..fcc6cbe7b --- /dev/null +++ b/iphone/ZXingWidget/TextResultParser.m @@ -0,0 +1,36 @@ +// +// TextResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "TextResultParser.h" +#import "TextParsedResult.h" + +@implementation TextResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + return [[[TextParsedResult alloc] initWithString:s] autorelease]; +} + + +@end diff --git a/iphone/ZXingWidget/TwoDDecoderResult.h b/iphone/ZXingWidget/TwoDDecoderResult.h new file mode 100644 index 000000000..62263eae1 --- /dev/null +++ b/iphone/ZXingWidget/TwoDDecoderResult.h @@ -0,0 +1,35 @@ +// +// TwoDDecoderResult.h +// ZXing +// +// Created by Christian Brunschen on 04/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface TwoDDecoderResult : NSObject { + NSString *text; + NSArray *points; +} + +@property (nonatomic, copy) NSString *text; +@property (nonatomic, retain) NSArray *points; + ++ (id)resultWithText:(NSString *)text points:(NSArray *)points; +- (id)initWithText:(NSString *)text points:(NSArray *)points; + +@end diff --git a/iphone/ZXingWidget/TwoDDecoderResult.m b/iphone/ZXingWidget/TwoDDecoderResult.m new file mode 100644 index 000000000..d83f66bd5 --- /dev/null +++ b/iphone/ZXingWidget/TwoDDecoderResult.m @@ -0,0 +1,52 @@ +// +// TwoDDecoderResult.m +// ZXing +// +// Created by Christian Brunschen on 04/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "TwoDDecoderResult.h" + + +@implementation TwoDDecoderResult + +@synthesize text; +@synthesize points; + ++ (id)resultWithText:(NSString *)text points:(NSArray *)points { + return [[[self alloc] initWithText:text points:points] autorelease]; +} + +- (id)initWithText:(NSString *)t points:(NSArray *)p { + if ((self = [super init]) != nil) { + self.text = t; + self.points = p; + } + return self; +} + +- (void)dealloc { + [text release]; + [points release]; + [super dealloc]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p> %@", [self class], self, self.text]; +} + +@end diff --git a/iphone/ZXingWidget/URIParsedResult.h b/iphone/ZXingWidget/URIParsedResult.h new file mode 100644 index 000000000..ae957e7dc --- /dev/null +++ b/iphone/ZXingWidget/URIParsedResult.h @@ -0,0 +1,45 @@ +// +// URIParsedResult.h +// ZXing +// +// Created by Christian Brunschen on 29/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ParsedResult.h" + +@interface NSString (ZXingURLExtensions) +- (bool) looksLikeAURI; +- (NSString *)massagedURLString; +@end + +@interface URIParsedResult : ParsedResult { + NSString *urlString; + NSString *title; + NSURL *URL; +} + +- (id)initWithURLString:(NSString *)s title:(NSString *)t URL:(NSURL *)ur; +- (id)initWithURLString:(NSString *)s title:(NSString *)t; +- (id)initWithURLString:(NSString *)s URL:(NSURL *)ur; +- (id)initWithURLString:(NSString *)s; + +@property (nonatomic, retain) NSString *urlString; +@property (nonatomic, retain) NSString *title; +@property (nonatomic, retain) NSURL *URL; + +@end diff --git a/iphone/ZXingWidget/URIParsedResult.m b/iphone/ZXingWidget/URIParsedResult.m new file mode 100644 index 000000000..0ab983322 --- /dev/null +++ b/iphone/ZXingWidget/URIParsedResult.m @@ -0,0 +1,87 @@ +// +// URIParsedResult.m +// ZXing +// +// Created by Christian Brunschen on 29/05/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "URIParsedResult.h" +#import "OpenUrlAction.h" +#import "EmailAction.h" +#import "SMSAction.h" + + +@implementation URIParsedResult + +@synthesize urlString; +@synthesize title; +@synthesize URL; + +- (ResultAction *)createAction { + return [OpenUrlAction actionWithURL:self.URL]; +} + +- (id)initWithURLString:(NSString *)s title:(NSString *)t URL:(NSURL *)url { + if ((self = [super init]) != nil) { + self.urlString = s; + self.title = t; + self.URL = url; + } + return self; +} + +- (id)initWithURLString:(NSString *)s URL:(NSURL *)url { + return [self initWithURLString:s title:nil URL:url]; +} + +- (id)initWithURLString:(NSString *)s title:(NSString *)t { + return [self initWithURLString:s title:t URL:[NSURL URLWithString:s]]; +} + +- (id)initWithURLString:(NSString *)s { + return [self initWithURLString:s title:nil URL:[NSURL URLWithString:s]]; +} + +- (NSString *)stringForDisplay { + return self.title ? + [NSString stringWithFormat:@"%@ <%@>", self.title, self.urlString] : + self.urlString; +} + ++ (NSString *)typeName { + return NSLocalizedString(@"URIParsedResult type name", @"URI"); +} + +- (UIImage *)icon { + return [UIImage imageNamed:@"link2.png"]; +} + +- (void)populateActions { +#ifdef DEBUG + NSLog(@"creating action to open URL '%@'", self.urlString); +#endif + + [actions addObject:[self createAction]]; +} + +- (void)dealloc { + [URL release]; + [urlString release]; + [super dealloc]; +} + +@end diff --git a/iphone/ZXingWidget/URLResultParser.h b/iphone/ZXingWidget/URLResultParser.h new file mode 100644 index 000000000..9cff23315 --- /dev/null +++ b/iphone/ZXingWidget/URLResultParser.h @@ -0,0 +1,30 @@ +// +// URIResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + + +@interface URLResultParser : ResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/URLResultParser.m b/iphone/ZXingWidget/URLResultParser.m new file mode 100644 index 000000000..df93f19dc --- /dev/null +++ b/iphone/ZXingWidget/URLResultParser.m @@ -0,0 +1,80 @@ +// +// URIResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "URLResultParser.h" +#import "URIParsedResult.h" + +@implementation NSString (ZXingURLExtensions) + +- (bool)looksLikeAURI { + if ([self rangeOfCharacterFromSet:[NSCharacterSet whitespaceCharacterSet]].location != NSNotFound) { + return false; + } + if ([self rangeOfString:@":"].location == NSNotFound) { + return false; + } + return true; +} + +- (NSString *)massagedURLString { + NSRange colonRange = [self rangeOfString:@":"]; + if (colonRange.location == NSNotFound) { + return [NSString stringWithFormat:@"http://%@", self]; + } else { + return [NSString stringWithFormat:@"%@%@", + [[self substringToIndex:colonRange.location] lowercaseString], + [self substringFromIndex:colonRange.location] + ]; + } +} + +@end + + +#define PREFIX @"URL:" + +@implementation URLResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange prefixRange = [s rangeOfString:PREFIX options:NSCaseInsensitiveSearch]; + if (prefixRange.location == 0) { + int restStart = prefixRange.location + prefixRange.length; + return [[[URIParsedResult alloc] initWithURLString:[[s substringFromIndex:restStart] massagedURLString]] + autorelease]; + } + + if ([s looksLikeAURI]) { + NSString *massaged = [s massagedURLString]; + NSURL *url = [NSURL URLWithString:massaged]; + if (url != nil) { + return [[[URIParsedResult alloc] initWithURLString:massaged URL:url] autorelease]; + } + } + + return nil; +} + + +@end diff --git a/iphone/ZXingWidget/URLTOResultParser.h b/iphone/ZXingWidget/URLTOResultParser.h new file mode 100644 index 000000000..3419acfe3 --- /dev/null +++ b/iphone/ZXingWidget/URLTOResultParser.h @@ -0,0 +1,29 @@ +// +// URLTOResultParser.h +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import "ResultParser.h" + +@interface URLTOResultParser : ResultParser { + +} + +@end diff --git a/iphone/ZXingWidget/URLTOResultParser.m b/iphone/ZXingWidget/URLTOResultParser.m new file mode 100644 index 000000000..73f2fc0b8 --- /dev/null +++ b/iphone/ZXingWidget/URLTOResultParser.m @@ -0,0 +1,54 @@ +// +// URLTOResultParser.m +// ZXing +// +// Created by Christian Brunschen on 25/06/2008. +/* + * Copyright 2008 ZXing authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "URLTOResultParser.h" +#import "URIParsedResult.h" + +#define PREFIX @"URLTO:" + +@implementation URLTOResultParser + ++ (void)load { + [ResultParser registerResultParserClass:self]; +} + ++ (ParsedResult *)parsedResultForString:(NSString *)s { + NSRange prefixRange = [s rangeOfString:PREFIX options:NSCaseInsensitiveSearch]; + if (prefixRange.location == 0) { + int max = [s length]; + int titleStart = prefixRange.location + prefixRange.length; + NSRange searchRange = NSMakeRange(titleStart, max - titleStart); + NSRange colonRange = [s rangeOfString:@":" options:0 range:searchRange]; + if (colonRange.location != NSNotFound) { + NSRange titleRange = NSMakeRange(titleStart, + colonRange.location - titleStart); + int linkStart = colonRange.location + colonRange.length; + NSRange linkRange = NSMakeRange(linkStart, max - linkStart); + return [[[URIParsedResult alloc] initWithURLString:[s substringWithRange:linkRange] + title:[s substringWithRange:titleRange]] + autorelease]; + } + } + return nil; +} + + +@end diff --git a/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.mode1v3 b/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.mode1v3 new file mode 100644 index 000000000..de3fd6ea2 --- /dev/null +++ b/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.mode1v3 @@ -0,0 +1,1464 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + E5345AC311988B53000CB77F + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + + Content + + PBXProjectModuleGUID + E5345FB4119B2651000CB77F + PBXProjectModuleLabel + ZXingWidgetController.m + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + E5345FB5119B2651000CB77F + PBXProjectModuleLabel + ZXingWidgetController.m + _historyCapacity + 0 + bookmark + E5345FC6119B26BD000CB77F + history + + E5345FA9119B2602000CB77F + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {821, 706}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 36 1508 821 747 0 1200 1920 1080 + + + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 206 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 0867D691FE84028FC02AAC07 + E53458B311987396000CB77F + E53458B411987396000CB77F + 08FB77AEFE84172EC02AAC07 + 32C88DFF0371C24200C91783 + 0867D69AFE84028FC02AAC07 + E5345D2811999F53000CB77F + 034768DFFF38A50411DB9C8B + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 40 + 27 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {206, 760}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {223, 778}} + GroupTreeTableConfiguration + + MainColumn + 206 + + RubberWindowFrame + 23 190 1142 819 0 0 1920 1178 + + Module + PBXSmartGroupTreeModule + Proportion + 223pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + ZXingWidgetController.m + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + ZXingWidgetController.m + _historyCapacity + 0 + bookmark + E5345FC5119B26BD000CB77F + history + + E5345CAF1198EE8B000CB77F + E5345E51119AE2DE000CB77F + E5345E6A119AE4BB000CB77F + E5345E6B119AE4BB000CB77F + E5345E74119AE5C4000CB77F + E5345E75119AE5C4000CB77F + E5345E76119AE5C4000CB77F + E5345E78119AE5C4000CB77F + E5345EC6119AF8AE000CB77F + E5345EC7119AF8AE000CB77F + E5345EC8119AF8AE000CB77F + E5345EC9119AF8AE000CB77F + E5345F10119B0503000CB77F + E5345F11119B0503000CB77F + E5345F12119B0503000CB77F + E5345F34119B094C000CB77F + E5345F35119B094C000CB77F + E5345F39119B094C000CB77F + E5345F72119B12AF000CB77F + E5345FAC119B2651000CB77F + E5345FAD119B2651000CB77F + E5345FAE119B2651000CB77F + E5345FAF119B2651000CB77F + E5345FB0119B2651000CB77F + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {914, 587}} + RubberWindowFrame + 23 190 1142 819 0 0 1920 1178 + + Module + PBXNavigatorGroup + Proportion + 587pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 592}, {914, 186}} + RubberWindowFrame + 23 190 1142 819 0 0 1920 1178 + + Module + XCDetailModule + Proportion + 186pt + + + Proportion + 914pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + E5345FB2119B2651000CB77F + 1CE0B1FE06471DED0097A5F4 + E5345FB3119B2651000CB77F + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + E5345AC411988B53000CB77F + E5345FB4119B2651000CB77F + /Users/dkavanagh/zxing/iphone/ZXingWidget/ZXingWidget.xcodeproj + + WindowString + 23 190 1142 819 0 0 1920 1178 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + ZXingWidgetController.m + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {872, 312}} + RubberWindowFrame + 1111 405 872 594 0 0 1920 1178 + + Module + PBXNavigatorGroup + Proportion + 312pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 317}, {872, 236}} + RubberWindowFrame + 1111 405 872 594 0 0 1920 1178 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 553pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + E5345AC411988B53000CB77F + E5345FB7119B2651000CB77F + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 1111 405 872 594 0 0 1920 1178 + WindowToolGUID + E5345AC411988B53000CB77F + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {316, 185}} + {{316, 0}, {378, 185}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 185}} + {{0, 185}, {694, 196}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 381}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 148 + + Frame + {{316, 0}, {378, 185}} + RubberWindowFrame + 51 501 694 422 0 0 1920 1178 + + RubberWindowFrame + 51 501 694 422 0 0 1920 1178 + + Module + PBXDebugSessionModule + Proportion + 381pt + + + Proportion + 381pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + E5345CD21198F149000CB77F + 1C162984064C10D400B95A72 + E5345CD31198F149000CB77F + E5345CD41198F149000CB77F + E5345CD51198F149000CB77F + E5345CD61198F149000CB77F + E5345CD71198F149000CB77F + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 51 501 694 422 0 0 1920 1178 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.pbxuser b/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.pbxuser new file mode 100644 index 000000000..a77b797c4 --- /dev/null +++ b/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.pbxuser @@ -0,0 +1,2560 @@ +// !$*UTF8*$! +{ + 0867D690FE84028FC02AAC07 /* Project object */ = { + activeBuildConfigurationName = Debug; + activeSDKPreference = iphoneos3.1.3; + activeTarget = D2AAC07D0554694100DB518D /* ZXingWidget */; + addToTargets = ( + D2AAC07D0554694100DB518D /* ZXingWidget */, + ); + breakpoints = ( + ); + codeSenseManager = E53458881198372D000CB77F /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 675, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 20, + 706, + 20, + 48.16259765625, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_SCM_ColumnID, + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 690, + 60, + 20, + 48, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 295380454; + PBXWorkspaceStateSaveDate = 295380454; + }; + perUserProjectItems = { + E5345AB811988B53000CB77F = E5345AB811988B53000CB77F /* PBXTextBookmark */; + E5345AB911988B53000CB77F = E5345AB911988B53000CB77F /* PBXTextBookmark */; + E5345ABA11988B53000CB77F = E5345ABA11988B53000CB77F /* PBXTextBookmark */; + E5345ABB11988B53000CB77F = E5345ABB11988B53000CB77F /* PBXTextBookmark */; + E5345ABC11988B53000CB77F = E5345ABC11988B53000CB77F /* PBXTextBookmark */; + E5345ABD11988B53000CB77F = E5345ABD11988B53000CB77F /* PBXTextBookmark */; + E5345ABE11988B53000CB77F = E5345ABE11988B53000CB77F /* PBXTextBookmark */; + E5345ABF11988B53000CB77F = E5345ABF11988B53000CB77F /* PBXTextBookmark */; + E5345AC011988B53000CB77F = E5345AC011988B53000CB77F /* PBXTextBookmark */; + E5345C041198D954000CB77F = E5345C041198D954000CB77F /* PBXTextBookmark */; + E5345C051198DA1C000CB77F = E5345C051198DA1C000CB77F /* PBXTextBookmark */; + E5345C061198DA1C000CB77F = E5345C061198DA1C000CB77F /* PBXTextBookmark */; + E5345C071198DA1C000CB77F = E5345C071198DA1C000CB77F /* PBXTextBookmark */; + E5345C081198DA1C000CB77F = E5345C081198DA1C000CB77F /* PBXTextBookmark */; + E5345C091198DA1C000CB77F = E5345C091198DA1C000CB77F /* PBXTextBookmark */; + E5345C0A1198DA1C000CB77F = E5345C0A1198DA1C000CB77F /* PBXTextBookmark */; + E5345C301198DC90000CB77F = E5345C301198DC90000CB77F /* PBXTextBookmark */; + E5345C631198E1F7000CB77F = E5345C631198E1F7000CB77F /* PBXTextBookmark */; + E5345C641198E1F7000CB77F = E5345C641198E1F7000CB77F /* PBXTextBookmark */; + E5345CAA1198EE8B000CB77F = E5345CAA1198EE8B000CB77F /* PBXTextBookmark */; + E5345CAB1198EE8B000CB77F = E5345CAB1198EE8B000CB77F /* PBXTextBookmark */; + E5345CAC1198EE8B000CB77F = E5345CAC1198EE8B000CB77F /* PBXTextBookmark */; + E5345CAD1198EE8B000CB77F = E5345CAD1198EE8B000CB77F /* PBXTextBookmark */; + E5345CAE1198EE8B000CB77F = E5345CAE1198EE8B000CB77F /* PBXTextBookmark */; + E5345CAF1198EE8B000CB77F = E5345CAF1198EE8B000CB77F /* PBXTextBookmark */; + E5345CB01198EE8B000CB77F = E5345CB01198EE8B000CB77F /* PBXTextBookmark */; + E5345CB11198EE8B000CB77F = E5345CB11198EE8B000CB77F /* PBXTextBookmark */; + E5345CB71198F0C9000CB77F = E5345CB71198F0C9000CB77F /* PBXTextBookmark */; + E5345CB81198F0C9000CB77F = E5345CB81198F0C9000CB77F /* PBXTextBookmark */; + E5345CB91198F0C9000CB77F = E5345CB91198F0C9000CB77F /* PBXTextBookmark */; + E5345CC01198F0F2000CB77F = E5345CC01198F0F2000CB77F /* PBXTextBookmark */; + E5345CC11198F0F2000CB77F = E5345CC11198F0F2000CB77F /* PBXTextBookmark */; + E5345CC21198F0F2000CB77F = E5345CC21198F0F2000CB77F /* PBXTextBookmark */; + E5345CC31198F0F2000CB77F = E5345CC31198F0F2000CB77F /* PBXTextBookmark */; + E5345CC41198F0F2000CB77F = E5345CC41198F0F2000CB77F /* PBXTextBookmark */; + E5345CC51198F0F2000CB77F = E5345CC51198F0F2000CB77F /* PBXTextBookmark */; + E5345CC61198F0F2000CB77F = E5345CC61198F0F2000CB77F /* PBXTextBookmark */; + E5345CC71198F0F2000CB77F = E5345CC71198F0F2000CB77F /* PBXTextBookmark */; + E5345CC81198F0F2000CB77F = E5345CC81198F0F2000CB77F /* PBXTextBookmark */; + E5345CCF1198F149000CB77F = E5345CCF1198F149000CB77F /* PBXTextBookmark */; + E5345CD01198F149000CB77F = E5345CD01198F149000CB77F /* PBXTextBookmark */; + E5345CD11198F149000CB77F = E5345CD11198F149000CB77F /* PBXTextBookmark */; + E5345CDC1198F18D000CB77F = E5345CDC1198F18D000CB77F /* PBXTextBookmark */; + E5345CDD1198F18D000CB77F = E5345CDD1198F18D000CB77F /* PBXTextBookmark */; + E5345CE4119984D5000CB77F = E5345CE4119984D5000CB77F /* PBXTextBookmark */; + E5345CE5119984D5000CB77F = E5345CE5119984D5000CB77F /* PBXTextBookmark */; + E5345CF811999BBF000CB77F = E5345CF811999BBF000CB77F /* PBXTextBookmark */; + E5345CF911999BBF000CB77F = E5345CF911999BBF000CB77F /* PBXTextBookmark */; + E5345CFA11999BBF000CB77F = E5345CFA11999BBF000CB77F /* PBXTextBookmark */; + E5345CFB11999BBF000CB77F = E5345CFB11999BBF000CB77F /* PBXTextBookmark */; + E5345CFC11999BBF000CB77F = E5345CFC11999BBF000CB77F /* PBXTextBookmark */; + E5345CFD11999BBF000CB77F = E5345CFD11999BBF000CB77F /* PBXTextBookmark */; + E5345D0411999D37000CB77F = E5345D0411999D37000CB77F /* PBXTextBookmark */; + E5345D0511999D37000CB77F = E5345D0511999D37000CB77F /* PBXTextBookmark */; + E5345D0611999D37000CB77F = E5345D0611999D37000CB77F /* PBXTextBookmark */; + E5345D0B11999D92000CB77F = E5345D0B11999D92000CB77F /* PBXTextBookmark */; + E5345D1E11999E6F000CB77F = E5345D1E11999E6F000CB77F /* PBXTextBookmark */; + E5345D2511999F1D000CB77F = E5345D2511999F1D000CB77F /* PBXTextBookmark */; + E5345D2611999F1D000CB77F = E5345D2611999F1D000CB77F /* PBXTextBookmark */; + E5345D2711999F1D000CB77F = E5345D2711999F1D000CB77F /* PBXTextBookmark */; + E5345D321199A033000CB77F = E5345D321199A033000CB77F /* PBXTextBookmark */; + E5345D331199A033000CB77F = E5345D331199A033000CB77F /* PBXTextBookmark */; + E5345D341199A033000CB77F = E5345D341199A033000CB77F /* PBXTextBookmark */; + E5345D351199A033000CB77F = E5345D351199A033000CB77F /* PBXTextBookmark */; + E5345D361199A033000CB77F = E5345D361199A033000CB77F /* PBXTextBookmark */; + E5345D391199A033000CB77F = E5345D391199A033000CB77F /* PBXBookmark */; + E5345D3A1199A033000CB77F = E5345D3A1199A033000CB77F /* PBXTextBookmark */; + E5345D451199A26A000CB77F = E5345D451199A26A000CB77F /* PBXTextBookmark */; + E5345D461199A26A000CB77F = E5345D461199A26A000CB77F /* PBXTextBookmark */; + E5345D471199A26A000CB77F = E5345D471199A26A000CB77F /* PBXTextBookmark */; + E5345D481199A26A000CB77F = E5345D481199A26A000CB77F /* PBXTextBookmark */; + E5345D551199A417000CB77F = E5345D551199A417000CB77F /* PBXTextBookmark */; + E5345D561199A417000CB77F = E5345D561199A417000CB77F /* PBXTextBookmark */; + E5345D611199A5D8000CB77F = E5345D611199A5D8000CB77F /* PBXTextBookmark */; + E5345D621199A5D8000CB77F = E5345D621199A5D8000CB77F /* PBXTextBookmark */; + E5345D6B1199A5E7000CB77F = E5345D6B1199A5E7000CB77F /* PBXTextBookmark */; + E5345D6C1199A5E7000CB77F = E5345D6C1199A5E7000CB77F /* PBXTextBookmark */; + E5345D6D1199A5E7000CB77F = E5345D6D1199A5E7000CB77F /* PBXTextBookmark */; + E5345D6E1199A5E7000CB77F = E5345D6E1199A5E7000CB77F /* PBXTextBookmark */; + E5345D7C1199A8B6000CB77F = E5345D7C1199A8B6000CB77F /* PBXTextBookmark */; + E5345D7D1199A8B6000CB77F = E5345D7D1199A8B6000CB77F /* PBXTextBookmark */; + E5345D7E1199A8B6000CB77F = E5345D7E1199A8B6000CB77F /* PBXTextBookmark */; + E5345D871199BD4C000CB77F = E5345D871199BD4C000CB77F /* PBXTextBookmark */; + E5345D881199BD4C000CB77F = E5345D881199BD4C000CB77F /* PBXTextBookmark */; + E5345D891199BD4C000CB77F = E5345D891199BD4C000CB77F /* PBXTextBookmark */; + E5345D8A1199BD4C000CB77F = E5345D8A1199BD4C000CB77F /* PBXTextBookmark */; + E5345D9A1199C02F000CB77F = E5345D9A1199C02F000CB77F /* PBXTextBookmark */; + E5345D9B1199C02F000CB77F = E5345D9B1199C02F000CB77F /* PBXTextBookmark */; + E5345DA21199C1B4000CB77F = E5345DA21199C1B4000CB77F /* PBXTextBookmark */; + E5345DA31199C1B4000CB77F = E5345DA31199C1B4000CB77F /* PBXTextBookmark */; + E5345DA41199C1B4000CB77F = E5345DA41199C1B4000CB77F /* PBXTextBookmark */; + E5345DA51199C1B4000CB77F = E5345DA51199C1B4000CB77F /* PBXTextBookmark */; + E5345DAE119A2CF9000CB77F = E5345DAE119A2CF9000CB77F /* PBXTextBookmark */; + E5345DAF119A2CF9000CB77F = E5345DAF119A2CF9000CB77F /* PBXTextBookmark */; + E5345DB0119A2CF9000CB77F = E5345DB0119A2CF9000CB77F /* PBXTextBookmark */; + E5345DB1119A2CF9000CB77F = E5345DB1119A2CF9000CB77F /* PBXTextBookmark */; + E5345DB2119A2CF9000CB77F = E5345DB2119A2CF9000CB77F /* PBXTextBookmark */; + E5345DD6119A2EF2000CB77F = E5345DD6119A2EF2000CB77F /* PBXTextBookmark */; + E5345DD7119A2EF2000CB77F = E5345DD7119A2EF2000CB77F /* PBXTextBookmark */; + E5345DE1119A2FC5000CB77F = E5345DE1119A2FC5000CB77F /* PBXTextBookmark */; + E5345E16119A3F15000CB77F = E5345E16119A3F15000CB77F /* PBXTextBookmark */; + E5345E17119A3F15000CB77F = E5345E17119A3F15000CB77F /* PBXTextBookmark */; + E5345E18119A3F15000CB77F = E5345E18119A3F15000CB77F /* PBXTextBookmark */; + E5345E19119A3F15000CB77F = E5345E19119A3F15000CB77F /* PBXTextBookmark */; + E5345E1A119A3F15000CB77F = E5345E1A119A3F15000CB77F /* PBXTextBookmark */; + E5345E51119AE2DE000CB77F = E5345E51119AE2DE000CB77F /* PBXTextBookmark */; + E5345E52119AE2DE000CB77F = E5345E52119AE2DE000CB77F /* PBXTextBookmark */; + E5345E53119AE2DE000CB77F = E5345E53119AE2DE000CB77F /* PBXTextBookmark */; + E5345E54119AE2DE000CB77F = E5345E54119AE2DE000CB77F /* PBXTextBookmark */; + E5345E55119AE2DE000CB77F = E5345E55119AE2DE000CB77F /* PBXTextBookmark */; + E5345E56119AE2DE000CB77F = E5345E56119AE2DE000CB77F /* PBXTextBookmark */; + E5345E57119AE2DE000CB77F = E5345E57119AE2DE000CB77F /* PBXTextBookmark */; + E5345E58119AE2DE000CB77F = E5345E58119AE2DE000CB77F /* PBXTextBookmark */; + E5345E59119AE2DE000CB77F = E5345E59119AE2DE000CB77F /* PBXTextBookmark */; + E5345E5E119AE4AD000CB77F = E5345E5E119AE4AD000CB77F /* PBXTextBookmark */; + E5345E5F119AE4AD000CB77F = E5345E5F119AE4AD000CB77F /* PBXTextBookmark */; + E5345E60119AE4AD000CB77F = E5345E60119AE4AD000CB77F /* PBXTextBookmark */; + E5345E65119AE4BB000CB77F = E5345E65119AE4BB000CB77F /* PBXTextBookmark */; + E5345E66119AE4BB000CB77F = E5345E66119AE4BB000CB77F /* PBXTextBookmark */; + E5345E67119AE4BB000CB77F = E5345E67119AE4BB000CB77F /* PBXTextBookmark */; + E5345E68119AE4BB000CB77F = E5345E68119AE4BB000CB77F /* PBXTextBookmark */; + E5345E69119AE4BB000CB77F = E5345E69119AE4BB000CB77F /* PBXTextBookmark */; + E5345E6A119AE4BB000CB77F = E5345E6A119AE4BB000CB77F /* PBXTextBookmark */; + E5345E6B119AE4BB000CB77F = E5345E6B119AE4BB000CB77F /* PBXTextBookmark */; + E5345E6C119AE4BB000CB77F = E5345E6C119AE4BB000CB77F /* PBXTextBookmark */; + E5345E6D119AE4BB000CB77F = E5345E6D119AE4BB000CB77F /* PBXTextBookmark */; + E5345E6E119AE4BB000CB77F = E5345E6E119AE4BB000CB77F /* PBXTextBookmark */; + E5345E74119AE5C4000CB77F = E5345E74119AE5C4000CB77F /* PBXTextBookmark */; + E5345E75119AE5C4000CB77F = E5345E75119AE5C4000CB77F /* PBXTextBookmark */; + E5345E76119AE5C4000CB77F = E5345E76119AE5C4000CB77F /* PBXTextBookmark */; + E5345E77119AE5C4000CB77F = E5345E77119AE5C4000CB77F /* PBXTextBookmark */; + E5345E78119AE5C4000CB77F = E5345E78119AE5C4000CB77F /* PBXTextBookmark */; + E5345E79119AE5C4000CB77F = E5345E79119AE5C4000CB77F /* PBXTextBookmark */; + E5345E7A119AE5C4000CB77F = E5345E7A119AE5C4000CB77F /* PBXTextBookmark */; + E5345E7F119AE66A000CB77F = E5345E7F119AE66A000CB77F /* PBXTextBookmark */; + E5345E8A119AE692000CB77F = E5345E8A119AE692000CB77F /* PBXTextBookmark */; + E5345E9E119AF6FD000CB77F = E5345E9E119AF6FD000CB77F /* PBXTextBookmark */; + E5345E9F119AF6FD000CB77F = E5345E9F119AF6FD000CB77F /* PBXTextBookmark */; + E5345EA0119AF6FD000CB77F = E5345EA0119AF6FD000CB77F /* PBXTextBookmark */; + E5345EA2119AF6FD000CB77F = E5345EA2119AF6FD000CB77F /* PBXTextBookmark */; + E5345EAB119AF74B000CB77F = E5345EAB119AF74B000CB77F /* PBXTextBookmark */; + E5345EAC119AF74B000CB77F = E5345EAC119AF74B000CB77F /* PBXTextBookmark */; + E5345EAE119AF74B000CB77F = E5345EAE119AF74B000CB77F /* PBXTextBookmark */; + E5345EBF119AF8A4000CB77F = E5345EBF119AF8A4000CB77F /* PBXTextBookmark */; + E5345EC0119AF8A4000CB77F = E5345EC0119AF8A4000CB77F /* PBXTextBookmark */; + E5345EC1119AF8A4000CB77F = E5345EC1119AF8A4000CB77F /* PBXTextBookmark */; + E5345EC6119AF8AE000CB77F = E5345EC6119AF8AE000CB77F /* PBXTextBookmark */; + E5345EC7119AF8AE000CB77F = E5345EC7119AF8AE000CB77F /* PBXTextBookmark */; + E5345EC8119AF8AE000CB77F = E5345EC8119AF8AE000CB77F /* PBXTextBookmark */; + E5345EC9119AF8AE000CB77F = E5345EC9119AF8AE000CB77F /* PBXTextBookmark */; + E5345ECA119AF8AE000CB77F = E5345ECA119AF8AE000CB77F /* PBXTextBookmark */; + E5345ECB119AF8AE000CB77F = E5345ECB119AF8AE000CB77F /* PBXTextBookmark */; + E5345ECC119AF8AE000CB77F = E5345ECC119AF8AE000CB77F /* PBXTextBookmark */; + E5345ECD119AF8AE000CB77F = E5345ECD119AF8AE000CB77F /* PBXTextBookmark */; + E5345ECF119AF8AE000CB77F = E5345ECF119AF8AE000CB77F /* PBXTextBookmark */; + E5345ED0119AF8AE000CB77F = E5345ED0119AF8AE000CB77F /* PBXTextBookmark */; + E5345ED1119AF8AE000CB77F = E5345ED1119AF8AE000CB77F /* PBXTextBookmark */; + E5345ED2119AF8AE000CB77F = E5345ED2119AF8AE000CB77F /* PBXTextBookmark */; + E5345ED3119AF8AE000CB77F = E5345ED3119AF8AE000CB77F /* PBXTextBookmark */; + E5345ED4119AF8AE000CB77F = E5345ED4119AF8AE000CB77F /* PBXTextBookmark */; + E5345ED5119AF8AE000CB77F = E5345ED5119AF8AE000CB77F /* PBXTextBookmark */; + E5345F01119B0494000CB77F = E5345F01119B0494000CB77F /* PBXTextBookmark */; + E5345F02119B0494000CB77F = E5345F02119B0494000CB77F /* PBXTextBookmark */; + E5345F03119B0494000CB77F = E5345F03119B0494000CB77F /* PBXTextBookmark */; + E5345F10119B0503000CB77F = E5345F10119B0503000CB77F /* PBXTextBookmark */; + E5345F11119B0503000CB77F = E5345F11119B0503000CB77F /* PBXTextBookmark */; + E5345F12119B0503000CB77F = E5345F12119B0503000CB77F /* PBXTextBookmark */; + E5345F13119B0503000CB77F = E5345F13119B0503000CB77F /* PBXTextBookmark */; + E5345F14119B0503000CB77F = E5345F14119B0503000CB77F /* PBXTextBookmark */; + E5345F15119B0503000CB77F = E5345F15119B0503000CB77F /* PBXTextBookmark */; + E5345F33119B094C000CB77F = E5345F33119B094C000CB77F /* PBXTextBookmark */; + E5345F34119B094C000CB77F = E5345F34119B094C000CB77F /* PBXTextBookmark */; + E5345F35119B094C000CB77F = E5345F35119B094C000CB77F /* PBXTextBookmark */; + E5345F37119B094C000CB77F = E5345F37119B094C000CB77F /* PBXTextBookmark */; + E5345F38119B094C000CB77F = E5345F38119B094C000CB77F /* PBXTextBookmark */; + E5345F39119B094C000CB77F = E5345F39119B094C000CB77F /* PBXTextBookmark */; + E5345F3A119B094C000CB77F = E5345F3A119B094C000CB77F /* PBXTextBookmark */; + E5345F3B119B094C000CB77F = E5345F3B119B094C000CB77F /* PBXTextBookmark */; + E5345F3C119B094C000CB77F = E5345F3C119B094C000CB77F /* PBXTextBookmark */; + E5345F3F119B09E7000CB77F = E5345F3F119B09E7000CB77F /* PBXTextBookmark */; + E5345F40119B09E7000CB77F = E5345F40119B09E7000CB77F /* PBXTextBookmark */; + E5345F41119B09E7000CB77F = E5345F41119B09E7000CB77F /* PBXTextBookmark */; + E5345F43119B09E7000CB77F = E5345F43119B09E7000CB77F /* PBXTextBookmark */; + E5345F49119B09F8000CB77F = E5345F49119B09F8000CB77F /* PBXTextBookmark */; + E5345F72119B12AF000CB77F = E5345F72119B12AF000CB77F /* PBXTextBookmark */; + E5345F73119B12AF000CB77F = E5345F73119B12AF000CB77F /* PBXTextBookmark */; + E5345F74119B12AF000CB77F = E5345F74119B12AF000CB77F /* PBXTextBookmark */; + E5345F89119B13D3000CB77F = E5345F89119B13D3000CB77F /* PBXTextBookmark */; + E5345F8C119B1408000CB77F = E5345F8C119B1408000CB77F /* PBXTextBookmark */; + E5345F93119B1D3A000CB77F = E5345F93119B1D3A000CB77F /* PBXTextBookmark */; + E5345F96119B233D000CB77F = E5345F96119B233D000CB77F /* PBXTextBookmark */; + E5345F9B119B2588000CB77F = E5345F9B119B2588000CB77F /* PBXTextBookmark */; + E5345FA9119B2602000CB77F /* XCBuildMessageTextBookmark */ = E5345FA9119B2602000CB77F /* XCBuildMessageTextBookmark */; + E5345FAC119B2651000CB77F /* PBXTextBookmark */ = E5345FAC119B2651000CB77F /* PBXTextBookmark */; + E5345FAD119B2651000CB77F /* PBXTextBookmark */ = E5345FAD119B2651000CB77F /* PBXTextBookmark */; + E5345FAE119B2651000CB77F /* PBXTextBookmark */ = E5345FAE119B2651000CB77F /* PBXTextBookmark */; + E5345FAF119B2651000CB77F /* PBXTextBookmark */ = E5345FAF119B2651000CB77F /* PBXTextBookmark */; + E5345FB0119B2651000CB77F /* PBXTextBookmark */ = E5345FB0119B2651000CB77F /* PBXTextBookmark */; + E5345FB1119B2651000CB77F /* PBXTextBookmark */ = E5345FB1119B2651000CB77F /* PBXTextBookmark */; + E5345FB6119B2651000CB77F /* PBXTextBookmark */ = E5345FB6119B2651000CB77F /* PBXTextBookmark */; + E5345FBC119B267E000CB77F /* PBXTextBookmark */ = E5345FBC119B267E000CB77F /* PBXTextBookmark */; + E5345FBD119B267E000CB77F /* PBXTextBookmark */ = E5345FBD119B267E000CB77F /* PBXTextBookmark */; + E5345FBF119B2686000CB77F /* XCBuildMessageTextBookmark */ = E5345FBF119B2686000CB77F /* XCBuildMessageTextBookmark */; + E5345FC0119B2686000CB77F /* PBXTextBookmark */ = E5345FC0119B2686000CB77F /* PBXTextBookmark */; + E5345FC5119B26BD000CB77F /* PBXTextBookmark */ = E5345FC5119B26BD000CB77F /* PBXTextBookmark */; + E5345FC6119B26BD000CB77F /* PBXTextBookmark */ = E5345FC6119B26BD000CB77F /* PBXTextBookmark */; + }; + sourceControlManager = E53458871198372D000CB77F /* Source Control */; + userBuildSettings = { + }; + }; + AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 530}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 188}"; + }; + }; + D2AAC07D0554694100DB518D /* ZXingWidget */ = { + activeExec = 0; + }; + E53458871198372D000CB77F /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + E53458881198372D000CB77F /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + E534588911983738000CB77F /* ZXingWidgetController.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 624}}"; + sepNavSelRange = "{1359, 0}"; + sepNavVisRange = "{175, 1219}"; + sepNavWindowFrame = "{{15, 1472}, {821, 803}}"; + }; + }; + E534588A11983738000CB77F /* ZXingWidgetController.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {999, 2158}}"; + sepNavSelRange = "{4730, 0}"; + sepNavVisRange = "{2970, 1853}"; + sepNavWindowFrame = "{{36, 1452}, {821, 803}}"; + }; + }; + E534588B11983738000CB77F /* OverlayView.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 530}}"; + sepNavSelRange = "{650, 0}"; + sepNavVisRange = "{0, 1091}"; + }; + }; + E534588C11983738000CB77F /* OverlayView.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 2171}}"; + sepNavSelRange = "{1520, 0}"; + sepNavVisRange = "{4096, 972}"; + }; + }; + E534589211983771000CB77F /* Decoder.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 650}}"; + sepNavSelRange = "{801, 0}"; + sepNavVisRange = "{118, 1333}"; + }; + }; + E534589311983771000CB77F /* Decoder.mm */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.cpp.objcpp; + name = Decoder.mm; + path = "/Users/dkavanagh/zxing-ro-mine/iphone/ZXingWidget/Decoder.mm"; + sourceTree = ""; + }; + E53458961198379E000CB77F /* DecoderDelegate.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {964, 530}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1298}"; + }; + }; + E534589C11984A27000CB77F /* TwoDDecoderResult.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 550}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1020}"; + }; + }; + E534589D11984A27000CB77F /* TwoDDecoderResult.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 663}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1125}"; + }; + }; + E53458A011984A3E000CB77F /* FormatReader.mm */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 845}}"; + sepNavSelRange = "{1150, 0}"; + sepNavVisRange = "{561, 906}"; + }; + }; + E53458A111984A3E000CB77F /* MultiFormatReader.mm */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 559}}"; + sepNavSelRange = "{788, 0}"; + sepNavVisRange = "{0, 1208}"; + }; + }; + E53458A211984A3E000CB77F /* FormatReader.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 530}}"; + sepNavSelRange = "{704, 0}"; + sepNavVisRange = "{0, 1103}"; + }; + }; + E53458C511987396000CB77F /* Counted.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {811, 2535}}"; + sepNavSelRange = "{789, 20}"; + sepNavVisRange = "{176, 683}"; + }; + }; + E53458FB11987396000CB77F /* MultiFormatReader.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 663}}"; + sepNavSelRange = "{1108, 0}"; + sepNavVisRange = "{258, 1476}"; + }; + }; + E53458FC11987396000CB77F /* MultiFormatReader.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 530}}"; + sepNavSelRange = "{797, 0}"; + sepNavVisRange = "{0, 999}"; + }; + }; + E534593711987396000CB77F /* QRCodeReader.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {811, 1079}}"; + sepNavSelRange = "{1642, 0}"; + sepNavVisRange = "{1225, 789}"; + }; + }; + E534593B11987396000CB77F /* Reader.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 530}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 770}"; + }; + }; + E534593C11987396000CB77F /* Reader.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 533}}"; + sepNavSelRange = "{814, 0}"; + sepNavVisRange = "{0, 1017}"; + }; + }; + E534593F11987396000CB77F /* Result.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {811, 780}}"; + sepNavSelRange = "{1319, 0}"; + sepNavVisRange = "{1005, 429}"; + }; + }; + E534594211987396000CB77F /* ResultPoint.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 530}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 990}"; + }; + }; + E53459D5119876A5000CB77F /* ResultParser.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 530}}"; + sepNavSelRange = "{733, 0}"; + sepNavVisRange = "{0, 890}"; + }; + }; + E53459D6119876A5000CB77F /* ResultParser.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 819}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{498, 1077}"; + }; + }; + E53459F8119876A5000CB77F /* ParsedResult.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 530}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 905}"; + }; + }; + E53459F9119876A5000CB77F /* ParsedResult.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 1365}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1084}"; + }; + }; + E5345AB811988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458961198379E000CB77F /* DecoderDelegate.h */; + name = "DecoderDelegate.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 682; + vrLoc = 0; + }; + E5345AB911988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589211983771000CB77F /* Decoder.h */; + name = "Decoder.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1281; + vrLoc = 0; + }; + E5345ABA11988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 28"; + rLen = 0; + rLoc = 790; + rType = 0; + vrLen = 1496; + vrLoc = 356; + }; + E5345ABB11988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1442; + vrLoc = 0; + }; + E5345ABC11988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 128"; + rLen = 0; + rLoc = 4401; + rType = 0; + vrLen = 1461; + vrLoc = 3810; + }; + E5345ABD11988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 18"; + rLen = 0; + rLoc = 659; + rType = 0; + vrLen = 1342; + vrLoc = 0; + }; + E5345ABE11988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458C511987396000CB77F /* Counted.h */; + name = "Counted.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1122; + vrLoc = 176; + }; + E5345ABF11988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 18"; + rLen = 0; + rLoc = 650; + rType = 0; + vrLen = 1146; + vrLoc = 0; + }; + E5345AC011988B53000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 18"; + rLen = 0; + rLoc = 650; + rType = 0; + vrLen = 1146; + vrLoc = 0; + }; + E5345C041198D954000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 9"; + rLen = 0; + rLoc = 272; + rType = 0; + vrLen = 1146; + vrLoc = 0; + }; + E5345C051198DA1C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 24"; + rLen = 0; + rLoc = 762; + rType = 0; + vrLen = 941; + vrLoc = 175; + }; + E5345C061198DA1C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534593F11987396000CB77F /* Result.cpp */; + name = "Result.cpp: 50"; + rLen = 0; + rLoc = 1319; + rType = 0; + vrLen = 429; + vrLoc = 1005; + }; + E5345C071198DA1C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 22"; + rLen = 0; + rLoc = 651; + rType = 0; + vrLen = 961; + vrLoc = 0; + }; + E5345C081198DA1C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A211984A3E000CB77F /* FormatReader.h */; + name = "FormatReader.h: 22"; + rLen = 0; + rLoc = 704; + rType = 0; + vrLen = 684; + vrLoc = 287; + }; + E5345C091198DA1C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Control reaches end of non-void function"; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + rLen = 1; + rLoc = 89; + rType = 1; + }; + E5345C0A1198DA1C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 83"; + rLen = 0; + rLoc = 2777; + rType = 0; + vrLen = 821; + vrLoc = 2510; + }; + E5345C301198DC90000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 9"; + rLen = 0; + rLoc = 272; + rType = 0; + vrLen = 1146; + vrLoc = 0; + }; + E5345C631198E1F7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Request for member 'points' in something not a structure or union"; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + rLen = 1; + rLoc = 142; + rType = 1; + }; + E5345C641198E1F7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 131"; + rLen = 0; + rLoc = 4623; + rType = 0; + vrLen = 854; + vrLoc = 4388; + }; + E5345CAA1198EE8B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 9"; + rLen = 0; + rLoc = 272; + rType = 0; + vrLen = 1146; + vrLoc = 0; + }; + E5345CAB1198EE8B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 26"; + rLen = 23; + rLoc = 797; + rType = 0; + vrLen = 1342; + vrLoc = 0; + }; + E5345CAC1198EE8B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589C11984A27000CB77F /* TwoDDecoderResult.h */; + name = "TwoDDecoderResult.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1020; + vrLoc = 0; + }; + E5345CAD1198EE8B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; + name = "MultiFormatReader.cpp: 34"; + rLen = 0; + rLoc = 1256; + rType = 0; + vrLen = 1584; + vrLoc = 0; + }; + E5345CAE1198EE8B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FC11987396000CB77F /* MultiFormatReader.h */; + name = "MultiFormatReader.h: 25"; + rLen = 0; + rLoc = 797; + rType = 0; + vrLen = 999; + vrLoc = 0; + }; + E5345CAF1198EE8B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */; + name = "ZXingWidget_Prefix.pch: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 188; + vrLoc = 0; + }; + E5345CB01198EE8B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 127"; + rLen = 0; + rLoc = 4622; + rType = 0; + vrLen = 1400; + vrLoc = 3815; + }; + E5345CB11198EE8B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 33"; + rLen = 0; + rLoc = 972; + rType = 0; + vrLen = 1128; + vrLoc = 0; + }; + E5345CB71198F0C9000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 128"; + rLen = 0; + rLoc = 4623; + rType = 0; + vrLen = 900; + vrLoc = 4257; + }; + E5345CB81198F0C9000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Stray '@' in program"; + fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; + rLen = 1; + rLoc = 31; + rType = 1; + }; + E5345CB91198F0C9000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; + name = "MultiFormatReader.cpp: 32"; + rLen = 0; + rLoc = 1108; + rType = 0; + vrLen = 867; + vrLoc = 871; + }; + E5345CC01198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FC11987396000CB77F /* MultiFormatReader.h */; + name = "MultiFormatReader.h: 25"; + rLen = 0; + rLoc = 797; + rType = 0; + vrLen = 999; + vrLoc = 0; + }; + E5345CC11198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 127"; + rLen = 0; + rLoc = 4622; + rType = 0; + vrLen = 1400; + vrLoc = 3815; + }; + E5345CC21198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589211983771000CB77F /* Decoder.h */; + name = "Decoder.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1330; + vrLoc = 121; + }; + E5345CC31198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 140"; + rLen = 0; + rLoc = 4795; + rType = 0; + vrLen = 1168; + vrLoc = 4408; + }; + E5345CC41198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A211984A3E000CB77F /* FormatReader.h */; + name = "FormatReader.h: 22"; + rLen = 0; + rLoc = 704; + rType = 0; + vrLen = 1103; + vrLoc = 0; + }; + E5345CC51198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A011984A3E000CB77F /* FormatReader.mm */; + name = "FormatReader.mm: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 933; + vrLoc = 485; + }; + E5345CC61198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 19"; + rLen = 0; + rLoc = 674; + rType = 0; + vrLen = 1122; + vrLoc = 0; + }; + E5345CC71198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Stray '@' in program"; + fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; + rLen = 1; + rLoc = 31; + rType = 1; + }; + E5345CC81198F0F2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; + name = "MultiFormatReader.cpp: 32"; + rLen = 0; + rLoc = 1108; + rType = 0; + vrLen = 1532; + vrLoc = 258; + }; + E5345CCF1198F149000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; + name = "MultiFormatReader.cpp: 32"; + rLen = 0; + rLoc = 1108; + rType = 0; + vrLen = 1476; + vrLoc = 258; + }; + E5345CD01198F149000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 140"; + rLen = 0; + rLoc = 4795; + rType = 0; + vrLen = 1168; + vrLoc = 4408; + }; + E5345CD11198F149000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 140"; + rLen = 0; + rLoc = 4795; + rType = 0; + vrLen = 1168; + vrLoc = 4408; + }; + E5345CDC1198F18D000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 140"; + rLen = 0; + rLoc = 4795; + rType = 0; + vrLen = 1168; + vrLoc = 4408; + }; + E5345CDD1198F18D000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 129"; + rLen = 0; + rLoc = 4777; + rType = 0; + vrLen = 1576; + vrLoc = 3306; + }; + E5345CE4119984D5000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 129"; + rLen = 0; + rLoc = 4777; + rType = 0; + vrLen = 1576; + vrLoc = 3306; + }; + E5345CE5119984D5000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 137"; + rLen = 0; + rLoc = 4654; + rType = 0; + vrLen = 1158; + vrLoc = 3758; + }; + E5345CF811999BBF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 137"; + rLen = 0; + rLoc = 4654; + rType = 0; + vrLen = 1158; + vrLoc = 3758; + }; + E5345CF911999BBF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 129"; + rLen = 0; + rLoc = 4777; + rType = 0; + vrLen = 1576; + vrLoc = 3306; + }; + E5345CFA11999BBF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 26"; + rLen = 23; + rLoc = 797; + rType = 0; + vrLen = 1342; + vrLoc = 0; + }; + E5345CFB11999BBF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 22"; + rLen = 0; + rLoc = 783; + rType = 0; + vrLen = 858; + vrLoc = 0; + }; + E5345CFC11999BBF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 147"; + rLen = 0; + rLoc = 4938; + rType = 0; + vrLen = 1399; + vrLoc = 0; + }; + E5345CFD11999BBF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 104"; + rLen = 0; + rLoc = 3764; + rType = 0; + vrLen = 1469; + vrLoc = 2483; + }; + E5345D0411999D37000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 29"; + rLen = 0; + rLoc = 1036; + rType = 0; + vrLen = 859; + vrLoc = 0; + }; + E5345D0511999D37000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 27"; + rLen = 6; + rLoc = 724; + rType = 0; + vrLen = 1506; + vrLoc = 218; + }; + E5345D0611999D37000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 27"; + rLen = 6; + rLoc = 724; + rType = 0; + vrLen = 1418; + vrLoc = 344; + }; + E5345D0B11999D92000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 43"; + rLen = 0; + rLoc = 1428; + rType = 0; + vrLen = 1585; + vrLoc = 1864; + }; + E5345D1E11999E6F000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 36"; + rLen = 0; + rLoc = 1079; + rType = 0; + vrLen = 1364; + vrLoc = 1276; + }; + E5345D2511999F1D000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; + name = "MultiFormatReader.cpp: 32"; + rLen = 0; + rLoc = 1108; + rType = 0; + vrLen = 813; + vrLoc = 871; + }; + E5345D2611999F1D000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Implicit declaration of function 'UIGetScreenImage'"; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + rLen = 1; + rLoc = 92; + rType = 1; + }; + E5345D2711999F1D000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 85"; + rLen = 0; + rLoc = 2821; + rType = 0; + vrLen = 832; + vrLoc = 2776; + }; + E5345D321199A033000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 36"; + rLen = 0; + rLoc = 1079; + rType = 0; + vrLen = 1554; + vrLoc = 1047; + }; + E5345D331199A033000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 137"; + rLen = 0; + rLoc = 4654; + rType = 0; + vrLen = 1119; + vrLoc = 3797; + }; + E5345D341199A033000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 30"; + rLen = 0; + rLoc = 942; + rType = 0; + vrLen = 1343; + vrLoc = 0; + }; + E5345D351199A033000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 108"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1451; + vrLoc = 2972; + }; + E5345D361199A033000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 108"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1451; + vrLoc = 2972; + }; + E5345D391199A033000CB77F /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + }; + E5345D3A1199A033000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 108"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1940; + vrLoc = 2812; + }; + E5345D451199A26A000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 108"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1700; + vrLoc = 963; + }; + E5345D461199A26A000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 29"; + rLen = 0; + rLoc = 1036; + rType = 0; + vrLen = 859; + vrLoc = 0; + }; + E5345D471199A26A000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 158"; + rLen = 0; + rLoc = 5033; + rType = 0; + vrLen = 1003; + vrLoc = 4183; + }; + E5345D481199A26A000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 108"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1951; + vrLoc = 2776; + }; + E5345D551199A417000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 40"; + rLen = 0; + rLoc = 1383; + rType = 0; + vrLen = 1410; + vrLoc = 1045; + }; + E5345D561199A417000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 108"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1951; + vrLoc = 2776; + }; + E5345D611199A5D8000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Expected expression before '=' token"; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + rLen = 1; + rLoc = 84; + rType = 1; + }; + E5345D621199A5D8000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 72"; + rLen = 0; + rLoc = 2602; + rType = 0; + vrLen = 740; + vrLoc = 1955; + }; + E5345D6B1199A5E7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 36"; + rLen = 0; + rLoc = 1079; + rType = 0; + vrLen = 1407; + vrLoc = 1045; + }; + E5345D6C1199A5E7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Expected expression before '=' token"; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + rLen = 1; + rLoc = 84; + rType = 1; + }; + E5345D6D1199A5E7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 27"; + rLen = 0; + rLoc = 889; + rType = 0; + vrLen = 1246; + vrLoc = 0; + }; + E5345D6E1199A5E7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 103"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1722; + vrLoc = 1616; + }; + E5345D7C1199A8B6000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 27"; + rLen = 0; + rLoc = 889; + rType = 0; + vrLen = 1246; + vrLoc = 0; + }; + E5345D7D1199A8B6000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 84"; + rLen = 0; + rLoc = 3241; + rType = 0; + vrLen = 1442; + vrLoc = 2139; + }; + E5345D7E1199A8B6000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 103"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1726; + vrLoc = 1616; + }; + E5345D871199BD4C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 84"; + rLen = 0; + rLoc = 3241; + rType = 0; + vrLen = 1442; + vrLoc = 2139; + }; + E5345D881199BD4C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 36"; + rLen = 0; + rLoc = 1079; + rType = 0; + vrLen = 1428; + vrLoc = 1024; + }; + E5345D891199BD4C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 72"; + rLen = 0; + rLoc = 2425; + rType = 0; + vrLen = 1344; + vrLoc = 1817; + }; + E5345D8A1199BD4C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 103"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1726; + vrLoc = 1616; + }; + E5345D9A1199C02F000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 38"; + rLen = 0; + rLoc = 1242; + rType = 0; + vrLen = 1357; + vrLoc = 560; + }; + E5345D9B1199C02F000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 103"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1726; + vrLoc = 1616; + }; + E5345DA21199C1B4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 84"; + rLen = 0; + rLoc = 3241; + rType = 0; + vrLen = 1288; + vrLoc = 777; + }; + E5345DA31199C1B4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 30"; + rLen = 0; + rLoc = 764; + rType = 0; + vrLen = 1355; + vrLoc = 560; + }; + E5345DA41199C1B4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 38"; + rLen = 0; + rLoc = 1239; + rType = 0; + vrLen = 1355; + vrLoc = 560; + }; + E5345DA51199C1B4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 103"; + rLen = 0; + rLoc = 3932; + rType = 0; + vrLen = 1726; + vrLoc = 1616; + }; + E5345DAE119A2CF9000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 31"; + rLen = 0; + rLoc = 1019; + rType = 0; + vrLen = 1398; + vrLoc = 0; + }; + E5345DAF119A2CF9000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 28"; + rLen = 0; + rLoc = 951; + rType = 0; + vrLen = 928; + vrLoc = 0; + }; + E5345DB0119A2CF9000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 32"; + rLen = 0; + rLoc = 871; + rType = 0; + vrLen = 1402; + vrLoc = 560; + }; + E5345DB1119A2CF9000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 44"; + rLen = 0; + rLoc = 1522; + rType = 0; + vrLen = 1449; + vrLoc = 2012; + }; + E5345DB2119A2CF9000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 44"; + rLen = 0; + rLoc = 1522; + rType = 0; + vrLen = 1449; + vrLoc = 2012; + }; + E5345DD6119A2EF2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 44"; + rLen = 0; + rLoc = 1522; + rType = 0; + vrLen = 1470; + vrLoc = 1991; + }; + E5345DD7119A2EF2000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 42"; + rLen = 0; + rLoc = 1361; + rType = 0; + vrLen = 1169; + vrLoc = 107; + }; + E5345DE1119A2FC5000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 37"; + rLen = 0; + rLoc = 1234; + rType = 0; + vrLen = 1167; + vrLoc = 107; + }; + E5345E16119A3F15000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 39"; + rLen = 19; + rLoc = 1068; + rType = 0; + vrLen = 1091; + vrLoc = 0; + }; + E5345E17119A3F15000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 23"; + rLen = 0; + rLoc = 711; + rType = 0; + vrLen = 1129; + vrLoc = 560; + }; + E5345E18119A3F15000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 25"; + rLen = 0; + rLoc = 853; + rType = 0; + vrLen = 1203; + vrLoc = 175; + }; + E5345E19119A3F15000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 56"; + rLen = 0; + rLoc = 1970; + rType = 0; + vrLen = 1235; + vrLoc = 729; + }; + E5345E1A119A3F15000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 36"; + rLen = 0; + rLoc = 1157; + rType = 0; + vrLen = 1222; + vrLoc = 729; + }; + E5345E51119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588B11983738000CB77F /* OverlayView.h */; + name = "OverlayView.h: 20"; + rLen = 0; + rLoc = 650; + rType = 0; + vrLen = 1091; + vrLoc = 0; + }; + E5345E52119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 47"; + rLen = 0; + rLoc = 1520; + rType = 0; + vrLen = 1126; + vrLoc = 594; + }; + E5345E53119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53459F8119876A5000CB77F /* ParsedResult.h */; + name = "ParsedResult.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 905; + vrLoc = 0; + }; + E5345E54119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53459D6119876A5000CB77F /* ResultParser.m */; + name = "ResultParser.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1077; + vrLoc = 498; + }; + E5345E55119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53459D5119876A5000CB77F /* ResultParser.h */; + name = "ResultParser.h: 25"; + rLen = 0; + rLoc = 733; + rType = 0; + vrLen = 906; + vrLoc = 0; + }; + E5345E56119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 32"; + rLen = 0; + rLoc = 1019; + rType = 0; + vrLen = 1218; + vrLoc = 175; + }; + E5345E57119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 58"; + rLen = 0; + rLoc = 1943; + rType = 0; + vrLen = 1294; + vrLoc = 985; + }; + E5345E58119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 137"; + rLen = 0; + rLoc = 4654; + rType = 0; + vrLen = 1219; + vrLoc = 3889; + }; + E5345E59119AE2DE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 137"; + rLen = 0; + rLoc = 4621; + rType = 0; + vrLen = 1221; + vrLoc = 3889; + }; + E5345E5E119AE4AD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 84"; + rLen = 0; + rLoc = 2602; + rType = 0; + vrLen = 789; + vrLoc = 2738; + }; + E5345E5F119AE4AD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Base operand of '->' has non-pointer type 'std::vector, std::allocator > >'"; + fRef = E534593711987396000CB77F /* QRCodeReader.cpp */; + rLen = 1; + rLoc = 55; + rType = 1; + }; + E5345E60119AE4AD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534593711987396000CB77F /* QRCodeReader.cpp */; + name = "QRCodeReader.cpp: 57"; + rLen = 0; + rLoc = 1642; + rType = 0; + vrLen = 778; + vrLoc = 1225; + }; + E5345E65119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458961198379E000CB77F /* DecoderDelegate.h */; + name = "DecoderDelegate.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1298; + vrLoc = 0; + }; + E5345E66119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A211984A3E000CB77F /* FormatReader.h */; + name = "FormatReader.h: 22"; + rLen = 0; + rLoc = 704; + rType = 0; + vrLen = 1103; + vrLoc = 0; + }; + E5345E67119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534593C11987396000CB77F /* Reader.h */; + name = "Reader.h: 27"; + rLen = 0; + rLoc = 814; + rType = 0; + vrLen = 1017; + vrLoc = 0; + }; + E5345E68119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589211983771000CB77F /* Decoder.h */; + name = "Decoder.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1333; + vrLoc = 118; + }; + E5345E69119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 32"; + rLen = 0; + rLoc = 972; + rType = 0; + vrLen = 1137; + vrLoc = 0; + }; + E5345E6A119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53459F8119876A5000CB77F /* ParsedResult.h */; + name = "ParsedResult.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 905; + vrLoc = 0; + }; + E5345E6B119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53459F9119876A5000CB77F /* ParsedResult.m */; + name = "ParsedResult.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1084; + vrLoc = 0; + }; + E5345E6C119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53459D5119876A5000CB77F /* ResultParser.h */; + name = "ResultParser.h: 24"; + rLen = 0; + rLoc = 733; + rType = 0; + vrLen = 890; + vrLoc = 0; + }; + E5345E6D119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Base operand of '->' has non-pointer type 'std::vector, std::allocator > >'"; + fRef = E534593711987396000CB77F /* QRCodeReader.cpp */; + rLen = 1; + rLoc = 55; + rType = 1; + }; + E5345E6E119AE4BB000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534593711987396000CB77F /* QRCodeReader.cpp */; + name = "QRCodeReader.cpp: 44"; + rLen = 0; + rLoc = 1220; + rType = 0; + vrLen = 1278; + vrLoc = 991; + }; + E5345E74119AE5C4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534593711987396000CB77F /* QRCodeReader.cpp */; + name = "QRCodeReader.cpp: 54"; + rLen = 0; + rLoc = 1482; + rType = 0; + vrLen = 1278; + vrLoc = 991; + }; + E5345E75119AE5C4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53459D5119876A5000CB77F /* ResultParser.h */; + name = "ResultParser.h: 24"; + rLen = 0; + rLoc = 733; + rType = 0; + vrLen = 890; + vrLoc = 0; + }; + E5345E76119AE5C4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53459D6119876A5000CB77F /* ResultParser.m */; + name = "ResultParser.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1077; + vrLoc = 498; + }; + E5345E77119AE5C4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 32"; + rLen = 0; + rLoc = 972; + rType = 0; + vrLen = 1727; + vrLoc = 1966; + }; + E5345E78119AE5C4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588C11983738000CB77F /* OverlayView.m */; + name = "OverlayView.m: 47"; + rLen = 0; + rLoc = 1520; + rType = 0; + vrLen = 972; + vrLoc = 4096; + }; + E5345E79119AE5C4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 58"; + rLen = 0; + rLoc = 1943; + rType = 0; + vrLen = 1287; + vrLoc = 2240; + }; + E5345E7A119AE5C4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 96"; + rLen = 0; + rLoc = 3260; + rType = 0; + vrLen = 1282; + vrLoc = 2240; + }; + E5345E7F119AE66A000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 97"; + rLen = 0; + rLoc = 3154; + rType = 0; + vrLen = 1342; + vrLoc = 2240; + }; + E5345E8A119AE692000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 97"; + rLen = 0; + rLoc = 3194; + rType = 0; + vrLen = 1388; + vrLoc = 2240; + }; + E5345E9E119AF6FD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534593711987396000CB77F /* QRCodeReader.cpp */; + name = "QRCodeReader.cpp: 57"; + rLen = 0; + rLoc = 1642; + rType = 0; + vrLen = 778; + vrLoc = 1225; + }; + E5345E9F119AF6FD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458C511987396000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 20; + rLoc = 789; + rType = 0; + vrLen = 683; + vrLoc = 176; + }; + E5345EA0119AF6FD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Iostream: No such file or directory"; + fRef = E5345EA1119AF6FD000CB77F /* Counted.h */; + rLen = 1; + rLoc = 26; + rType = 1; + }; + E5345EA1119AF6FD000CB77F /* Counted.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = Counted.h; + path = ../../cpp/core/src/zxing/common/Counted.h; + sourceTree = ""; + }; + E5345EA2119AF6FD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458C511987396000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 20; + rLoc = 789; + rType = 0; + vrLen = 683; + vrLoc = 176; + }; + E5345EAB119AF74B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345EA1119AF6FD000CB77F /* Counted.h */; + name = "Counted.h: 33"; + rLen = 18; + rLoc = 860; + rType = 0; + vrLen = 406; + vrLoc = 735; + }; + E5345EAC119AF74B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Iostream: No such file or directory"; + fRef = E5345EAD119AF74B000CB77F /* Counted.h */; + rLen = 1; + rLoc = 26; + rType = 1; + }; + E5345EAD119AF74B000CB77F /* Counted.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = Counted.h; + path = ../../cpp/core/src/zxing/common/Counted.h; + sourceTree = ""; + }; + E5345EAE119AF74B000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345EA1119AF6FD000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 20; + rLoc = 789; + rType = 0; + vrLen = 540; + vrLoc = 411; + }; + E5345EB9119AF88B000CB77F /* MultiFormatReader.h */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.h; + name = MultiFormatReader.h; + path = "/Users/dkavanagh/zxing-ro-mine/iphone/ZXingWidget/MultiFormatReader.h"; + sourceTree = ""; + }; + E5345EBF119AF8A4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345EAD119AF74B000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 20; + rLoc = 789; + rType = 0; + vrLen = 540; + vrLoc = 411; + }; + E5345EC0119AF8A4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Expected unqualified-id before '+' token"; + fRef = E5345EB9119AF88B000CB77F /* MultiFormatReader.h */; + rLen = 1; + rLoc = 25; + rType = 1; + }; + E5345EC1119AF8A4000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345EB9119AF88B000CB77F /* MultiFormatReader.h */; + name = "MultiFormatReader.h: 27"; + rLen = 0; + rLoc = 766; + rType = 0; + vrLen = 686; + vrLoc = 80; + }; + E5345EC6119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534593B11987396000CB77F /* Reader.cpp */; + name = "Reader.cpp: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 770; + vrLoc = 0; + }; + E5345EC7119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534593C11987396000CB77F /* Reader.h */; + name = "Reader.h: 27"; + rLen = 0; + rLoc = 814; + rType = 0; + vrLen = 1017; + vrLoc = 0; + }; + E5345EC8119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FC11987396000CB77F /* MultiFormatReader.h */; + name = "MultiFormatReader.h: 25"; + rLen = 0; + rLoc = 797; + rType = 0; + vrLen = 999; + vrLoc = 0; + }; + E5345EC9119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; + name = "MultiFormatReader.cpp: 32"; + rLen = 0; + rLoc = 1108; + rType = 0; + vrLen = 1476; + vrLoc = 258; + }; + E5345ECA119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589211983771000CB77F /* Decoder.h */; + name = "Decoder.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1330; + vrLoc = 121; + }; + E5345ECB119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 21"; + rLen = 0; + rLoc = 734; + rType = 0; + vrLen = 1180; + vrLoc = 218; + }; + E5345ECC119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A211984A3E000CB77F /* FormatReader.h */; + name = "FormatReader.h: 22"; + rLen = 0; + rLoc = 704; + rType = 0; + vrLen = 1103; + vrLoc = 0; + }; + E5345ECD119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Iostream: No such file or directory"; + fRef = E5345ECE119AF8AE000CB77F /* Counted.h */; + rLen = 1; + rLoc = 26; + rType = 1; + }; + E5345ECE119AF8AE000CB77F /* Counted.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = Counted.h; + path = ../../cpp/core/src/zxing/common/Counted.h; + sourceTree = ""; + }; + E5345ECF119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345EAD119AF74B000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 20; + rLoc = 789; + rType = 0; + vrLen = 1014; + vrLoc = 0; + }; + E5345ED0119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 25"; + rLen = 0; + rLoc = 801; + rType = 0; + vrLen = 1414; + vrLoc = 107; + }; + E5345ED1119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A011984A3E000CB77F /* FormatReader.mm */; + name = "FormatReader.mm: 42"; + rLen = 0; + rLoc = 1150; + rType = 0; + vrLen = 1023; + vrLoc = 416; + }; + E5345ED2119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 166"; + rLen = 0; + rLoc = 5573; + rType = 0; + vrLen = 1544; + vrLoc = 4803; + }; + E5345ED3119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 39"; + rLen = 0; + rLoc = 1208; + rType = 0; + vrLen = 1102; + vrLoc = 0; + }; + E5345ED4119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Expected unqualified-id before '+' token"; + fRef = E5345EB9119AF88B000CB77F /* MultiFormatReader.h */; + rLen = 1; + rLoc = 25; + rType = 1; + }; + E5345ED5119AF8AE000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345EB9119AF88B000CB77F /* MultiFormatReader.h */; + name = "MultiFormatReader.h: 25"; + rLen = 0; + rLoc = 747; + rType = 0; + vrLen = 766; + vrLoc = 0; + }; + E5345F01119B0494000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345ECE119AF8AE000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 20; + rLoc = 789; + rType = 0; + vrLen = 372; + vrLoc = 735; + }; + E5345F02119B0494000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "No super class declared in @interface for 'MultiFormatReader'"; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + rLen = 1; + rLoc = 38; + rType = 1; + }; + E5345F03119B0494000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 39"; + rLen = 0; + rLoc = 1160; + rType = 0; + vrLen = 550; + vrLoc = 637; + }; + E5345F10119B0503000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534594211987396000CB77F /* ResultPoint.h */; + name = "ResultPoint.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 990; + vrLoc = 0; + }; + E5345F11119B0503000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A211984A3E000CB77F /* FormatReader.h */; + name = "FormatReader.h: 22"; + rLen = 0; + rLoc = 704; + rType = 0; + vrLen = 1103; + vrLoc = 0; + }; + E5345F12119B0503000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A011984A3E000CB77F /* FormatReader.mm */; + name = "FormatReader.mm: 41"; + rLen = 0; + rLoc = 1150; + rType = 0; + vrLen = 906; + vrLoc = 561; + }; + E5345F13119B0503000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589311983771000CB77F /* Decoder.mm */; + name = "Decoder.mm: 153"; + rLen = 0; + rLoc = 4929; + rType = 0; + vrLen = 1302; + vrLoc = 4739; + }; + E5345F14119B0503000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 18"; + rLen = 0; + rLoc = 670; + rType = 0; + vrLen = 1203; + vrLoc = 0; + }; + E5345F15119B0503000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 18"; + rLen = 0; + rLoc = 670; + rType = 0; + vrLen = 1205; + vrLoc = 3; + }; + E5345F2B119B0762000CB77F /* Decoder.mm */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {908, 3549}}"; + sepNavSelRange = "{996, 0}"; + sepNavVisRange = "{572, 1387}"; + }; + }; + E5345F33119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589D11984A27000CB77F /* TwoDDecoderResult.m */; + name = "TwoDDecoderResult.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1089; + vrLoc = 0; + }; + E5345F34119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458961198379E000CB77F /* DecoderDelegate.h */; + name = "DecoderDelegate.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1298; + vrLoc = 0; + }; + E5345F35119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Iostream: No such file or directory"; + fRef = E5345F36119B094C000CB77F /* Counted.h */; + rLen = 1; + rLoc = 26; + rType = 1; + }; + E5345F36119B094C000CB77F /* Counted.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = Counted.h; + path = ../../cpp/core/src/zxing/common/Counted.h; + sourceTree = ""; + }; + E5345F37119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345ECE119AF8AE000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 0; + rLoc = 799; + rType = 0; + vrLen = 1085; + vrLoc = 246; + }; + E5345F38119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 25"; + rLen = 0; + rLoc = 801; + rType = 0; + vrLen = 1414; + vrLoc = 107; + }; + E5345F39119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589211983771000CB77F /* Decoder.h */; + name = "Decoder.h: 28"; + rLen = 0; + rLoc = 801; + rType = 0; + vrLen = 1333; + vrLoc = 118; + }; + E5345F3A119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345F2B119B0762000CB77F /* Decoder.mm */; + name = "Decoder.mm: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1664; + vrLoc = 1746; + }; + E5345F3B119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 18"; + rLen = 0; + rLoc = 670; + rType = 0; + vrLen = 1203; + vrLoc = 0; + }; + E5345F3C119B094C000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1205; + vrLoc = 3; + }; + E5345F3F119B09E7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 39"; + rLen = 0; + rLoc = 1160; + rType = 0; + vrLen = 565; + vrLoc = 637; + }; + E5345F40119B09E7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345ECE119AF8AE000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 0; + rLoc = 799; + rType = 0; + vrLen = 372; + vrLoc = 735; + }; + E5345F41119B09E7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Iostream: No such file or directory"; + fRef = E5345F42119B09E7000CB77F /* Counted.h */; + rLen = 1; + rLoc = 26; + rType = 1; + }; + E5345F42119B09E7000CB77F /* Counted.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = Counted.h; + path = ../../cpp/core/src/zxing/common/Counted.h; + sourceTree = ""; + }; + E5345F43119B09E7000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345F36119B094C000CB77F /* Counted.h */; + name = "Counted.h: 27"; + rLen = 20; + rLoc = 789; + rType = 0; + vrLen = 372; + vrLoc = 735; + }; + E5345F49119B09F8000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1205; + vrLoc = 3; + }; + E5345F72119B12AF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E5345F2B119B0762000CB77F /* Decoder.mm */; + name = "Decoder.mm: 34"; + rLen = 0; + rLoc = 996; + rType = 0; + vrLen = 1387; + vrLoc = 572; + }; + E5345F73119B12AF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1208; + vrLoc = 0; + }; + E5345F74119B12AF000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1203; + vrLoc = 0; + }; + E5345F89119B13D3000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1203; + vrLoc = 0; + }; + E5345F8C119B1408000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1203; + vrLoc = 0; + }; + E5345F93119B1D3A000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1203; + vrLoc = 0; + }; + E5345F96119B233D000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1203; + vrLoc = 0; + }; + E5345F9B119B2588000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1205; + vrLoc = 3; + }; + E5345FA9119B2602000CB77F /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Incompatible Objective-C types 'struct TwoDDecoderResult *', expected 'struct ParsedResult *' when passing argument 1 of 'scanResult:' from distinct Objective-C type"; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 141; + rType = 1; + }; + E5345FAC119B2651000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; + name = "MultiFormatReader.mm: 27"; + rLen = 0; + rLoc = 788; + rType = 0; + vrLen = 1208; + vrLoc = 0; + }; + E5345FAD119B2651000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589D11984A27000CB77F /* TwoDDecoderResult.m */; + name = "TwoDDecoderResult.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1125; + vrLoc = 0; + }; + E5345FAE119B2651000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534589C11984A27000CB77F /* TwoDDecoderResult.h */; + name = "TwoDDecoderResult.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1020; + vrLoc = 0; + }; + E5345FAF119B2651000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588911983738000CB77F /* ZXingWidgetController.h */; + name = "ZXingWidgetController.h: 45"; + rLen = 0; + rLoc = 1359; + rType = 0; + vrLen = 1219; + vrLoc = 175; + }; + E5345FB0119B2651000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 35"; + rLen = 0; + rLoc = 1102; + rType = 0; + vrLen = 1515; + vrLoc = 40; + }; + E5345FB1119B2651000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 35"; + rLen = 0; + rLoc = 1102; + rType = 0; + vrLen = 1340; + vrLoc = 1305; + }; + E5345FB6119B2651000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 141"; + rLen = 0; + rLoc = 4730; + rType = 0; + vrLen = 1636; + vrLoc = 3642; + }; + E5345FBC119B267E000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 36"; + rLen = 0; + rLoc = 1102; + rType = 0; + vrLen = 1403; + vrLoc = 895; + }; + E5345FBD119B267E000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 142"; + rLen = 0; + rLoc = 4730; + rType = 0; + vrLen = 1881; + vrLoc = 2970; + }; + E5345FBF119B2686000CB77F /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Format not a string literal and no format arguments"; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 106; + rType = 1; + }; + E5345FC0119B2686000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 107"; + rLen = 0; + rLoc = 3410; + rType = 0; + vrLen = 849; + vrLoc = 2970; + }; + E5345FC5119B26BD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 107"; + rLen = 0; + rLoc = 3545; + rType = 0; + vrLen = 1515; + vrLoc = 2382; + }; + E5345FC6119B26BD000CB77F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; + name = "ZXingWidgetController.m: 142"; + rLen = 0; + rLoc = 4730; + rType = 0; + vrLen = 1853; + vrLoc = 2970; + }; +} diff --git a/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj b/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj new file mode 100644 index 000000000..8ac1aa4df --- /dev/null +++ b/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj @@ -0,0 +1,1184 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + AA747D9F0F9514B9006C5449 /* ZXingWidget_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */; }; + AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; + E534588D11983738000CB77F /* ZXingWidgetController.h in Headers */ = {isa = PBXBuildFile; fileRef = E534588911983738000CB77F /* ZXingWidgetController.h */; }; + E534588E11983738000CB77F /* ZXingWidgetController.m in Sources */ = {isa = PBXBuildFile; fileRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; }; + E534588F11983738000CB77F /* OverlayView.h in Headers */ = {isa = PBXBuildFile; fileRef = E534588B11983738000CB77F /* OverlayView.h */; }; + E534589011983738000CB77F /* OverlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = E534588C11983738000CB77F /* OverlayView.m */; }; + E534589411983771000CB77F /* Decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E534589211983771000CB77F /* Decoder.h */; }; + E53458971198379E000CB77F /* DecoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458961198379E000CB77F /* DecoderDelegate.h */; }; + E534589E11984A27000CB77F /* TwoDDecoderResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E534589C11984A27000CB77F /* TwoDDecoderResult.h */; }; + E534589F11984A27000CB77F /* TwoDDecoderResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E534589D11984A27000CB77F /* TwoDDecoderResult.m */; }; + E53458A311984A3E000CB77F /* FormatReader.mm in Sources */ = {isa = PBXBuildFile; fileRef = E53458A011984A3E000CB77F /* FormatReader.mm */; }; + E53458A411984A3E000CB77F /* MultiFormatReader.mm in Sources */ = {isa = PBXBuildFile; fileRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; }; + E53458A511984A3E000CB77F /* FormatReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458A211984A3E000CB77F /* FormatReader.h */; }; + E534594311987396000CB77F /* BarcodeFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458B511987396000CB77F /* BarcodeFormat.cpp */; }; + E534594411987396000CB77F /* BarcodeFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458B611987396000CB77F /* BarcodeFormat.h */; }; + E534594511987396000CB77F /* Binarizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458B711987396000CB77F /* Binarizer.cpp */; }; + E534594611987396000CB77F /* Binarizer.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458B811987396000CB77F /* Binarizer.h */; }; + E534594711987396000CB77F /* BinaryBitmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458B911987396000CB77F /* BinaryBitmap.cpp */; }; + E534594811987396000CB77F /* BinaryBitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458BA11987396000CB77F /* BinaryBitmap.h */; }; + E534594911987396000CB77F /* Array.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458BC11987396000CB77F /* Array.cpp */; }; + E534594A11987396000CB77F /* Array.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458BD11987396000CB77F /* Array.h */; }; + E534594B11987396000CB77F /* BitArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458BE11987396000CB77F /* BitArray.cpp */; }; + E534594C11987396000CB77F /* BitArray.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458BF11987396000CB77F /* BitArray.h */; }; + E534594D11987396000CB77F /* BitMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C011987396000CB77F /* BitMatrix.cpp */; }; + E534594E11987396000CB77F /* BitMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C111987396000CB77F /* BitMatrix.h */; }; + E534594F11987396000CB77F /* BitSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C211987396000CB77F /* BitSource.cpp */; }; + E534595011987396000CB77F /* BitSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C311987396000CB77F /* BitSource.h */; }; + E534595111987396000CB77F /* Counted.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C411987396000CB77F /* Counted.cpp */; }; + E534595211987396000CB77F /* Counted.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C511987396000CB77F /* Counted.h */; }; + E534595311987396000CB77F /* DecoderResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C611987396000CB77F /* DecoderResult.cpp */; }; + E534595411987396000CB77F /* DecoderResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C711987396000CB77F /* DecoderResult.h */; }; + E534595511987396000CB77F /* DetectorResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C811987396000CB77F /* DetectorResult.cpp */; }; + E534595611987396000CB77F /* DetectorResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C911987396000CB77F /* DetectorResult.h */; }; + E534595711987396000CB77F /* EdgeDetector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458CA11987396000CB77F /* EdgeDetector.cpp */; }; + E534595811987396000CB77F /* EdgeDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458CB11987396000CB77F /* EdgeDetector.h */; }; + E534595911987396000CB77F /* GlobalHistogramBinarizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458CC11987396000CB77F /* GlobalHistogramBinarizer.cpp */; }; + E534595A11987396000CB77F /* GlobalHistogramBinarizer.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458CD11987396000CB77F /* GlobalHistogramBinarizer.h */; }; + E534595B11987396000CB77F /* GridSampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458CE11987396000CB77F /* GridSampler.cpp */; }; + E534595C11987396000CB77F /* GridSampler.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458CF11987396000CB77F /* GridSampler.h */; }; + E534595D11987396000CB77F /* IllegalArgumentException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458D011987396000CB77F /* IllegalArgumentException.cpp */; }; + E534595E11987396000CB77F /* IllegalArgumentException.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D111987396000CB77F /* IllegalArgumentException.h */; }; + E534595F11987396000CB77F /* LocalBlockBinarizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458D211987396000CB77F /* LocalBlockBinarizer.cpp */; }; + E534596011987396000CB77F /* LocalBlockBinarizer.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D311987396000CB77F /* LocalBlockBinarizer.h */; }; + E534596111987396000CB77F /* PerspectiveTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458D411987396000CB77F /* PerspectiveTransform.cpp */; }; + E534596211987396000CB77F /* PerspectiveTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D511987396000CB77F /* PerspectiveTransform.h */; }; + E534596311987396000CB77F /* Point.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D611987396000CB77F /* Point.h */; }; + E534596411987396000CB77F /* GF256.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458D811987396000CB77F /* GF256.cpp */; }; + E534596511987396000CB77F /* GF256.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D911987396000CB77F /* GF256.h */; }; + E534596611987396000CB77F /* GF256Poly.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458DA11987396000CB77F /* GF256Poly.cpp */; }; + E534596711987396000CB77F /* GF256Poly.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458DB11987396000CB77F /* GF256Poly.h */; }; + E534596811987396000CB77F /* ReedSolomonDecoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458DC11987396000CB77F /* ReedSolomonDecoder.cpp */; }; + E534596911987396000CB77F /* ReedSolomonDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458DD11987396000CB77F /* ReedSolomonDecoder.h */; }; + E534596A11987396000CB77F /* ReedSolomonException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458DE11987396000CB77F /* ReedSolomonException.cpp */; }; + E534596B11987396000CB77F /* ReedSolomonException.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458DF11987396000CB77F /* ReedSolomonException.h */; }; + E534596C11987396000CB77F /* Str.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458E011987396000CB77F /* Str.cpp */; }; + E534596D11987396000CB77F /* Str.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458E111987396000CB77F /* Str.h */; }; + E534596E11987396000CB77F /* DataMatrixReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458E311987396000CB77F /* DataMatrixReader.cpp */; }; + E534596F11987396000CB77F /* DataMatrixReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458E411987396000CB77F /* DataMatrixReader.h */; }; + E534597011987396000CB77F /* BitMatrixParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458E611987396000CB77F /* BitMatrixParser.cpp */; }; + E534597111987396000CB77F /* BitMatrixParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458E711987396000CB77F /* BitMatrixParser.h */; }; + E534597211987396000CB77F /* DataBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458E811987396000CB77F /* DataBlock.cpp */; }; + E534597311987396000CB77F /* DataBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458E911987396000CB77F /* DataBlock.h */; }; + E534597411987396000CB77F /* DecodedBitStreamParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458EA11987396000CB77F /* DecodedBitStreamParser.cpp */; }; + E534597511987396000CB77F /* DecodedBitStreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458EB11987396000CB77F /* DecodedBitStreamParser.h */; }; + E534597611987396000CB77F /* Decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458EC11987396000CB77F /* Decoder.cpp */; }; + E534597711987396000CB77F /* Decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458ED11987396000CB77F /* Decoder.h */; }; + E534597811987396000CB77F /* CornerPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458EF11987396000CB77F /* CornerPoint.cpp */; }; + E534597911987396000CB77F /* CornerPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F011987396000CB77F /* CornerPoint.h */; }; + E534597A11987396000CB77F /* Detector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F111987396000CB77F /* Detector.cpp */; }; + E534597B11987396000CB77F /* Detector.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F211987396000CB77F /* Detector.h */; }; + E534597C11987396000CB77F /* MonochromeRectangleDetector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F311987396000CB77F /* MonochromeRectangleDetector.cpp */; }; + E534597D11987396000CB77F /* MonochromeRectangleDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F411987396000CB77F /* MonochromeRectangleDetector.h */; }; + E534597E11987396000CB77F /* Version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F511987396000CB77F /* Version.cpp */; }; + E534597F11987396000CB77F /* Version.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F611987396000CB77F /* Version.h */; }; + E534598011987396000CB77F /* Exception.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F711987396000CB77F /* Exception.cpp */; }; + E534598111987396000CB77F /* Exception.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F811987396000CB77F /* Exception.h */; }; + E534598211987396000CB77F /* LuminanceSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F911987396000CB77F /* LuminanceSource.cpp */; }; + E534598311987396000CB77F /* LuminanceSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458FA11987396000CB77F /* LuminanceSource.h */; }; + E534598411987396000CB77F /* MultiFormatReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; }; + E534598511987396000CB77F /* MultiFormatReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458FC11987396000CB77F /* MultiFormatReader.h */; }; + E534598611987396000CB77F /* Code128Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458FE11987396000CB77F /* Code128Reader.cpp */; }; + E534598711987396000CB77F /* Code128Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458FF11987396000CB77F /* Code128Reader.h */; }; + E534598811987396000CB77F /* Code39Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590011987396000CB77F /* Code39Reader.cpp */; }; + E534598911987396000CB77F /* Code39Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590111987396000CB77F /* Code39Reader.h */; }; + E534598A11987396000CB77F /* EAN13Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590211987396000CB77F /* EAN13Reader.cpp */; }; + E534598B11987396000CB77F /* EAN13Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590311987396000CB77F /* EAN13Reader.h */; }; + E534598C11987396000CB77F /* EAN8Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590411987396000CB77F /* EAN8Reader.cpp */; }; + E534598D11987396000CB77F /* EAN8Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590511987396000CB77F /* EAN8Reader.h */; }; + E534598E11987396000CB77F /* ITFReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590611987396000CB77F /* ITFReader.cpp */; }; + E534598F11987396000CB77F /* ITFReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590711987396000CB77F /* ITFReader.h */; }; + E534599011987396000CB77F /* MultiFormatOneDReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590811987396000CB77F /* MultiFormatOneDReader.cpp */; }; + E534599111987396000CB77F /* MultiFormatOneDReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590911987396000CB77F /* MultiFormatOneDReader.h */; }; + E534599211987396000CB77F /* MultiFormatUPCEANReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590A11987396000CB77F /* MultiFormatUPCEANReader.cpp */; }; + E534599311987396000CB77F /* MultiFormatUPCEANReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590B11987396000CB77F /* MultiFormatUPCEANReader.h */; }; + E534599411987396000CB77F /* OneDReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590C11987396000CB77F /* OneDReader.cpp */; }; + E534599511987396000CB77F /* OneDReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590D11987396000CB77F /* OneDReader.h */; }; + E534599611987396000CB77F /* OneDResultPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590E11987396000CB77F /* OneDResultPoint.cpp */; }; + E534599711987396000CB77F /* OneDResultPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590F11987396000CB77F /* OneDResultPoint.h */; }; + E534599811987396000CB77F /* UPCAReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591011987396000CB77F /* UPCAReader.cpp */; }; + E534599911987396000CB77F /* UPCAReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591111987396000CB77F /* UPCAReader.h */; }; + E534599A11987396000CB77F /* UPCEANReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591211987396000CB77F /* UPCEANReader.cpp */; }; + E534599B11987396000CB77F /* UPCEANReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591311987396000CB77F /* UPCEANReader.h */; }; + E534599C11987396000CB77F /* UPCEReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591411987396000CB77F /* UPCEReader.cpp */; }; + E534599D11987396000CB77F /* UPCEReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591511987396000CB77F /* UPCEReader.h */; }; + E534599E11987396000CB77F /* BitMatrixParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591811987396000CB77F /* BitMatrixParser.cpp */; }; + E534599F11987396000CB77F /* BitMatrixParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591911987396000CB77F /* BitMatrixParser.h */; }; + E53459A011987396000CB77F /* DataBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591A11987396000CB77F /* DataBlock.cpp */; }; + E53459A111987396000CB77F /* DataBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591B11987396000CB77F /* DataBlock.h */; }; + E53459A211987396000CB77F /* DataMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591C11987396000CB77F /* DataMask.cpp */; }; + E53459A311987396000CB77F /* DataMask.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591D11987396000CB77F /* DataMask.h */; }; + E53459A411987396000CB77F /* DecodedBitStreamParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591E11987396000CB77F /* DecodedBitStreamParser.cpp */; }; + E53459A511987396000CB77F /* DecodedBitStreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591F11987396000CB77F /* DecodedBitStreamParser.h */; }; + E53459A611987396000CB77F /* Decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592011987396000CB77F /* Decoder.cpp */; }; + E53459A711987396000CB77F /* Decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592111987396000CB77F /* Decoder.h */; }; + E53459A811987396000CB77F /* Mode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592211987396000CB77F /* Mode.cpp */; }; + E53459A911987396000CB77F /* Mode.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592311987396000CB77F /* Mode.h */; }; + E53459AA11987396000CB77F /* AlignmentPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592511987396000CB77F /* AlignmentPattern.cpp */; }; + E53459AB11987396000CB77F /* AlignmentPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592611987396000CB77F /* AlignmentPattern.h */; }; + E53459AC11987396000CB77F /* AlignmentPatternFinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592711987396000CB77F /* AlignmentPatternFinder.cpp */; }; + E53459AD11987396000CB77F /* AlignmentPatternFinder.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592811987396000CB77F /* AlignmentPatternFinder.h */; }; + E53459AE11987396000CB77F /* Detector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592911987396000CB77F /* Detector.cpp */; }; + E53459AF11987396000CB77F /* Detector.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592A11987396000CB77F /* Detector.h */; }; + E53459B011987396000CB77F /* FinderPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592B11987396000CB77F /* FinderPattern.cpp */; }; + E53459B111987396000CB77F /* FinderPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592C11987396000CB77F /* FinderPattern.h */; }; + E53459B211987396000CB77F /* FinderPatternFinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592D11987396000CB77F /* FinderPatternFinder.cpp */; }; + E53459B311987396000CB77F /* FinderPatternFinder.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592E11987396000CB77F /* FinderPatternFinder.h */; }; + E53459B411987396000CB77F /* FinderPatternInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592F11987396000CB77F /* FinderPatternInfo.cpp */; }; + E53459B511987396000CB77F /* FinderPatternInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593011987396000CB77F /* FinderPatternInfo.h */; }; + E53459B611987396000CB77F /* QREdgeDetector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593111987396000CB77F /* QREdgeDetector.cpp */; }; + E53459B711987396000CB77F /* QREdgeDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593211987396000CB77F /* QREdgeDetector.h */; }; + E53459B811987396000CB77F /* ErrorCorrectionLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593311987396000CB77F /* ErrorCorrectionLevel.cpp */; }; + E53459B911987396000CB77F /* ErrorCorrectionLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593411987396000CB77F /* ErrorCorrectionLevel.h */; }; + E53459BA11987396000CB77F /* FormatInformation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593511987396000CB77F /* FormatInformation.cpp */; }; + E53459BB11987396000CB77F /* FormatInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593611987396000CB77F /* FormatInformation.h */; }; + E53459BC11987396000CB77F /* QRCodeReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593711987396000CB77F /* QRCodeReader.cpp */; }; + E53459BD11987396000CB77F /* QRCodeReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593811987396000CB77F /* QRCodeReader.h */; }; + E53459BE11987396000CB77F /* Version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593911987396000CB77F /* Version.cpp */; }; + E53459BF11987396000CB77F /* Version.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593A11987396000CB77F /* Version.h */; }; + E53459C011987396000CB77F /* Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593B11987396000CB77F /* Reader.cpp */; }; + E53459C111987396000CB77F /* Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593C11987396000CB77F /* Reader.h */; }; + E53459C211987396000CB77F /* ReaderException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593D11987396000CB77F /* ReaderException.cpp */; }; + E53459C311987396000CB77F /* ReaderException.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593E11987396000CB77F /* ReaderException.h */; }; + E53459C411987396000CB77F /* Result.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593F11987396000CB77F /* Result.cpp */; }; + E53459C511987396000CB77F /* Result.h in Headers */ = {isa = PBXBuildFile; fileRef = E534594011987396000CB77F /* Result.h */; }; + E53459C611987396000CB77F /* ResultPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534594111987396000CB77F /* ResultPoint.cpp */; }; + E53459C711987396000CB77F /* ResultPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = E534594211987396000CB77F /* ResultPoint.h */; }; + E53459CB119873F3000CB77F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E53459CA119873F3000CB77F /* UIKit.framework */; }; + E5345A0F119876A5000CB77F /* ResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459D5119876A5000CB77F /* ResultParser.h */; }; + E5345A10119876A5000CB77F /* ResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459D6119876A5000CB77F /* ResultParser.m */; }; + E5345A11119876A5000CB77F /* DoCoMoResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459D7119876A5000CB77F /* DoCoMoResultParser.h */; }; + E5345A12119876A5000CB77F /* DoCoMoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459D8119876A5000CB77F /* DoCoMoResultParser.m */; }; + E5345A13119876A5000CB77F /* MeCardParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459D9119876A5000CB77F /* MeCardParser.h */; }; + E5345A14119876A5000CB77F /* MeCardParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459DA119876A5000CB77F /* MeCardParser.m */; }; + E5345A15119876A5000CB77F /* EmailDoCoMoResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459DB119876A5000CB77F /* EmailDoCoMoResultParser.h */; }; + E5345A16119876A5000CB77F /* EmailDoCoMoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459DC119876A5000CB77F /* EmailDoCoMoResultParser.m */; }; + E5345A17119876A5000CB77F /* BookmarkDoCoMoResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459DD119876A5000CB77F /* BookmarkDoCoMoResultParser.h */; }; + E5345A18119876A5000CB77F /* BookmarkDoCoMoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459DE119876A5000CB77F /* BookmarkDoCoMoResultParser.m */; }; + E5345A19119876A5000CB77F /* TelResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459DF119876A5000CB77F /* TelResultParser.h */; }; + E5345A1A119876A5000CB77F /* TelResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E0119876A5000CB77F /* TelResultParser.m */; }; + E5345A1B119876A5000CB77F /* TextResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E1119876A5000CB77F /* TextResultParser.h */; }; + E5345A1C119876A5000CB77F /* TextResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E2119876A5000CB77F /* TextResultParser.m */; }; + E5345A1D119876A5000CB77F /* URLResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E3119876A5000CB77F /* URLResultParser.h */; }; + E5345A1E119876A5000CB77F /* URLResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E4119876A5000CB77F /* URLResultParser.m */; }; + E5345A1F119876A5000CB77F /* URLTOResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E5119876A5000CB77F /* URLTOResultParser.h */; }; + E5345A20119876A5000CB77F /* URLTOResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E6119876A5000CB77F /* URLTOResultParser.m */; }; + E5345A21119876A5000CB77F /* SMSResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E7119876A5000CB77F /* SMSResultParser.h */; }; + E5345A22119876A5000CB77F /* SMSResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E8119876A5000CB77F /* SMSResultParser.m */; }; + E5345A23119876A5000CB77F /* GeoResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E9119876A5000CB77F /* GeoResultParser.h */; }; + E5345A24119876A5000CB77F /* GeoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459EA119876A5000CB77F /* GeoResultParser.m */; }; + E5345A25119876A5000CB77F /* SMSTOResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459EB119876A5000CB77F /* SMSTOResultParser.h */; }; + E5345A26119876A5000CB77F /* SMSTOResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459EC119876A5000CB77F /* SMSTOResultParser.m */; }; + E5345A27119876A5000CB77F /* PlainEmailResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459ED119876A5000CB77F /* PlainEmailResultParser.h */; }; + E5345A28119876A5000CB77F /* PlainEmailResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459EE119876A5000CB77F /* PlainEmailResultParser.m */; }; + E5345A29119876A5000CB77F /* BusinessCardParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F0119876A5000CB77F /* BusinessCardParsedResult.h */; }; + E5345A2A119876A5000CB77F /* BusinessCardParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F1119876A5000CB77F /* BusinessCardParsedResult.m */; }; + E5345A2B119876A5000CB77F /* EmailParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F2119876A5000CB77F /* EmailParsedResult.h */; }; + E5345A2C119876A5000CB77F /* EmailParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F3119876A5000CB77F /* EmailParsedResult.m */; }; + E5345A2D119876A5000CB77F /* TelParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F4119876A5000CB77F /* TelParsedResult.h */; }; + E5345A2E119876A5000CB77F /* TelParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F5119876A5000CB77F /* TelParsedResult.m */; }; + E5345A2F119876A5000CB77F /* TextParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F6119876A5000CB77F /* TextParsedResult.h */; }; + E5345A30119876A5000CB77F /* TextParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F7119876A5000CB77F /* TextParsedResult.m */; }; + E5345A31119876A5000CB77F /* ParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F8119876A5000CB77F /* ParsedResult.h */; }; + E5345A32119876A5000CB77F /* ParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F9119876A5000CB77F /* ParsedResult.m */; }; + E5345A33119876A5000CB77F /* URIParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459FA119876A5000CB77F /* URIParsedResult.h */; }; + E5345A34119876A5000CB77F /* URIParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459FB119876A5000CB77F /* URIParsedResult.m */; }; + E5345A35119876A5000CB77F /* GeoParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459FC119876A5000CB77F /* GeoParsedResult.h */; }; + E5345A36119876A5000CB77F /* GeoParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459FD119876A5000CB77F /* GeoParsedResult.m */; }; + E5345A37119876A5000CB77F /* SMSParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459FE119876A5000CB77F /* SMSParsedResult.h */; }; + E5345A38119876A5000CB77F /* SMSParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459FF119876A5000CB77F /* SMSParsedResult.m */; }; + E5345A39119876A5000CB77F /* SMSAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A01119876A5000CB77F /* SMSAction.h */; }; + E5345A3A119876A5000CB77F /* SMSAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A02119876A5000CB77F /* SMSAction.m */; }; + E5345A3B119876A5000CB77F /* ShowMapAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A03119876A5000CB77F /* ShowMapAction.h */; }; + E5345A3C119876A5000CB77F /* ShowMapAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A04119876A5000CB77F /* ShowMapAction.m */; }; + E5345A3D119876A5000CB77F /* AddContactAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A05119876A5000CB77F /* AddContactAction.h */; }; + E5345A3E119876A5000CB77F /* AddContactAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A06119876A5000CB77F /* AddContactAction.m */; }; + E5345A3F119876A5000CB77F /* EmailAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A07119876A5000CB77F /* EmailAction.h */; }; + E5345A40119876A5000CB77F /* EmailAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A08119876A5000CB77F /* EmailAction.m */; }; + E5345A41119876A5000CB77F /* CallAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A09119876A5000CB77F /* CallAction.h */; }; + E5345A42119876A5000CB77F /* CallAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A0A119876A5000CB77F /* CallAction.m */; }; + E5345A43119876A5000CB77F /* OpenUrlAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A0B119876A5000CB77F /* OpenUrlAction.h */; }; + E5345A44119876A5000CB77F /* OpenUrlAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A0C119876A5000CB77F /* OpenUrlAction.m */; }; + E5345A45119876A5000CB77F /* ResultAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A0D119876A5000CB77F /* ResultAction.h */; }; + E5345A46119876A5000CB77F /* ResultAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A0E119876A5000CB77F /* ResultAction.m */; }; + E5345A661198792F000CB77F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5345A651198792F000CB77F /* AudioToolbox.framework */; }; + E5345A6F11987989000CB77F /* NSString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A6D11987989000CB77F /* NSString+HTML.h */; }; + E5345A7011987989000CB77F /* NSString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A6E11987989000CB77F /* NSString+HTML.m */; }; + E5345AA31198859A000CB77F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5345AA21198859A000CB77F /* CoreGraphics.framework */; }; + E5345AC811988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345AC611988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h */; }; + E5345AC911988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5345AC711988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp */; }; + E5345F2C119B0762000CB77F /* Decoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = E5345F2B119B0762000CB77F /* Decoder.mm */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZXingWidget_Prefix.pch; sourceTree = SOURCE_ROOT; }; + AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D2AAC07E0554694100DB518D /* libZXingWidget.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libZXingWidget.a; sourceTree = BUILT_PRODUCTS_DIR; }; + E534588911983738000CB77F /* ZXingWidgetController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZXingWidgetController.h; sourceTree = ""; }; + E534588A11983738000CB77F /* ZXingWidgetController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZXingWidgetController.m; sourceTree = ""; }; + E534588B11983738000CB77F /* OverlayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OverlayView.h; sourceTree = ""; }; + E534588C11983738000CB77F /* OverlayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OverlayView.m; sourceTree = ""; }; + E534589211983771000CB77F /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Decoder.h; sourceTree = ""; }; + E53458961198379E000CB77F /* DecoderDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecoderDelegate.h; sourceTree = ""; }; + E534589C11984A27000CB77F /* TwoDDecoderResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwoDDecoderResult.h; sourceTree = ""; }; + E534589D11984A27000CB77F /* TwoDDecoderResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TwoDDecoderResult.m; sourceTree = ""; }; + E53458A011984A3E000CB77F /* FormatReader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FormatReader.mm; sourceTree = ""; }; + E53458A111984A3E000CB77F /* MultiFormatReader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MultiFormatReader.mm; sourceTree = ""; }; + E53458A211984A3E000CB77F /* FormatReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormatReader.h; sourceTree = ""; }; + E53458B511987396000CB77F /* BarcodeFormat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BarcodeFormat.cpp; sourceTree = ""; }; + E53458B611987396000CB77F /* BarcodeFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BarcodeFormat.h; sourceTree = ""; }; + E53458B711987396000CB77F /* Binarizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Binarizer.cpp; sourceTree = ""; }; + E53458B811987396000CB77F /* Binarizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Binarizer.h; sourceTree = ""; }; + E53458B911987396000CB77F /* BinaryBitmap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BinaryBitmap.cpp; sourceTree = ""; }; + E53458BA11987396000CB77F /* BinaryBitmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BinaryBitmap.h; sourceTree = ""; }; + E53458BC11987396000CB77F /* Array.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Array.cpp; sourceTree = ""; }; + E53458BD11987396000CB77F /* Array.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Array.h; sourceTree = ""; }; + E53458BE11987396000CB77F /* BitArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitArray.cpp; sourceTree = ""; }; + E53458BF11987396000CB77F /* BitArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitArray.h; sourceTree = ""; }; + E53458C011987396000CB77F /* BitMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitMatrix.cpp; sourceTree = ""; }; + E53458C111987396000CB77F /* BitMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitMatrix.h; sourceTree = ""; }; + E53458C211987396000CB77F /* BitSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitSource.cpp; sourceTree = ""; }; + E53458C311987396000CB77F /* BitSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitSource.h; sourceTree = ""; }; + E53458C411987396000CB77F /* Counted.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Counted.cpp; sourceTree = ""; }; + E53458C511987396000CB77F /* Counted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Counted.h; sourceTree = ""; }; + E53458C611987396000CB77F /* DecoderResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecoderResult.cpp; sourceTree = ""; }; + E53458C711987396000CB77F /* DecoderResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecoderResult.h; sourceTree = ""; }; + E53458C811987396000CB77F /* DetectorResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetectorResult.cpp; sourceTree = ""; }; + E53458C911987396000CB77F /* DetectorResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetectorResult.h; sourceTree = ""; }; + E53458CA11987396000CB77F /* EdgeDetector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EdgeDetector.cpp; sourceTree = ""; }; + E53458CB11987396000CB77F /* EdgeDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EdgeDetector.h; sourceTree = ""; }; + E53458CC11987396000CB77F /* GlobalHistogramBinarizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GlobalHistogramBinarizer.cpp; sourceTree = ""; }; + E53458CD11987396000CB77F /* GlobalHistogramBinarizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlobalHistogramBinarizer.h; sourceTree = ""; }; + E53458CE11987396000CB77F /* GridSampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GridSampler.cpp; sourceTree = ""; }; + E53458CF11987396000CB77F /* GridSampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridSampler.h; sourceTree = ""; }; + E53458D011987396000CB77F /* IllegalArgumentException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IllegalArgumentException.cpp; sourceTree = ""; }; + E53458D111987396000CB77F /* IllegalArgumentException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IllegalArgumentException.h; sourceTree = ""; }; + E53458D211987396000CB77F /* LocalBlockBinarizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalBlockBinarizer.cpp; sourceTree = ""; }; + E53458D311987396000CB77F /* LocalBlockBinarizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalBlockBinarizer.h; sourceTree = ""; }; + E53458D411987396000CB77F /* PerspectiveTransform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerspectiveTransform.cpp; sourceTree = ""; }; + E53458D511987396000CB77F /* PerspectiveTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerspectiveTransform.h; sourceTree = ""; }; + E53458D611987396000CB77F /* Point.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Point.h; sourceTree = ""; }; + E53458D811987396000CB77F /* GF256.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GF256.cpp; sourceTree = ""; }; + E53458D911987396000CB77F /* GF256.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GF256.h; sourceTree = ""; }; + E53458DA11987396000CB77F /* GF256Poly.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GF256Poly.cpp; sourceTree = ""; }; + E53458DB11987396000CB77F /* GF256Poly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GF256Poly.h; sourceTree = ""; }; + E53458DC11987396000CB77F /* ReedSolomonDecoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReedSolomonDecoder.cpp; sourceTree = ""; }; + E53458DD11987396000CB77F /* ReedSolomonDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReedSolomonDecoder.h; sourceTree = ""; }; + E53458DE11987396000CB77F /* ReedSolomonException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReedSolomonException.cpp; sourceTree = ""; }; + E53458DF11987396000CB77F /* ReedSolomonException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReedSolomonException.h; sourceTree = ""; }; + E53458E011987396000CB77F /* Str.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Str.cpp; sourceTree = ""; }; + E53458E111987396000CB77F /* Str.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Str.h; sourceTree = ""; }; + E53458E311987396000CB77F /* DataMatrixReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataMatrixReader.cpp; sourceTree = ""; }; + E53458E411987396000CB77F /* DataMatrixReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataMatrixReader.h; sourceTree = ""; }; + E53458E611987396000CB77F /* BitMatrixParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitMatrixParser.cpp; sourceTree = ""; }; + E53458E711987396000CB77F /* BitMatrixParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitMatrixParser.h; sourceTree = ""; }; + E53458E811987396000CB77F /* DataBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataBlock.cpp; sourceTree = ""; }; + E53458E911987396000CB77F /* DataBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataBlock.h; sourceTree = ""; }; + E53458EA11987396000CB77F /* DecodedBitStreamParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecodedBitStreamParser.cpp; sourceTree = ""; }; + E53458EB11987396000CB77F /* DecodedBitStreamParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecodedBitStreamParser.h; sourceTree = ""; }; + E53458EC11987396000CB77F /* Decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Decoder.cpp; sourceTree = ""; }; + E53458ED11987396000CB77F /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Decoder.h; sourceTree = ""; }; + E53458EF11987396000CB77F /* CornerPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CornerPoint.cpp; sourceTree = ""; }; + E53458F011987396000CB77F /* CornerPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CornerPoint.h; sourceTree = ""; }; + E53458F111987396000CB77F /* Detector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Detector.cpp; sourceTree = ""; }; + E53458F211987396000CB77F /* Detector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Detector.h; sourceTree = ""; }; + E53458F311987396000CB77F /* MonochromeRectangleDetector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MonochromeRectangleDetector.cpp; sourceTree = ""; }; + E53458F411987396000CB77F /* MonochromeRectangleDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MonochromeRectangleDetector.h; sourceTree = ""; }; + E53458F511987396000CB77F /* Version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Version.cpp; sourceTree = ""; }; + E53458F611987396000CB77F /* Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Version.h; sourceTree = ""; }; + E53458F711987396000CB77F /* Exception.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Exception.cpp; sourceTree = ""; }; + E53458F811987396000CB77F /* Exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Exception.h; sourceTree = ""; }; + E53458F911987396000CB77F /* LuminanceSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LuminanceSource.cpp; sourceTree = ""; }; + E53458FA11987396000CB77F /* LuminanceSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuminanceSource.h; sourceTree = ""; }; + E53458FB11987396000CB77F /* MultiFormatReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MultiFormatReader.cpp; sourceTree = ""; }; + E53458FC11987396000CB77F /* MultiFormatReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultiFormatReader.h; sourceTree = ""; }; + E53458FE11987396000CB77F /* Code128Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Code128Reader.cpp; sourceTree = ""; }; + E53458FF11987396000CB77F /* Code128Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Code128Reader.h; sourceTree = ""; }; + E534590011987396000CB77F /* Code39Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Code39Reader.cpp; sourceTree = ""; }; + E534590111987396000CB77F /* Code39Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Code39Reader.h; sourceTree = ""; }; + E534590211987396000CB77F /* EAN13Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EAN13Reader.cpp; sourceTree = ""; }; + E534590311987396000CB77F /* EAN13Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EAN13Reader.h; sourceTree = ""; }; + E534590411987396000CB77F /* EAN8Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EAN8Reader.cpp; sourceTree = ""; }; + E534590511987396000CB77F /* EAN8Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EAN8Reader.h; sourceTree = ""; }; + E534590611987396000CB77F /* ITFReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ITFReader.cpp; sourceTree = ""; }; + E534590711987396000CB77F /* ITFReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITFReader.h; sourceTree = ""; }; + E534590811987396000CB77F /* MultiFormatOneDReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MultiFormatOneDReader.cpp; sourceTree = ""; }; + E534590911987396000CB77F /* MultiFormatOneDReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultiFormatOneDReader.h; sourceTree = ""; }; + E534590A11987396000CB77F /* MultiFormatUPCEANReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MultiFormatUPCEANReader.cpp; sourceTree = ""; }; + E534590B11987396000CB77F /* MultiFormatUPCEANReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultiFormatUPCEANReader.h; sourceTree = ""; }; + E534590C11987396000CB77F /* OneDReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OneDReader.cpp; sourceTree = ""; }; + E534590D11987396000CB77F /* OneDReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OneDReader.h; sourceTree = ""; }; + E534590E11987396000CB77F /* OneDResultPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OneDResultPoint.cpp; sourceTree = ""; }; + E534590F11987396000CB77F /* OneDResultPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OneDResultPoint.h; sourceTree = ""; }; + E534591011987396000CB77F /* UPCAReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UPCAReader.cpp; sourceTree = ""; }; + E534591111987396000CB77F /* UPCAReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UPCAReader.h; sourceTree = ""; }; + E534591211987396000CB77F /* UPCEANReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UPCEANReader.cpp; sourceTree = ""; }; + E534591311987396000CB77F /* UPCEANReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UPCEANReader.h; sourceTree = ""; }; + E534591411987396000CB77F /* UPCEReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UPCEReader.cpp; sourceTree = ""; }; + E534591511987396000CB77F /* UPCEReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UPCEReader.h; sourceTree = ""; }; + E534591811987396000CB77F /* BitMatrixParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitMatrixParser.cpp; sourceTree = ""; }; + E534591911987396000CB77F /* BitMatrixParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitMatrixParser.h; sourceTree = ""; }; + E534591A11987396000CB77F /* DataBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataBlock.cpp; sourceTree = ""; }; + E534591B11987396000CB77F /* DataBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataBlock.h; sourceTree = ""; }; + E534591C11987396000CB77F /* DataMask.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataMask.cpp; sourceTree = ""; }; + E534591D11987396000CB77F /* DataMask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataMask.h; sourceTree = ""; }; + E534591E11987396000CB77F /* DecodedBitStreamParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecodedBitStreamParser.cpp; sourceTree = ""; }; + E534591F11987396000CB77F /* DecodedBitStreamParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecodedBitStreamParser.h; sourceTree = ""; }; + E534592011987396000CB77F /* Decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Decoder.cpp; sourceTree = ""; }; + E534592111987396000CB77F /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Decoder.h; sourceTree = ""; }; + E534592211987396000CB77F /* Mode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Mode.cpp; sourceTree = ""; }; + E534592311987396000CB77F /* Mode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mode.h; sourceTree = ""; }; + E534592511987396000CB77F /* AlignmentPattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlignmentPattern.cpp; sourceTree = ""; }; + E534592611987396000CB77F /* AlignmentPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlignmentPattern.h; sourceTree = ""; }; + E534592711987396000CB77F /* AlignmentPatternFinder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlignmentPatternFinder.cpp; sourceTree = ""; }; + E534592811987396000CB77F /* AlignmentPatternFinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlignmentPatternFinder.h; sourceTree = ""; }; + E534592911987396000CB77F /* Detector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Detector.cpp; sourceTree = ""; }; + E534592A11987396000CB77F /* Detector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Detector.h; sourceTree = ""; }; + E534592B11987396000CB77F /* FinderPattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FinderPattern.cpp; sourceTree = ""; }; + E534592C11987396000CB77F /* FinderPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FinderPattern.h; sourceTree = ""; }; + E534592D11987396000CB77F /* FinderPatternFinder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FinderPatternFinder.cpp; sourceTree = ""; }; + E534592E11987396000CB77F /* FinderPatternFinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FinderPatternFinder.h; sourceTree = ""; }; + E534592F11987396000CB77F /* FinderPatternInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FinderPatternInfo.cpp; sourceTree = ""; }; + E534593011987396000CB77F /* FinderPatternInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FinderPatternInfo.h; sourceTree = ""; }; + E534593111987396000CB77F /* QREdgeDetector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QREdgeDetector.cpp; sourceTree = ""; }; + E534593211987396000CB77F /* QREdgeDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QREdgeDetector.h; sourceTree = ""; }; + E534593311987396000CB77F /* ErrorCorrectionLevel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ErrorCorrectionLevel.cpp; sourceTree = ""; }; + E534593411987396000CB77F /* ErrorCorrectionLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ErrorCorrectionLevel.h; sourceTree = ""; }; + E534593511987396000CB77F /* FormatInformation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormatInformation.cpp; sourceTree = ""; }; + E534593611987396000CB77F /* FormatInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormatInformation.h; sourceTree = ""; }; + E534593711987396000CB77F /* QRCodeReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QRCodeReader.cpp; sourceTree = ""; }; + E534593811987396000CB77F /* QRCodeReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QRCodeReader.h; sourceTree = ""; }; + E534593911987396000CB77F /* Version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Version.cpp; sourceTree = ""; }; + E534593A11987396000CB77F /* Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Version.h; sourceTree = ""; }; + E534593B11987396000CB77F /* Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Reader.cpp; sourceTree = ""; }; + E534593C11987396000CB77F /* Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reader.h; sourceTree = ""; }; + E534593D11987396000CB77F /* ReaderException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReaderException.cpp; sourceTree = ""; }; + E534593E11987396000CB77F /* ReaderException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReaderException.h; sourceTree = ""; }; + E534593F11987396000CB77F /* Result.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Result.cpp; sourceTree = ""; }; + E534594011987396000CB77F /* Result.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Result.h; sourceTree = ""; }; + E534594111987396000CB77F /* ResultPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResultPoint.cpp; sourceTree = ""; }; + E534594211987396000CB77F /* ResultPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultPoint.h; sourceTree = ""; }; + E53459CA119873F3000CB77F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + E53459D5119876A5000CB77F /* ResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultParser.h; sourceTree = ""; }; + E53459D6119876A5000CB77F /* ResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultParser.m; sourceTree = ""; }; + E53459D7119876A5000CB77F /* DoCoMoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DoCoMoResultParser.h; sourceTree = ""; }; + E53459D8119876A5000CB77F /* DoCoMoResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DoCoMoResultParser.m; sourceTree = ""; }; + E53459D9119876A5000CB77F /* MeCardParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MeCardParser.h; sourceTree = ""; }; + E53459DA119876A5000CB77F /* MeCardParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MeCardParser.m; sourceTree = ""; }; + E53459DB119876A5000CB77F /* EmailDoCoMoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmailDoCoMoResultParser.h; sourceTree = ""; }; + E53459DC119876A5000CB77F /* EmailDoCoMoResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmailDoCoMoResultParser.m; sourceTree = ""; }; + E53459DD119876A5000CB77F /* BookmarkDoCoMoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BookmarkDoCoMoResultParser.h; sourceTree = ""; }; + E53459DE119876A5000CB77F /* BookmarkDoCoMoResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BookmarkDoCoMoResultParser.m; sourceTree = ""; }; + E53459DF119876A5000CB77F /* TelResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelResultParser.h; sourceTree = ""; }; + E53459E0119876A5000CB77F /* TelResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelResultParser.m; sourceTree = ""; }; + E53459E1119876A5000CB77F /* TextResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextResultParser.h; sourceTree = ""; }; + E53459E2119876A5000CB77F /* TextResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextResultParser.m; sourceTree = ""; }; + E53459E3119876A5000CB77F /* URLResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLResultParser.h; sourceTree = ""; }; + E53459E4119876A5000CB77F /* URLResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URLResultParser.m; sourceTree = ""; }; + E53459E5119876A5000CB77F /* URLTOResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLTOResultParser.h; sourceTree = ""; }; + E53459E6119876A5000CB77F /* URLTOResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URLTOResultParser.m; sourceTree = ""; }; + E53459E7119876A5000CB77F /* SMSResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMSResultParser.h; sourceTree = ""; }; + E53459E8119876A5000CB77F /* SMSResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMSResultParser.m; sourceTree = ""; }; + E53459E9119876A5000CB77F /* GeoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeoResultParser.h; sourceTree = ""; }; + E53459EA119876A5000CB77F /* GeoResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeoResultParser.m; sourceTree = ""; }; + E53459EB119876A5000CB77F /* SMSTOResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMSTOResultParser.h; sourceTree = ""; }; + E53459EC119876A5000CB77F /* SMSTOResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMSTOResultParser.m; sourceTree = ""; }; + E53459ED119876A5000CB77F /* PlainEmailResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlainEmailResultParser.h; sourceTree = ""; }; + E53459EE119876A5000CB77F /* PlainEmailResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlainEmailResultParser.m; sourceTree = ""; }; + E53459F0119876A5000CB77F /* BusinessCardParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BusinessCardParsedResult.h; sourceTree = ""; }; + E53459F1119876A5000CB77F /* BusinessCardParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BusinessCardParsedResult.m; sourceTree = ""; }; + E53459F2119876A5000CB77F /* EmailParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmailParsedResult.h; sourceTree = ""; }; + E53459F3119876A5000CB77F /* EmailParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmailParsedResult.m; sourceTree = ""; }; + E53459F4119876A5000CB77F /* TelParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelParsedResult.h; sourceTree = ""; }; + E53459F5119876A5000CB77F /* TelParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelParsedResult.m; sourceTree = ""; }; + E53459F6119876A5000CB77F /* TextParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextParsedResult.h; sourceTree = ""; }; + E53459F7119876A5000CB77F /* TextParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextParsedResult.m; sourceTree = ""; }; + E53459F8119876A5000CB77F /* ParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParsedResult.h; sourceTree = ""; }; + E53459F9119876A5000CB77F /* ParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ParsedResult.m; sourceTree = ""; }; + E53459FA119876A5000CB77F /* URIParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URIParsedResult.h; sourceTree = ""; }; + E53459FB119876A5000CB77F /* URIParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URIParsedResult.m; sourceTree = ""; }; + E53459FC119876A5000CB77F /* GeoParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeoParsedResult.h; sourceTree = ""; }; + E53459FD119876A5000CB77F /* GeoParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeoParsedResult.m; sourceTree = ""; }; + E53459FE119876A5000CB77F /* SMSParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMSParsedResult.h; sourceTree = ""; }; + E53459FF119876A5000CB77F /* SMSParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMSParsedResult.m; sourceTree = ""; }; + E5345A01119876A5000CB77F /* SMSAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMSAction.h; sourceTree = ""; }; + E5345A02119876A5000CB77F /* SMSAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMSAction.m; sourceTree = ""; }; + E5345A03119876A5000CB77F /* ShowMapAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShowMapAction.h; sourceTree = ""; }; + E5345A04119876A5000CB77F /* ShowMapAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShowMapAction.m; sourceTree = ""; }; + E5345A05119876A5000CB77F /* AddContactAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddContactAction.h; sourceTree = ""; }; + E5345A06119876A5000CB77F /* AddContactAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddContactAction.m; sourceTree = ""; }; + E5345A07119876A5000CB77F /* EmailAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmailAction.h; sourceTree = ""; }; + E5345A08119876A5000CB77F /* EmailAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmailAction.m; sourceTree = ""; }; + E5345A09119876A5000CB77F /* CallAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallAction.h; sourceTree = ""; }; + E5345A0A119876A5000CB77F /* CallAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallAction.m; sourceTree = ""; }; + E5345A0B119876A5000CB77F /* OpenUrlAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenUrlAction.h; sourceTree = ""; }; + E5345A0C119876A5000CB77F /* OpenUrlAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OpenUrlAction.m; sourceTree = ""; }; + E5345A0D119876A5000CB77F /* ResultAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultAction.h; sourceTree = ""; }; + E5345A0E119876A5000CB77F /* ResultAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultAction.m; sourceTree = ""; }; + E5345A651198792F000CB77F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + E5345A6D11987989000CB77F /* NSString+HTML.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+HTML.h"; sourceTree = ""; }; + E5345A6E11987989000CB77F /* NSString+HTML.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+HTML.m"; sourceTree = ""; }; + E5345AA21198859A000CB77F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + E5345AC611988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrayBytesMonochromeBitmapSource.h; sourceTree = ""; }; + E5345AC711988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GrayBytesMonochromeBitmapSource.cpp; sourceTree = ""; }; + E5345D2911999F62000CB77F /* beep-beep.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "beep-beep.caf"; sourceTree = ""; }; + E5345F2B119B0762000CB77F /* Decoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Decoder.mm; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D2AAC07C0554694100DB518D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */, + E53459CB119873F3000CB77F /* UIKit.framework in Frameworks */, + E5345A661198792F000CB77F /* AudioToolbox.framework in Frameworks */, + E5345AA31198859A000CB77F /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 034768DFFF38A50411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC07E0554694100DB518D /* libZXingWidget.a */, + ); + name = Products; + sourceTree = ""; + }; + 0867D691FE84028FC02AAC07 /* ZXingWidget */ = { + isa = PBXGroup; + children = ( + E53458B311987396000CB77F /* CoreSrc */, + 08FB77AEFE84172EC02AAC07 /* Classes */, + 32C88DFF0371C24200C91783 /* Other Sources */, + 0867D69AFE84028FC02AAC07 /* Frameworks */, + E5345D2811999F53000CB77F /* Resources */, + 034768DFFF38A50411DB9C8B /* Products */, + ); + name = ZXingWidget; + sourceTree = ""; + }; + 0867D69AFE84028FC02AAC07 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AACBBE490F95108600F1A2B1 /* Foundation.framework */, + E53459CA119873F3000CB77F /* UIKit.framework */, + E5345A651198792F000CB77F /* AudioToolbox.framework */, + E5345AA21198859A000CB77F /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 08FB77AEFE84172EC02AAC07 /* Classes */ = { + isa = PBXGroup; + children = ( + E5345A00119876A5000CB77F /* Actions */, + E53459EF119876A5000CB77F /* ParsedResults */, + E53459D4119876A5000CB77F /* ResultParsers */, + E534589211983771000CB77F /* Decoder.h */, + E5345F2B119B0762000CB77F /* Decoder.mm */, + E53458961198379E000CB77F /* DecoderDelegate.h */, + E534589C11984A27000CB77F /* TwoDDecoderResult.h */, + E534589D11984A27000CB77F /* TwoDDecoderResult.m */, + E53458A111984A3E000CB77F /* MultiFormatReader.mm */, + E53458A011984A3E000CB77F /* FormatReader.mm */, + E53458A211984A3E000CB77F /* FormatReader.h */, + E534588911983738000CB77F /* ZXingWidgetController.h */, + E534588A11983738000CB77F /* ZXingWidgetController.m */, + E534588B11983738000CB77F /* OverlayView.h */, + E534588C11983738000CB77F /* OverlayView.m */, + E5345AC611988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h */, + E5345AC711988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp */, + E5345A6D11987989000CB77F /* NSString+HTML.h */, + E5345A6E11987989000CB77F /* NSString+HTML.m */, + ); + name = Classes; + sourceTree = ""; + }; + 32C88DFF0371C24200C91783 /* Other Sources */ = { + isa = PBXGroup; + children = ( + AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + E53458B311987396000CB77F /* CoreSrc */ = { + isa = PBXGroup; + children = ( + E53458B411987396000CB77F /* zxing */, + ); + name = CoreSrc; + path = ../../cpp/core/src; + sourceTree = SOURCE_ROOT; + }; + E53458B411987396000CB77F /* zxing */ = { + isa = PBXGroup; + children = ( + E53458B511987396000CB77F /* BarcodeFormat.cpp */, + E53458B611987396000CB77F /* BarcodeFormat.h */, + E53458B711987396000CB77F /* Binarizer.cpp */, + E53458B811987396000CB77F /* Binarizer.h */, + E53458B911987396000CB77F /* BinaryBitmap.cpp */, + E53458BA11987396000CB77F /* BinaryBitmap.h */, + E53458BB11987396000CB77F /* common */, + E53458E211987396000CB77F /* datamatrix */, + E53458F711987396000CB77F /* Exception.cpp */, + E53458F811987396000CB77F /* Exception.h */, + E53458F911987396000CB77F /* LuminanceSource.cpp */, + E53458FA11987396000CB77F /* LuminanceSource.h */, + E53458FB11987396000CB77F /* MultiFormatReader.cpp */, + E53458FC11987396000CB77F /* MultiFormatReader.h */, + E53458FD11987396000CB77F /* oned */, + E534591611987396000CB77F /* qrcode */, + E534593B11987396000CB77F /* Reader.cpp */, + E534593C11987396000CB77F /* Reader.h */, + E534593D11987396000CB77F /* ReaderException.cpp */, + E534593E11987396000CB77F /* ReaderException.h */, + E534593F11987396000CB77F /* Result.cpp */, + E534594011987396000CB77F /* Result.h */, + E534594111987396000CB77F /* ResultPoint.cpp */, + E534594211987396000CB77F /* ResultPoint.h */, + ); + path = zxing; + sourceTree = ""; + }; + E53458BB11987396000CB77F /* common */ = { + isa = PBXGroup; + children = ( + E53458BC11987396000CB77F /* Array.cpp */, + E53458BD11987396000CB77F /* Array.h */, + E53458BE11987396000CB77F /* BitArray.cpp */, + E53458BF11987396000CB77F /* BitArray.h */, + E53458C011987396000CB77F /* BitMatrix.cpp */, + E53458C111987396000CB77F /* BitMatrix.h */, + E53458C211987396000CB77F /* BitSource.cpp */, + E53458C311987396000CB77F /* BitSource.h */, + E53458C411987396000CB77F /* Counted.cpp */, + E53458C511987396000CB77F /* Counted.h */, + E53458C611987396000CB77F /* DecoderResult.cpp */, + E53458C711987396000CB77F /* DecoderResult.h */, + E53458C811987396000CB77F /* DetectorResult.cpp */, + E53458C911987396000CB77F /* DetectorResult.h */, + E53458CA11987396000CB77F /* EdgeDetector.cpp */, + E53458CB11987396000CB77F /* EdgeDetector.h */, + E53458CC11987396000CB77F /* GlobalHistogramBinarizer.cpp */, + E53458CD11987396000CB77F /* GlobalHistogramBinarizer.h */, + E53458CE11987396000CB77F /* GridSampler.cpp */, + E53458CF11987396000CB77F /* GridSampler.h */, + E53458D011987396000CB77F /* IllegalArgumentException.cpp */, + E53458D111987396000CB77F /* IllegalArgumentException.h */, + E53458D211987396000CB77F /* LocalBlockBinarizer.cpp */, + E53458D311987396000CB77F /* LocalBlockBinarizer.h */, + E53458D411987396000CB77F /* PerspectiveTransform.cpp */, + E53458D511987396000CB77F /* PerspectiveTransform.h */, + E53458D611987396000CB77F /* Point.h */, + E53458D711987396000CB77F /* reedsolomon */, + E53458E011987396000CB77F /* Str.cpp */, + E53458E111987396000CB77F /* Str.h */, + ); + path = common; + sourceTree = ""; + }; + E53458D711987396000CB77F /* reedsolomon */ = { + isa = PBXGroup; + children = ( + E53458D811987396000CB77F /* GF256.cpp */, + E53458D911987396000CB77F /* GF256.h */, + E53458DA11987396000CB77F /* GF256Poly.cpp */, + E53458DB11987396000CB77F /* GF256Poly.h */, + E53458DC11987396000CB77F /* ReedSolomonDecoder.cpp */, + E53458DD11987396000CB77F /* ReedSolomonDecoder.h */, + E53458DE11987396000CB77F /* ReedSolomonException.cpp */, + E53458DF11987396000CB77F /* ReedSolomonException.h */, + ); + path = reedsolomon; + sourceTree = ""; + }; + E53458E211987396000CB77F /* datamatrix */ = { + isa = PBXGroup; + children = ( + E53458E311987396000CB77F /* DataMatrixReader.cpp */, + E53458E411987396000CB77F /* DataMatrixReader.h */, + E53458E511987396000CB77F /* decoder */, + E53458EE11987396000CB77F /* detector */, + E53458F511987396000CB77F /* Version.cpp */, + E53458F611987396000CB77F /* Version.h */, + ); + path = datamatrix; + sourceTree = ""; + }; + E53458E511987396000CB77F /* decoder */ = { + isa = PBXGroup; + children = ( + E53458E611987396000CB77F /* BitMatrixParser.cpp */, + E53458E711987396000CB77F /* BitMatrixParser.h */, + E53458E811987396000CB77F /* DataBlock.cpp */, + E53458E911987396000CB77F /* DataBlock.h */, + E53458EA11987396000CB77F /* DecodedBitStreamParser.cpp */, + E53458EB11987396000CB77F /* DecodedBitStreamParser.h */, + E53458EC11987396000CB77F /* Decoder.cpp */, + E53458ED11987396000CB77F /* Decoder.h */, + ); + path = decoder; + sourceTree = ""; + }; + E53458EE11987396000CB77F /* detector */ = { + isa = PBXGroup; + children = ( + E53458EF11987396000CB77F /* CornerPoint.cpp */, + E53458F011987396000CB77F /* CornerPoint.h */, + E53458F111987396000CB77F /* Detector.cpp */, + E53458F211987396000CB77F /* Detector.h */, + E53458F311987396000CB77F /* MonochromeRectangleDetector.cpp */, + E53458F411987396000CB77F /* MonochromeRectangleDetector.h */, + ); + path = detector; + sourceTree = ""; + }; + E53458FD11987396000CB77F /* oned */ = { + isa = PBXGroup; + children = ( + E53458FE11987396000CB77F /* Code128Reader.cpp */, + E53458FF11987396000CB77F /* Code128Reader.h */, + E534590011987396000CB77F /* Code39Reader.cpp */, + E534590111987396000CB77F /* Code39Reader.h */, + E534590211987396000CB77F /* EAN13Reader.cpp */, + E534590311987396000CB77F /* EAN13Reader.h */, + E534590411987396000CB77F /* EAN8Reader.cpp */, + E534590511987396000CB77F /* EAN8Reader.h */, + E534590611987396000CB77F /* ITFReader.cpp */, + E534590711987396000CB77F /* ITFReader.h */, + E534590811987396000CB77F /* MultiFormatOneDReader.cpp */, + E534590911987396000CB77F /* MultiFormatOneDReader.h */, + E534590A11987396000CB77F /* MultiFormatUPCEANReader.cpp */, + E534590B11987396000CB77F /* MultiFormatUPCEANReader.h */, + E534590C11987396000CB77F /* OneDReader.cpp */, + E534590D11987396000CB77F /* OneDReader.h */, + E534590E11987396000CB77F /* OneDResultPoint.cpp */, + E534590F11987396000CB77F /* OneDResultPoint.h */, + E534591011987396000CB77F /* UPCAReader.cpp */, + E534591111987396000CB77F /* UPCAReader.h */, + E534591211987396000CB77F /* UPCEANReader.cpp */, + E534591311987396000CB77F /* UPCEANReader.h */, + E534591411987396000CB77F /* UPCEReader.cpp */, + E534591511987396000CB77F /* UPCEReader.h */, + ); + path = oned; + sourceTree = ""; + }; + E534591611987396000CB77F /* qrcode */ = { + isa = PBXGroup; + children = ( + E534591711987396000CB77F /* decoder */, + E534592411987396000CB77F /* detector */, + E534593311987396000CB77F /* ErrorCorrectionLevel.cpp */, + E534593411987396000CB77F /* ErrorCorrectionLevel.h */, + E534593511987396000CB77F /* FormatInformation.cpp */, + E534593611987396000CB77F /* FormatInformation.h */, + E534593711987396000CB77F /* QRCodeReader.cpp */, + E534593811987396000CB77F /* QRCodeReader.h */, + E534593911987396000CB77F /* Version.cpp */, + E534593A11987396000CB77F /* Version.h */, + ); + path = qrcode; + sourceTree = ""; + }; + E534591711987396000CB77F /* decoder */ = { + isa = PBXGroup; + children = ( + E534591811987396000CB77F /* BitMatrixParser.cpp */, + E534591911987396000CB77F /* BitMatrixParser.h */, + E534591A11987396000CB77F /* DataBlock.cpp */, + E534591B11987396000CB77F /* DataBlock.h */, + E534591C11987396000CB77F /* DataMask.cpp */, + E534591D11987396000CB77F /* DataMask.h */, + E534591E11987396000CB77F /* DecodedBitStreamParser.cpp */, + E534591F11987396000CB77F /* DecodedBitStreamParser.h */, + E534592011987396000CB77F /* Decoder.cpp */, + E534592111987396000CB77F /* Decoder.h */, + E534592211987396000CB77F /* Mode.cpp */, + E534592311987396000CB77F /* Mode.h */, + ); + path = decoder; + sourceTree = ""; + }; + E534592411987396000CB77F /* detector */ = { + isa = PBXGroup; + children = ( + E534592511987396000CB77F /* AlignmentPattern.cpp */, + E534592611987396000CB77F /* AlignmentPattern.h */, + E534592711987396000CB77F /* AlignmentPatternFinder.cpp */, + E534592811987396000CB77F /* AlignmentPatternFinder.h */, + E534592911987396000CB77F /* Detector.cpp */, + E534592A11987396000CB77F /* Detector.h */, + E534592B11987396000CB77F /* FinderPattern.cpp */, + E534592C11987396000CB77F /* FinderPattern.h */, + E534592D11987396000CB77F /* FinderPatternFinder.cpp */, + E534592E11987396000CB77F /* FinderPatternFinder.h */, + E534592F11987396000CB77F /* FinderPatternInfo.cpp */, + E534593011987396000CB77F /* FinderPatternInfo.h */, + E534593111987396000CB77F /* QREdgeDetector.cpp */, + E534593211987396000CB77F /* QREdgeDetector.h */, + ); + path = detector; + sourceTree = ""; + }; + E53459D4119876A5000CB77F /* ResultParsers */ = { + isa = PBXGroup; + children = ( + E53459D5119876A5000CB77F /* ResultParser.h */, + E53459D6119876A5000CB77F /* ResultParser.m */, + E53459D7119876A5000CB77F /* DoCoMoResultParser.h */, + E53459D8119876A5000CB77F /* DoCoMoResultParser.m */, + E53459D9119876A5000CB77F /* MeCardParser.h */, + E53459DA119876A5000CB77F /* MeCardParser.m */, + E53459DB119876A5000CB77F /* EmailDoCoMoResultParser.h */, + E53459DC119876A5000CB77F /* EmailDoCoMoResultParser.m */, + E53459DD119876A5000CB77F /* BookmarkDoCoMoResultParser.h */, + E53459DE119876A5000CB77F /* BookmarkDoCoMoResultParser.m */, + E53459DF119876A5000CB77F /* TelResultParser.h */, + E53459E0119876A5000CB77F /* TelResultParser.m */, + E53459E1119876A5000CB77F /* TextResultParser.h */, + E53459E2119876A5000CB77F /* TextResultParser.m */, + E53459E3119876A5000CB77F /* URLResultParser.h */, + E53459E4119876A5000CB77F /* URLResultParser.m */, + E53459E5119876A5000CB77F /* URLTOResultParser.h */, + E53459E6119876A5000CB77F /* URLTOResultParser.m */, + E53459E7119876A5000CB77F /* SMSResultParser.h */, + E53459E8119876A5000CB77F /* SMSResultParser.m */, + E53459E9119876A5000CB77F /* GeoResultParser.h */, + E53459EA119876A5000CB77F /* GeoResultParser.m */, + E53459EB119876A5000CB77F /* SMSTOResultParser.h */, + E53459EC119876A5000CB77F /* SMSTOResultParser.m */, + E53459ED119876A5000CB77F /* PlainEmailResultParser.h */, + E53459EE119876A5000CB77F /* PlainEmailResultParser.m */, + ); + name = ResultParsers; + sourceTree = ""; + }; + E53459EF119876A5000CB77F /* ParsedResults */ = { + isa = PBXGroup; + children = ( + E53459F0119876A5000CB77F /* BusinessCardParsedResult.h */, + E53459F1119876A5000CB77F /* BusinessCardParsedResult.m */, + E53459F2119876A5000CB77F /* EmailParsedResult.h */, + E53459F3119876A5000CB77F /* EmailParsedResult.m */, + E53459F4119876A5000CB77F /* TelParsedResult.h */, + E53459F5119876A5000CB77F /* TelParsedResult.m */, + E53459F6119876A5000CB77F /* TextParsedResult.h */, + E53459F7119876A5000CB77F /* TextParsedResult.m */, + E53459F8119876A5000CB77F /* ParsedResult.h */, + E53459F9119876A5000CB77F /* ParsedResult.m */, + E53459FA119876A5000CB77F /* URIParsedResult.h */, + E53459FB119876A5000CB77F /* URIParsedResult.m */, + E53459FC119876A5000CB77F /* GeoParsedResult.h */, + E53459FD119876A5000CB77F /* GeoParsedResult.m */, + E53459FE119876A5000CB77F /* SMSParsedResult.h */, + E53459FF119876A5000CB77F /* SMSParsedResult.m */, + ); + name = ParsedResults; + sourceTree = ""; + }; + E5345A00119876A5000CB77F /* Actions */ = { + isa = PBXGroup; + children = ( + E5345A01119876A5000CB77F /* SMSAction.h */, + E5345A02119876A5000CB77F /* SMSAction.m */, + E5345A03119876A5000CB77F /* ShowMapAction.h */, + E5345A04119876A5000CB77F /* ShowMapAction.m */, + E5345A05119876A5000CB77F /* AddContactAction.h */, + E5345A06119876A5000CB77F /* AddContactAction.m */, + E5345A07119876A5000CB77F /* EmailAction.h */, + E5345A08119876A5000CB77F /* EmailAction.m */, + E5345A09119876A5000CB77F /* CallAction.h */, + E5345A0A119876A5000CB77F /* CallAction.m */, + E5345A0B119876A5000CB77F /* OpenUrlAction.h */, + E5345A0C119876A5000CB77F /* OpenUrlAction.m */, + E5345A0D119876A5000CB77F /* ResultAction.h */, + E5345A0E119876A5000CB77F /* ResultAction.m */, + ); + name = Actions; + sourceTree = ""; + }; + E5345D2811999F53000CB77F /* Resources */ = { + isa = PBXGroup; + children = ( + E5345D2911999F62000CB77F /* beep-beep.caf */, + ); + name = Resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC07A0554694100DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + AA747D9F0F9514B9006C5449 /* ZXingWidget_Prefix.pch in Headers */, + E534588D11983738000CB77F /* ZXingWidgetController.h in Headers */, + E534588F11983738000CB77F /* OverlayView.h in Headers */, + E534589411983771000CB77F /* Decoder.h in Headers */, + E53458971198379E000CB77F /* DecoderDelegate.h in Headers */, + E534589E11984A27000CB77F /* TwoDDecoderResult.h in Headers */, + E53458A511984A3E000CB77F /* FormatReader.h in Headers */, + E534594411987396000CB77F /* BarcodeFormat.h in Headers */, + E534594611987396000CB77F /* Binarizer.h in Headers */, + E534594811987396000CB77F /* BinaryBitmap.h in Headers */, + E534594A11987396000CB77F /* Array.h in Headers */, + E534594C11987396000CB77F /* BitArray.h in Headers */, + E534594E11987396000CB77F /* BitMatrix.h in Headers */, + E534595011987396000CB77F /* BitSource.h in Headers */, + E534595211987396000CB77F /* Counted.h in Headers */, + E534595411987396000CB77F /* DecoderResult.h in Headers */, + E534595611987396000CB77F /* DetectorResult.h in Headers */, + E534595811987396000CB77F /* EdgeDetector.h in Headers */, + E534595A11987396000CB77F /* GlobalHistogramBinarizer.h in Headers */, + E534595C11987396000CB77F /* GridSampler.h in Headers */, + E534595E11987396000CB77F /* IllegalArgumentException.h in Headers */, + E534596011987396000CB77F /* LocalBlockBinarizer.h in Headers */, + E534596211987396000CB77F /* PerspectiveTransform.h in Headers */, + E534596311987396000CB77F /* Point.h in Headers */, + E534596511987396000CB77F /* GF256.h in Headers */, + E534596711987396000CB77F /* GF256Poly.h in Headers */, + E534596911987396000CB77F /* ReedSolomonDecoder.h in Headers */, + E534596B11987396000CB77F /* ReedSolomonException.h in Headers */, + E534596D11987396000CB77F /* Str.h in Headers */, + E534596F11987396000CB77F /* DataMatrixReader.h in Headers */, + E534597111987396000CB77F /* BitMatrixParser.h in Headers */, + E534597311987396000CB77F /* DataBlock.h in Headers */, + E534597511987396000CB77F /* DecodedBitStreamParser.h in Headers */, + E534597711987396000CB77F /* Decoder.h in Headers */, + E534597911987396000CB77F /* CornerPoint.h in Headers */, + E534597B11987396000CB77F /* Detector.h in Headers */, + E534597D11987396000CB77F /* MonochromeRectangleDetector.h in Headers */, + E534597F11987396000CB77F /* Version.h in Headers */, + E534598111987396000CB77F /* Exception.h in Headers */, + E534598311987396000CB77F /* LuminanceSource.h in Headers */, + E534598511987396000CB77F /* MultiFormatReader.h in Headers */, + E534598711987396000CB77F /* Code128Reader.h in Headers */, + E534598911987396000CB77F /* Code39Reader.h in Headers */, + E534598B11987396000CB77F /* EAN13Reader.h in Headers */, + E534598D11987396000CB77F /* EAN8Reader.h in Headers */, + E534598F11987396000CB77F /* ITFReader.h in Headers */, + E534599111987396000CB77F /* MultiFormatOneDReader.h in Headers */, + E534599311987396000CB77F /* MultiFormatUPCEANReader.h in Headers */, + E534599511987396000CB77F /* OneDReader.h in Headers */, + E534599711987396000CB77F /* OneDResultPoint.h in Headers */, + E534599911987396000CB77F /* UPCAReader.h in Headers */, + E534599B11987396000CB77F /* UPCEANReader.h in Headers */, + E534599D11987396000CB77F /* UPCEReader.h in Headers */, + E534599F11987396000CB77F /* BitMatrixParser.h in Headers */, + E53459A111987396000CB77F /* DataBlock.h in Headers */, + E53459A311987396000CB77F /* DataMask.h in Headers */, + E53459A511987396000CB77F /* DecodedBitStreamParser.h in Headers */, + E53459A711987396000CB77F /* Decoder.h in Headers */, + E53459A911987396000CB77F /* Mode.h in Headers */, + E53459AB11987396000CB77F /* AlignmentPattern.h in Headers */, + E53459AD11987396000CB77F /* AlignmentPatternFinder.h in Headers */, + E53459AF11987396000CB77F /* Detector.h in Headers */, + E53459B111987396000CB77F /* FinderPattern.h in Headers */, + E53459B311987396000CB77F /* FinderPatternFinder.h in Headers */, + E53459B511987396000CB77F /* FinderPatternInfo.h in Headers */, + E53459B711987396000CB77F /* QREdgeDetector.h in Headers */, + E53459B911987396000CB77F /* ErrorCorrectionLevel.h in Headers */, + E53459BB11987396000CB77F /* FormatInformation.h in Headers */, + E53459BD11987396000CB77F /* QRCodeReader.h in Headers */, + E53459BF11987396000CB77F /* Version.h in Headers */, + E53459C111987396000CB77F /* Reader.h in Headers */, + E53459C311987396000CB77F /* ReaderException.h in Headers */, + E53459C511987396000CB77F /* Result.h in Headers */, + E53459C711987396000CB77F /* ResultPoint.h in Headers */, + E5345A0F119876A5000CB77F /* ResultParser.h in Headers */, + E5345A11119876A5000CB77F /* DoCoMoResultParser.h in Headers */, + E5345A13119876A5000CB77F /* MeCardParser.h in Headers */, + E5345A15119876A5000CB77F /* EmailDoCoMoResultParser.h in Headers */, + E5345A17119876A5000CB77F /* BookmarkDoCoMoResultParser.h in Headers */, + E5345A19119876A5000CB77F /* TelResultParser.h in Headers */, + E5345A1B119876A5000CB77F /* TextResultParser.h in Headers */, + E5345A1D119876A5000CB77F /* URLResultParser.h in Headers */, + E5345A1F119876A5000CB77F /* URLTOResultParser.h in Headers */, + E5345A21119876A5000CB77F /* SMSResultParser.h in Headers */, + E5345A23119876A5000CB77F /* GeoResultParser.h in Headers */, + E5345A25119876A5000CB77F /* SMSTOResultParser.h in Headers */, + E5345A27119876A5000CB77F /* PlainEmailResultParser.h in Headers */, + E5345A29119876A5000CB77F /* BusinessCardParsedResult.h in Headers */, + E5345A2B119876A5000CB77F /* EmailParsedResult.h in Headers */, + E5345A2D119876A5000CB77F /* TelParsedResult.h in Headers */, + E5345A2F119876A5000CB77F /* TextParsedResult.h in Headers */, + E5345A31119876A5000CB77F /* ParsedResult.h in Headers */, + E5345A33119876A5000CB77F /* URIParsedResult.h in Headers */, + E5345A35119876A5000CB77F /* GeoParsedResult.h in Headers */, + E5345A37119876A5000CB77F /* SMSParsedResult.h in Headers */, + E5345A39119876A5000CB77F /* SMSAction.h in Headers */, + E5345A3B119876A5000CB77F /* ShowMapAction.h in Headers */, + E5345A3D119876A5000CB77F /* AddContactAction.h in Headers */, + E5345A3F119876A5000CB77F /* EmailAction.h in Headers */, + E5345A41119876A5000CB77F /* CallAction.h in Headers */, + E5345A43119876A5000CB77F /* OpenUrlAction.h in Headers */, + E5345A45119876A5000CB77F /* ResultAction.h in Headers */, + E5345A6F11987989000CB77F /* NSString+HTML.h in Headers */, + E5345AC811988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC07D0554694100DB518D /* ZXingWidget */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "ZXingWidget" */; + buildPhases = ( + D2AAC07A0554694100DB518D /* Headers */, + D2AAC07B0554694100DB518D /* Sources */, + D2AAC07C0554694100DB518D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ZXingWidget; + productName = ZXingWidget; + productReference = D2AAC07E0554694100DB518D /* libZXingWidget.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "ZXingWidget" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 0867D691FE84028FC02AAC07 /* ZXingWidget */; + productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D2AAC07D0554694100DB518D /* ZXingWidget */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC07B0554694100DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E534588E11983738000CB77F /* ZXingWidgetController.m in Sources */, + E534589011983738000CB77F /* OverlayView.m in Sources */, + E534589F11984A27000CB77F /* TwoDDecoderResult.m in Sources */, + E53458A311984A3E000CB77F /* FormatReader.mm in Sources */, + E53458A411984A3E000CB77F /* MultiFormatReader.mm in Sources */, + E534594311987396000CB77F /* BarcodeFormat.cpp in Sources */, + E534594511987396000CB77F /* Binarizer.cpp in Sources */, + E534594711987396000CB77F /* BinaryBitmap.cpp in Sources */, + E534594911987396000CB77F /* Array.cpp in Sources */, + E534594B11987396000CB77F /* BitArray.cpp in Sources */, + E534594D11987396000CB77F /* BitMatrix.cpp in Sources */, + E534594F11987396000CB77F /* BitSource.cpp in Sources */, + E534595111987396000CB77F /* Counted.cpp in Sources */, + E534595311987396000CB77F /* DecoderResult.cpp in Sources */, + E534595511987396000CB77F /* DetectorResult.cpp in Sources */, + E534595711987396000CB77F /* EdgeDetector.cpp in Sources */, + E534595911987396000CB77F /* GlobalHistogramBinarizer.cpp in Sources */, + E534595B11987396000CB77F /* GridSampler.cpp in Sources */, + E534595D11987396000CB77F /* IllegalArgumentException.cpp in Sources */, + E534595F11987396000CB77F /* LocalBlockBinarizer.cpp in Sources */, + E534596111987396000CB77F /* PerspectiveTransform.cpp in Sources */, + E534596411987396000CB77F /* GF256.cpp in Sources */, + E534596611987396000CB77F /* GF256Poly.cpp in Sources */, + E534596811987396000CB77F /* ReedSolomonDecoder.cpp in Sources */, + E534596A11987396000CB77F /* ReedSolomonException.cpp in Sources */, + E534596C11987396000CB77F /* Str.cpp in Sources */, + E534596E11987396000CB77F /* DataMatrixReader.cpp in Sources */, + E534597011987396000CB77F /* BitMatrixParser.cpp in Sources */, + E534597211987396000CB77F /* DataBlock.cpp in Sources */, + E534597411987396000CB77F /* DecodedBitStreamParser.cpp in Sources */, + E534597611987396000CB77F /* Decoder.cpp in Sources */, + E534597811987396000CB77F /* CornerPoint.cpp in Sources */, + E534597A11987396000CB77F /* Detector.cpp in Sources */, + E534597C11987396000CB77F /* MonochromeRectangleDetector.cpp in Sources */, + E534597E11987396000CB77F /* Version.cpp in Sources */, + E534598011987396000CB77F /* Exception.cpp in Sources */, + E534598211987396000CB77F /* LuminanceSource.cpp in Sources */, + E534598411987396000CB77F /* MultiFormatReader.cpp in Sources */, + E534598611987396000CB77F /* Code128Reader.cpp in Sources */, + E534598811987396000CB77F /* Code39Reader.cpp in Sources */, + E534598A11987396000CB77F /* EAN13Reader.cpp in Sources */, + E534598C11987396000CB77F /* EAN8Reader.cpp in Sources */, + E534598E11987396000CB77F /* ITFReader.cpp in Sources */, + E534599011987396000CB77F /* MultiFormatOneDReader.cpp in Sources */, + E534599211987396000CB77F /* MultiFormatUPCEANReader.cpp in Sources */, + E534599411987396000CB77F /* OneDReader.cpp in Sources */, + E534599611987396000CB77F /* OneDResultPoint.cpp in Sources */, + E534599811987396000CB77F /* UPCAReader.cpp in Sources */, + E534599A11987396000CB77F /* UPCEANReader.cpp in Sources */, + E534599C11987396000CB77F /* UPCEReader.cpp in Sources */, + E534599E11987396000CB77F /* BitMatrixParser.cpp in Sources */, + E53459A011987396000CB77F /* DataBlock.cpp in Sources */, + E53459A211987396000CB77F /* DataMask.cpp in Sources */, + E53459A411987396000CB77F /* DecodedBitStreamParser.cpp in Sources */, + E53459A611987396000CB77F /* Decoder.cpp in Sources */, + E53459A811987396000CB77F /* Mode.cpp in Sources */, + E53459AA11987396000CB77F /* AlignmentPattern.cpp in Sources */, + E53459AC11987396000CB77F /* AlignmentPatternFinder.cpp in Sources */, + E53459AE11987396000CB77F /* Detector.cpp in Sources */, + E53459B011987396000CB77F /* FinderPattern.cpp in Sources */, + E53459B211987396000CB77F /* FinderPatternFinder.cpp in Sources */, + E53459B411987396000CB77F /* FinderPatternInfo.cpp in Sources */, + E53459B611987396000CB77F /* QREdgeDetector.cpp in Sources */, + E53459B811987396000CB77F /* ErrorCorrectionLevel.cpp in Sources */, + E53459BA11987396000CB77F /* FormatInformation.cpp in Sources */, + E53459BC11987396000CB77F /* QRCodeReader.cpp in Sources */, + E53459BE11987396000CB77F /* Version.cpp in Sources */, + E53459C011987396000CB77F /* Reader.cpp in Sources */, + E53459C211987396000CB77F /* ReaderException.cpp in Sources */, + E53459C411987396000CB77F /* Result.cpp in Sources */, + E53459C611987396000CB77F /* ResultPoint.cpp in Sources */, + E5345A10119876A5000CB77F /* ResultParser.m in Sources */, + E5345A12119876A5000CB77F /* DoCoMoResultParser.m in Sources */, + E5345A14119876A5000CB77F /* MeCardParser.m in Sources */, + E5345A16119876A5000CB77F /* EmailDoCoMoResultParser.m in Sources */, + E5345A18119876A5000CB77F /* BookmarkDoCoMoResultParser.m in Sources */, + E5345A1A119876A5000CB77F /* TelResultParser.m in Sources */, + E5345A1C119876A5000CB77F /* TextResultParser.m in Sources */, + E5345A1E119876A5000CB77F /* URLResultParser.m in Sources */, + E5345A20119876A5000CB77F /* URLTOResultParser.m in Sources */, + E5345A22119876A5000CB77F /* SMSResultParser.m in Sources */, + E5345A24119876A5000CB77F /* GeoResultParser.m in Sources */, + E5345A26119876A5000CB77F /* SMSTOResultParser.m in Sources */, + E5345A28119876A5000CB77F /* PlainEmailResultParser.m in Sources */, + E5345A2A119876A5000CB77F /* BusinessCardParsedResult.m in Sources */, + E5345A2C119876A5000CB77F /* EmailParsedResult.m in Sources */, + E5345A2E119876A5000CB77F /* TelParsedResult.m in Sources */, + E5345A30119876A5000CB77F /* TextParsedResult.m in Sources */, + E5345A32119876A5000CB77F /* ParsedResult.m in Sources */, + E5345A34119876A5000CB77F /* URIParsedResult.m in Sources */, + E5345A36119876A5000CB77F /* GeoParsedResult.m in Sources */, + E5345A38119876A5000CB77F /* SMSParsedResult.m in Sources */, + E5345A3A119876A5000CB77F /* SMSAction.m in Sources */, + E5345A3C119876A5000CB77F /* ShowMapAction.m in Sources */, + E5345A3E119876A5000CB77F /* AddContactAction.m in Sources */, + E5345A40119876A5000CB77F /* EmailAction.m in Sources */, + E5345A42119876A5000CB77F /* CallAction.m in Sources */, + E5345A44119876A5000CB77F /* OpenUrlAction.m in Sources */, + E5345A46119876A5000CB77F /* ResultAction.m in Sources */, + E5345A7011987989000CB77F /* NSString+HTML.m in Sources */, + E5345AC911988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp in Sources */, + E5345F2C119B0762000CB77F /* Decoder.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1DEB921F08733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = NO; + DSTROOT = /tmp/ZXingWidget.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ZXingWidget_Prefix.pch; + HEADER_SEARCH_PATHS = ../../cpp/core/src; + INSTALL_PATH = /usr/local/lib; + IPHONEOS_DEPLOYMENT_TARGET = 3.1.2; + LD_GENERATE_MAP_FILE = YES; + LD_OPENMP_FLAGS = "-fopenmp -M"; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = "-ObjC"; + PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES; + PRODUCT_NAME = ZXingWidget; + SDKROOT = iphoneos3.1.3; + SEPARATE_STRIP = NO; + SKIP_INSTALL = YES; + STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; + }; + name = Debug; + }; + 1DEB922008733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + DSTROOT = /tmp/ZXingWidget.dst; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ZXingWidget_Prefix.pch; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = ZXingWidget; + }; + name = Release; + }; + 1DEB922308733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + SDKROOT = iphoneos3.2; + }; + name = Debug; + }; + 1DEB922408733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_LDFLAGS = "-ObjC"; + PREBINDING = NO; + SDKROOT = iphoneos3.2; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "ZXingWidget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB921F08733DC00010E9CD /* Debug */, + 1DEB922008733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "ZXingWidget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB922308733DC00010E9CD /* Debug */, + 1DEB922408733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/iphone/ZXingWidget/ZXingWidgetController.h b/iphone/ZXingWidget/ZXingWidgetController.h new file mode 100755 index 000000000..9429fe6c3 --- /dev/null +++ b/iphone/ZXingWidget/ZXingWidgetController.h @@ -0,0 +1,47 @@ +/** + * Copyright 2009 Jeff Verkoeyen + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include "Decoder.h" +#include "ParsedResult.h" +#include "OverlayView.h" + +@protocol ZXingDelegate; + +@interface ZXingWidgetController : UIImagePickerController { + ParsedResult *result; + NSArray *actions; + OverlayView *overlayView; + SystemSoundID beepSound; + BOOL showCancel; + id delegate; + BOOL wasCancelled; +} + +@property (nonatomic, assign) id delegate; +@property (nonatomic, assign) BOOL showCancel; +@property (nonatomic, retain) ParsedResult *result; +@property (nonatomic, retain) NSArray *actions; + +- (id)initWithDelegate:(id)delegate; +- (BOOL)fixedFocus; +@end + +@protocol ZXingDelegate +- (void)scanResult:(NSString *)result; +- (void)cancelled; +@end diff --git a/iphone/ZXingWidget/ZXingWidgetController.m b/iphone/ZXingWidget/ZXingWidgetController.m new file mode 100755 index 000000000..6560d9a6e --- /dev/null +++ b/iphone/ZXingWidget/ZXingWidgetController.m @@ -0,0 +1,163 @@ +/** + * Copyright 2009 Jeff Verkoeyen + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "ZXingWidgetController.h" +#import "Decoder.h" +#import "NSString+HTML.h" +#import "ResultParser.h" +#import "ParsedResult.h" +#import "ResultAction.h" +#include +#include + +#define CAMERA_SCALAR 1.12412 // scalar = (480 / (2048 / 480)) +#define FIRST_TAKE_DELAY 1.0 + +CGImageRef UIGetScreenImage(); + +@implementation ZXingWidgetController +@synthesize result, actions, showCancel, delegate; + +- (id)initWithDelegate:(id)scanDelegate { + if (self = [super init]) { + [self setDelegate:scanDelegate]; + showCancel = true; + self.wantsFullScreenLayout = YES; + self.sourceType = UIImagePickerControllerSourceTypeCamera; + float zoomFactor = CAMERA_SCALAR; + if ([self fixedFocus]) { + zoomFactor *= 1.5; + } + self.cameraViewTransform = CGAffineTransformScale( + self.cameraViewTransform, zoomFactor, zoomFactor); + overlayView = [[OverlayView alloc] initWithCancelEnabled:showCancel frame:[UIScreen mainScreen].bounds]; + [overlayView setDelegate:self]; + self.sourceType = UIImagePickerControllerSourceTypeCamera; + self.showsCameraControls = NO; + self.cameraOverlayView = overlayView; + self.allowsEditing = NO; // [[NSUserDefaults standardUserDefaults] boolForKey:@"allowEditing"]; + } + + return self; +} + +- (void)cancelled { + NSLog(@"cancelled called in ZXingWidgetController"); + wasCancelled = true; + if (delegate != nil) { + [delegate cancelled]; + } +} + +- (NSString *)getPlatform { + size_t size; + sysctlbyname("hw.machine", NULL, &size, NULL, 0); + char *machine = malloc(size); + sysctlbyname("hw.machine", machine, &size, NULL, 0); + NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding]; + free(machine); + return platform; +} + +- (BOOL)fixedFocus { + NSString *platform = [self getPlatform]; + if ([platform isEqualToString:@"iPhone1,1"] || + [platform isEqualToString:@"iPhone1,2"]) return true; + return false; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + wasCancelled = false; + [NSTimer scheduledTimerWithTimeInterval: FIRST_TAKE_DELAY + target: self + selector: @selector(takePicture:) + userInfo: nil + repeats: NO]; +} + +- (void)takePicture:(NSTimer*)theTimer { + CGImageRef capture = UIGetScreenImage(); + UIImage *scrn = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(capture, [overlayView cropRect])]; + Decoder *d = [[Decoder alloc] init]; + d.delegate = self; + CGRect cropRect = overlayView.cropRect; + cropRect.origin.x = 0.0; + cropRect.origin.y = 0.0; + NSLog(@"crop rect %f, %f, %f, %f", cropRect.origin.x, cropRect.origin.y, cropRect.size.width, cropRect.size.height); + [d decodeImage:scrn cropRect:cropRect]; +} + +// DecoderDelegate methods + +- (void)decoder:(Decoder *)decoder willDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset{ + NSLog(@"DecoderViewController MessageWhileDecodingWithDimensions: Decoding image (%.0fx%.0f) ...", image.size.width, image.size.height); +} + +- (void)decoder:(Decoder *)decoder + decodingImage:(UIImage *)image + usingSubset:(UIImage *)subset + progress:(NSString *)message { + NSLog(@"decoding image %@", message); +} + +- (void)presentResultForString:(NSString *)resultString { + NSLog(@"in presentResultForString()"); + self.result = [ResultParser parsedResultForString:resultString]; + AudioServicesPlaySystemSound(beepSound); + // self.actions = self.result.actions; +#ifdef DEBUG + NSLog(@"result string = %@", resultString); + NSLog(@"result has %d actions", actions ? 0 : actions.count); +#endif + // [self updateToolbar]; +} + +- (void)presentResultPoints:(NSArray *)resultPoints + forImage:(UIImage *)image + usingSubset:(UIImage *)subset { + // simply add the points to the image view + NSLog(@"got points for display"); + [overlayView setPoints:resultPoints]; +} + +- (void)decoder:(Decoder *)decoder didDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset withResult:(TwoDDecoderResult *)twoDResult { + // [self presentResultForString:twoDResult.text]; + NSLog(@"decoded image!!"); + [self presentResultPoints:[twoDResult points] forImage:image usingSubset:subset]; + if (delegate != nil) { + [delegate scanResult:[twoDResult text]]; + } + decoder.delegate = nil; + [decoder release]; + + // save the scan to the shared database + // [[Database sharedDatabase] addScanWithText:twoDResult.text]; + // need to call delegate....` + // [self performResultAction:self]; +} + +- (void)decoder:(Decoder *)decoder failedToDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset reason:(NSString *)reason { + decoder.delegate = nil; + [decoder release]; + [overlayView setPoints:nil]; + if (!wasCancelled) { + [self takePicture:nil]; + } + //[self updateToolbar]; +} + +@end diff --git a/iphone/ZXingWidget/ZXingWidget_Prefix.pch b/iphone/ZXingWidget/ZXingWidget_Prefix.pch new file mode 100644 index 000000000..bfb739423 --- /dev/null +++ b/iphone/ZXingWidget/ZXingWidget_Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project. +// + +#ifdef __OBJC__ + #import +#endif diff --git a/iphone/ZXingWidget/beep-beep.caf b/iphone/ZXingWidget/beep-beep.caf new file mode 100644 index 0000000000000000000000000000000000000000..8c693f888f727be5290521c2bb63d10b7d602b46 GIT binary patch literal 518418 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%0Ds z%O->|Cq>2349p1fE8h_;7QWo`tkdN&u?5|`O7V|of%Jjwkl?@8U;N?LnWAeQq|W<_ zhX$9PilL=L+dv&22>d=|H)XHyTh2zRPxKdNZpg&(U8e0{l86$kq0aUjc#%sutWe5R;8+4zz zCn}3}Z_1f)>~ug3cqSzFRkAQ@c3c%}7CS58myZXU2bd;o_0vT>A+nRw)vSGLS!m00lDTN$6j-WHJ|T?iOMb_+P$siCQ_~n3fu92c zND@pk65s&`Y`2FGE>~9=UQ2Gu6iq;J_}^R24OI)daQCou2d{n4^5T~7g zx-|4G>-*gHMA=gRRFd`QDHm8|uC4!G`giDOPMy4R7k?@r(|%hC(a#;{segL0L2vzU z;+BWS2C3sEtf$isN32SD6xozCH*EQYQ;cUJ8vhW&6>l+czuTy_-^NwE(Eb$pcfM#q zifPqn1(DTaK}G#F@pqwEHbwqgAKpi{FLPbz7LL3F*Z6CR^FurWlftgh(!%f35o{@i zLTUBm5itJJ-If!p1N8g=^gR^KSi?Uy4TQ-wDEApe>SaepQ<1>n_Ii;D_X?0G9k0^ ztEgWTG2T(^(s=i6@4xEy-X#&e8TLLnlC(4ID&_5j7C79*dg2teb} z=vKfhkL>=yf$v@Cv{v4dw(iRN{M3>~^*euDsu7eJ>Y0`KJVW!(R*~GIoo-ud{{(jN zfRe;$B{PcL7kfVB^<;Wj+mv4s6DO5&)Y01+yJ>bm37&w=_L%2Bzu#v2qiEL-i4ri~^&=ccwH#lxm5Nn=%cb5glm<5>BlCVWjjzh1~}2|H z-FG3CKf871xIe~m(~8~&PSc(6-cabCfThIeq45;w*fCa9LS@*^_&QEr%vI)6rX{e< z=M8oji(lTKE112moanP0vgDO)IOH@f*30 z))k!`)kCwr|Gq27r4B7X%%qZiZ$^@6yA!U4eok5u5jMFg?8C%o%!<$}K`6hw*kZ3% zFn!o{_>IQbm>{0kHLEU1R9z0?t^Kp1=}=h-Z(6N~$gSm%Or+Xss2N3H_rg_rTR)zeBo@`1Vag5kuS3P6=hOh?q{=kq46GCoGN(=om$;LT1F@_Zu zdN+6q`8MGxJjrYQ2yg7T?!I}gq+ULyu1L%-YvuX;+SzdWH={vY708G47Pp?2ZBYC7 zmRhsiGhDx5(-0r1g}%EZI;p0(@9f}27fwZdB0DegD6N=w&hPZNp9FiHEkAFKvHwtn z>yEUj~ORREJuF3^A&Z zkcm3h?O1%seU6DTJJ`u56%9i8xXN9P7KL?4c1LrkxxBsdZ;)_$shK;uw7RLODyX@> z>4JpUK~M;Ksx4=oL5^?8e&~^)8N>x)dGsl690F7^L*uhJOfM z3yB#%J-R}xHm#AK=$1E>if>eoHv5(bH*KsK;9jo(uO(G{qw}bGt$x9Pd~g}~w8sO& zHB=p~%zs^Y2aOktXYHAQXCIBc5Q1TJ2j2Jfz$bd?A(KXSj3Eu)=DTh63MBWY6jn2l zFRg6l8mqrFvzih`L(%!Gi_=rtj@_$tnlNu02k6IQU1 zoDEd}KoaR0!VH5uA)VTd%HIFAy;J;ZS}kQ&7B}ztv%Qf~n$q~Ds=K+D7bMlm!c_lR zGWxw-kGo`}Meygr|B&QiI!eyOtE}w_dqZV$vFt^W8FUPd;`akrfc)k07_im4YhbG4 zl^)*GAoHuIh~8DLYgSYaH&3Z$3n%m6wyo$|pc=BU`nJ1BoHJ2rFjim+krP@R92a9` zf+oIW-=08V6@*Wv-KC`XWniBmn*mz^G5sj}HTl1~EJ0t#lbW}}t>xdid&-!NW0e)W zf13it+%~)%Y*=Ozj8l`R;4(-q`2xNvR2Yn(kj8v9X$_}n(wi`3YzOlr`)N?I|9w0U z77U3U=^F#-lg-)ELHUcu1Cq+B8T^d0yWFW2&v=jOibPNmxbu(dsQ#tBe{eeJi3gA% zLT#ka@@tC7p$<*-XNAVav*$;DXJ}c2K}`Q*`~W-<^8dbWyNwXbuQr_$z&+NQRsB}5 zqWl$iuyS*Aa@|LfSBrW4ESqhT%RK97qKB1l_<rupZ8j!Z!ZyEj`QteR<0NS7fGZce*yzpHov$mzBslt`_uC%<#TKSxh zYOqTFNUzCH>*t$~js}foz!(sW|5f~2_S8T_EGHyml6UBxgu&3Mu`-4(G$nAle=QCQ z>jdk^Y2`Wk64QfLqx@CVTIq?Z{Q}>zLEevw5BytoK4NZ*tgB2FVZ3Hf9ohi8<6$C{ zqGWXV_rv@DQCj&B=ow(TC61L6SQ6E-57>8Jf7qps85#2;YwPP!SoH|{g* zOt_6Aq+l4E{ACD@32Lo^6dYu%1MkXh3?g-*LimWED^dh_*Wo{88rW zFSdM=h1GS5BP(6`r1Hr;bM*>g9M`S&Z#zv{Z?yJacYJpOBJ#YX0UHVBp*w@RVjGwn z5?*ok#cvDkk6sia3Ar4oBYEIB;7i~S17RZ`N~O`K<&q3s`%E~c>|Mk4KRLC_%iHSa z*0pgjNv2CzX}RiE!&2J~XuAj8-wV^pjt(+RAaSxLy^OgxsdnO$i4n1TLiJ%=$y+Hd z@Q2u}(FVXA{h|J6tyjkRI<|0i<vU64CfqnbrohhZ}BzG!7?% z9u}^c$iaMQCw=mvB}jFzD`zf!s3{LXwEF}tz;L+C+I<=ZK$YyxjM3GuW)Tu zZgpH)T*;#{Q&DnF%}=_ZtZY#Jp6h27cXb0nwng~2o?QA3|B}eD@SgZtQ`{#F&BVtY zN^6bSHp7*gFiDN+VGp?QMb)YFb>@K6Md<7!eE>!Q{j>HIr}4uv(ceHGLKP#GY=3aPR#eR1{XV+ zUa1zJzN1Qlv{c$%VG=C-;>P>^_FQxH>j@&vyOz#V-+i^B8lml4SFY>dkqxkC*nbGm zI9-8mDaq9O?B5K|@-!N6c}d`j`Nbr7Dhn|hh6SW!whV_3mYWmX=c;~{-;+`E6|IM! zzL)%bu)Fo$qtVWaoH5nI9~~y0z-4fYdB`;bw#Ey?e2EgKaEP=;qkg69lF3sxiu|vy zo#AsKTaJB{$b%mX!T=At2Rp7SbL{v3t~GD_AkYpx9#FR2IxatbYkqgv<9o_EA1bt` zYGQi+s;^qrzneh>Gn%Ri>==t5V zNqgH}So3u3T0Yc%@%|~xi7RgUU6+aKtXrFv?_RG`GJo6D$(>R9Q_ghr!hqwp;mO@& z&lg>CS8kf<^>(KNb#6NkAHL=b>C&7apWPAV#1|-U+^N1WWEB4k1W>rpZTE|-!{6@w z?9IFBs!zYCQ=)S!WJSNGb{>%~l*J6D%JI168g7)c$&pq$@M_slmp|(cK+@M?QO2eB zNONY|{DtA~1D!EW0VDQOzgN-?1nQrC-rT%QVEdEBW1AoF`?H=L(M`&`(|w{ea(vGJ zRvI@jDm{ZycYq^+a^=jkM#_>W0~6O4y5_BY1pB_^H32d+i_8rhq2{2^(x2GlX)clv zfs#LN#Jjl``0FPmx1xuk_61LIdieXBUH>a9l3Z%*6`mR*3NK+R#M{EZc3zqR(Kal! zSvRh{?(%HKRhVzK62Em?Z~%yTk|IMusk(kTWu3Uozq)ib4*p@SSN|)5bLR_B8}jWD z!_>kEc}>Imjzel{+XvU!_C(*Du6;34nzJ)i7Vv_1!w;5T0|YLD!$N11u}Kr@q~+vR z-wZ&yZ?B+sUoBOjvnc18v-(m#HSAiI+OF;__ zQSqDli0S5Ff<>zB`lE?%?*la{uP_$2nNkHqh-?=rV&;w{ZPOi)u2?9q?=fbV(K zQJ+^n{TE)}H$)b2RN>DbQG`wy&`tg9R5fp!N6(_IuyYGvqi4=(!6hfY#2e^^xQ%dcRDu-;o6$NO z=v={dCZi_WEURnmefh*U*rc3x(pB|IQa%PE#d@vAL)_z z8rO+lB<(ps60gH?>DMCrK*3RS_1h2nz3=X;V?PHeUzTyzcyWMMYgU^=!FJp9KCE?F@lkQ{M$%<-T*8{0n7&^>Lng zP3{lvulKK%^S?tC#Of7_Yi)nk4c1iS5$M~#Jj$x!MHA1tzMgRuT%GY2@nGH#%!gUO za9iDqEgvwQDMISWklRuBBsv9C*dP_R?`lq}Hn*?I&g z^9F{Wah9N%&LXA9q6udLK4MAWEr=7A3~;36rHiGqV95AQ*N4piW@NoLYc7AepqgHm ztWFlHwVlRkJvRUwt;_w~M$#f5xN?(kd)}IR5b+}mig`Gfg+Dy44^N9=VERaW?^0JS zBwcsg{V;#+81WCwhW~WHbTBthN64F{3j4B7`A_*(HB_9aTVy_94h7?F{Q+-BjWL7n zKd1i>Qaf*z_kk=UW_XSoS2XnqR>Ap(UV*;~U*-e@*;SWa6Pu0?A1lu7hknR2cE9b^ zT*!T^%>4>gzOUS*-qZ@#*Y-R0`axX>B$Ojg@8eDaKh4U9J+_U-VGf z_d9*R-XAo6d-p)+_aRr^Sq#=BHon*Yqr#gS9A9mo_-UiZIA7fkO??S*o%__gZvI2; zjI1w&eX}MKx+nJHqJt@@*^p2uy*CALSaQ!1Q}NtR{bDoi&HbYtdN)yduV9tDu;jTi zn&+osYx0ceTnPQ`#HAy^uv$0L)EAJrIrqG`WU;WHGr|ZTQuKtBs4m<>e-P5)vE3`H zhX{Dr^3CB~?r-b+(q?}8{;nSM{+D{;*EBV}0;KszoNAb6M)sZo9UF8Z3!HYxK!B@K zuR~ih&Z2U&X5hZhxq&}0brS9{M~Lw=fIWfRZc&-*#jp^7Flu%4(cbr+pAig zt5$se8lh;dWT~%9cNyV*seRdy-XVK%n(O~2t^*5a`g@0FF2F@*M-r#a2`Al6@*xI< zdSf1ApCkOnR)Tt!`<(x493BcN3G2Q3agkn?cTlbVFi&~8Xpgd~)<^5x$u~Y2i0#uN zCJmpW<++@Rj{)_}+yJl7u%naax!{s#-pBFd6ELx~5bt#OA;=ATvir0S-q^C5eRfu% z#+;geO}{GlhFV;}P~9&^X|^}6)VC_>mh`bL1G}+O$04@O!+T0U^wyjSs9D(?ah+LM z;>=kb!r{0%SPdl*N%y)8ncY|7PHRmXomYjj&iFdqb2smfrsCa2g}s2Nm|Ehe+`$di z;?>7Y-p+2;vjp@gij(Iam}G^((ucfnWe#G`X8eOcoSKM#9eokI#9!up4CoFK_k45L zi7;bHqayV_r3)L-j;+3N>cI}{iUb^bY#05Z<#N4(42f~91q6XWJwB7IJJNzjEJ#a_V0 zB2;5m@JVI4Yjo43VNOYG-<*%`#?U;ZhLrzFxuq~qX|LI#3F-7Te71k@n}xs)xzS!Y zUynZp%A7@l-I-U3>dExLrOv9vT}(*8Sm|)27lP*HYCjFQ)KTkT)}ZWX3jHj=_l0`u zyW8r34?q?DXQ&$7@Ibdwan77N7HIp6%^%AObqDNCTI_Xa&K*=jb|-#S)+gefS@((M zai8#6l!GXi*L|;{z8b)~*7Q+F6~wmmn_rJ2uSE0m-Fqdw;H3Ov$w@^H_o(K#+TMe4 zp4ZuIE^>Zm88;SK0KomW1+>=_YqhsYP z+xagF)4}&~x<~KB)XTqoR2?p-Y3fA>4IfO~dlv!4gB9c(&Ym&8z^kd{FvGlf^z7^e zeDK_xgyLy$@sRL1^c`XnJkVJQ%-2kHp3HR&ZYeQa))k!4hrNqeW#wLwAN;aF0k23@ zJ(uj)&*%m8{?D^xP#&~!+&cX*c>Rp0h&`DQ?EkU}#0PVpkPaukB~A@}gZ+y;jJW53 zf(un{E@Mq+hW3=C^HE{P?NtuUG3L6fUM;qg!kR7@Y&kz6xla(hj{gXDRyCd@lkaOG^5f1}914_u?N? zsi-pO6=+1i*xl3y9doU!vi5#^(}T)u*X(}xNpYhfM($j!RWvm9Y7VQTdiTiaeMp!%fbZOz22mNZ>@@!9MqI@$LgofslIm?w+Ek(dFe?))ik~ z^>pVcwRiJgs3v`usL*Be)nhGZ4HJ4c^_BsFgLVFu&Ud2EfWD?agrA%jiP@HYl5jC& z8u4iIO2Uc=8m5l49e&@{74$@V%=tqzVG#H0spa%XqAvg4QRRl*3_0S9Yqz=ll=8HA zrA}qGSvG<14kiTxob|EGK{eA4AePNzVvDl!h%@KRB8iiViN823?7w&q#IU0StXI3c z^b1?kH?l9<5<$?se1~L+#0Z7vb5%88ocRk9be;jG5QQ zzxf2i8jnxLEDeE_(1OjOHzE&vyL#OiC;+&1wvJt@b+L69I!s6NVLF$0Cskhgxr&WH zd{lsXf9pjWT7=z+18|l5}ZvNeALpcpY^B&4JyA zlC3KD8;PJ{vY0!5l%du{E+Y{ z;uq!&sRusd`V{2QO?H0VTrl|ScZ$XI@s+OVU6~4#`%Iqvh0rZ7U#jdBXX!4P-dHqe6U7{v07K`bL{Juz}lD9My0AV!bJ=RQ8p+tn!yyiSdCspFm;s{ggJ zx9H=j;YMDm`tJw4l2BNrRMyZnH#=S!Gwp!>Rq*A*x2U78F>wmd$eAAym*+jlloRP!eHk8)DMh+JN>Nnvej*0NQ?o)U+_`VjYRv^sQ&`?@LrLRx13 zLB7t6#G2-s2}!9GLS(cGV__w8&v?hky3`BW$-W`v;QF+%h*JsrQirVBEv8hKK~-( z+%|%4>#Ce3{3(NNzdI~XJ{t7YT#$;DTO!AOZjtXU_g6YZCf!xDujLBp?;tE-sXsr*j8o?AR$rgrI`H-jmmby7i1kHEl-?ZH*%qf_j z3>5xR>VJ4p%nZzRaRIV1e>sFX%o3{fy?LWzLoEXu~9$l#s zumu?`bWau$Up$9NJd%6~OW`4Ws zX5k*y^uOn|)DEEWmhD#GX;}U+f_l|ubzC{<`^7#p6c(&1V>t$#eHULl&xtrC#X$Hk>KdlSkAlboID_9CUb$QrScdXT zBl^NWGYsI|PwL3rZpH4;+}0U~880bk7#W0nzo5zCxsfhTIFxu|(php+uk>1+RV(d3!y zwe9WidjiKjng7Dp4NIxnE<%Ba4Ii@jV89pGj5`Q4(3+75d z0zwJ;58`Itmys2JGVSf7FGp<#F|%zB4-zw=&t-bajp` zsk?0Zr>NhwHvg%n^W6lc$NL=l-NL(y#2T(9Qbscx2b24Mct07XGuF6IpA-jCq^(9} zWVzv&WC2K|v@DV)K|z>He~5mCcmVr2u*HMl+3AqgE*Y3uWHkTt;fn5M-f>mkN2a2_ zSgrDIbZ8GLANH&q%doD(MvvsPgs!^DFwe7Tg@~u~_F}x}KET;i&*Exg{$RETlzATq zS3_1?xbE+z31c-?$@Yxz8D?`nS6}n~soM7WhuZ0nM8o7)>xsH6=Dn`dY@diHMz@D~ zyL%+9^iFZPD-I5(TW!*a6*N!9uyFbK4 z^#t|l{p$x;N8E56ner3hKhxWDV3q{lmQs&e5tod<$5?Gwyv0@=v1D}Z3-lZ zGbY0?O)WrOi}k?Rsf)3vkR-Hnbc1)7CIPxsmg;8R zf8?9Jrts>3o)z<)EyXUw^NU)nYf5^|bE_?ed!lfiP6yLsQzKf z7H8E~#*>`_-Pzu`+5&f_?i8-s zm`s0Z8H>JaZ=UpL?Aer)?gf)Lp4zAxh&1X;bRZ@S!*wxWM5g;Fe)}W%^G3d>PsL`p zq~G|FlHZ@K)m6@>?YyTOzO~7Od0^!I?UZIT>XC4V)eNJ zgz_8shH4X0qZwoTXXHh_>pv4$INTY(%JomoC(oIz_lV_w2QWU+W8+mg2p_B?VJ}M) zkoOyodi`6u6mX?%*Vw0uR$FJi*c>O>JN}x}8g=mSQI(UIP*vtzr**KHrW-N;vu%to z8aoo-3FwMh0bR~CqxyW`;ETNulTgEpNjtO#LYQu0l@KEecw+G>eyns|SY8rk6ekt%f z>5l!V&kU867$$y!>1{;A*Ho7Q6RO@i%4!AnApRHAR+&b7(`-;~av{kJk?D$tfHxXA zTVkw_@w4ujxNx*0HWP3uYz_2ta49+lQ%+#I%Se^|>7<7W0D;l62o0%6dlgq*abH&z zGLl$Z*0(?~Utiz#TlvcJqN~P5Bm0JY+~o*ZtYWjn4Cbhh*1*_RV>hFtf#K{{cvIjE z+$>bN&s(=d|Ji-d{ck9i`*eu5;l_Od;i{T0kIGu)sJ-c*{@;>ihIG|qWsYrq*Cl|W zvmA3*HW;*9Nn`W$2P2336w%K|*F^vT9~nPjSA0KU^stLWiv#6b)zj|#xl>QP#~;D4 z>qepL{${!}Yed71+zGu`rDeMFnjXcQK@XV>bhguuU)CK+`K{t|UiZ+VPupk3%ySx! zhyYs{ACY~&D1seo@&}Jq1|;{~B&W$DeBKKrSW*KKI98kIZs8#l8wz6Lc574||Gq9!T_W9S90|rA3fQtvu2+-T)d_ALV(ww$4e_xYD+v zWsPBbmrg-8&+pjg=xLn+OK3gpliBG*yQJLBf%NQ)I5rp%4s*jX;n2~58MuGZbiY4< zDM1hHL`s+@Cn&n@q+dG!BX(6|f!CbI)h_#+U)U!}^#++rt2kx#=}2~iw_?28TUYxD zI|}HH$~aDP&+PDofxDsiT))!Fp(}lQuq)w9eXlzo2{87i1a>MGlk3EG(n4-M3SDmk zPi%PXU^PGLk7@1EJ=7fNzHT$OM*-Hfve2lu5b|%?hmc&&+^~BVc?5D4&WQ!yq)Ct% zA3kX=d_f@AIi2#TcO4a{Fa-8UzWSs$`=RDGegP#nog7^xuv!K?7OBtc?svuy^hljN zK8uRb=OupRTOBOMI;AOehB=&r8E#`v@i-7P%lkGyfH>^AC*bW!3*|x2JBq!lHSmE* z>yyTNfWkFJgCM-aqc6pty{X+q%|sJh_I$Lc^(thxL`ML(IR!85BC}Go8^VtE^@foh zk<3hRO<)oFAoi6{ALw)tYKTj*8rD$|of5LKWh!AK*B3seajlz-M;a&<)fpMx^W+Ci zJ6iRlUqq)NQ(D^b$0WCck~(c6gW8>;*ZNZN6aDht--f4o$@jC}jlVgOgL;+(FqgX6dza4x9~j&o)a}ws zms)`#1htKp*ghcuA*{qb=1Czn&2yZ>M9zK7J0sNhb@w__>~hf!_XmRY-aWz$-~UO9 zD7LO5W}M+VD|O%_1LJ-pFdAXT)sp5wyo1(_9ivB@1q_hl4t2TICv?~*@d5)|WLRG@I{?z2$(W(Ev2)Bt?3z&wV+7O`NI+-eKzOGEtlLO2@6 z&jF^koET1OpV4zmjgxQf+tSK*Y8Tp}5WzJ2nW}I0`6hA%}dP z5yLA0PC4ITksL_ zBx1QB4%RN1?y_Et?|;!*rJ1PP-2TS)r^U<7yLla4-TV*H+EN(wxkJWq*5-sPw4JA^ z-C_a`A;7q5(ly9n@L5MWqqO%4bDye}foewuo^LrufbqXU$$}3~0tvsbz5AS6V*J|S zJX9yT37jLigi;A_`1ML9G?F}%`MBo=Ywz$k1_~$+;G_58-ufp%{HUU_JIpA{F6M3J z|7iDG8_9IxRm{m|3Fx9=$%vCg-1DgWME8F^u96+YVE#N{2rmd#!2h2gOR|`f-)&}C zO&KASky`33aG^g6TZ8@@unx4IF>T}`dzXpJj#GSOgtSEm#I$_Ff`oK%tmw_iw)Q7I zeQHnn|9V@bF^+43ZIEltBHUIXnrvxZLHnef5c1K&U_2kY8f=32`CPz-djBtAihCnH zabP!-qvwWXb&)8G#eAPj0hjSk97m@u+#yAm7*)C_*Vb z{9WR47iLt~&0T-4fyzSg8&FIhSo~Hh3WVXK;Y;4&KDCN5# z7YST_*!iAEGNc_^Bm2m}ZGMbE~K`mclZ(b}Ehtdc$;d#XB~(a_EdOch1o zW(($dt`_baO_au%!n*(MZa1C~iw2vU*?_vHD(^ww5}$ApC&(e|p-(r`=%0qElnbC& zeh)Bu^tXWJU|)uKbZcmm#Uu2aDkenQelAcX2IAx`(>iI z;7dI>@?K;5_=W!8q-5%0`7g#Jvm1jlDh$r|Jm`~)i$zibng9iK)8I?iN#g>hvU@94 zEM@p*3+E$$3BUmVmimF@_H>;}RnnQ#d#6Rk{ft)f4)hzB+2M3zXah_s0#BR(SoPL^>Z~KIrda zf7MQ6mUUKA9*Q-j0^tMr&XyRLd(t)io4Xn697ADS?*Lbr;albS^IV1~?t z5w3q8vUYG9&FqmA@Dh#0v;5nl*c52!Orf##C3Ke|a>@f z#AeFd?zar4X*#`mln{K;GtL)^+kku%=z6muEIwoBwlF#%N}+5$KrjkBMW{m{PEg|&aOZVRS?JRkzYTTAR|$qq{GFwke}zA=;og|yoq z=zz;82mUd63UnGH#knxF&N@3RNc)-fL&l;kle{G!Xj$mh(4uk#wazsk>#mi18G+&z zgHGH5_vD6$h``2C;v&KM07?50b*rwJHfPX1c&9|prj3j^5TVmWK%*UX9yzEMz771ps}uwS>|=B5_!Jmg=GKeo928lf}4zf-t6HQB!*CYx;^N5 zJ;&(_M{Wln@$~cc!OcOc0@ng@Av=dRg{GLuY@^~VV@6vbc|(f zy_;%9N3CV6Fnd(iqyukmypAsCJ@-qO#08Hi=yV^;8`>|Y7eO~*(@6uQkKX;%8jqmR zprPvU^QPFa%gXVL*FGm;v)G2ViH1B@ORER|=?c~*>)7oI>ncIJ^SP#jUg?clIPYdB z{}+-c6s+PsEu(ierP4`9J_<|4&m=8^-ld#%*~7}TP2*s6rRP&FHre(6j*$P z@uO>-)`0Fc6r#Pj3g4SzMsTnkNV{p~($XE@gQB1>e4I%8kQnM^k9DE5hv!8=O;5s| zmAjd*+qHoUB*~Zu;z(eKbaas3<*s|G19hZZLj--!$fi^;m&U2s3f^u12@){HMUh5Z zX!%QNaoR-gf#LBrBnZrp@{em0>$+`>6Q$q9zTPFJ!#;CGA7G`T4yPNfHI_SavRr6TiI)r<;NEllRxg9cHe4Yr;R6E5 zZ7V4MX}HvJMKm}JaNW-pHG~Nwzx4ED3^_bF_xcjUJv95-_c}|d-ck(7SM&zDMr?Jw zZy&W#m4os&^C8LRkrT~ZfUlZ%qo}-CpWgADHr^W1gvJWG-v~DN4EVcm!FW&Q7N`R) zVp2zuod3*2oJFe8kU#AmfnnlRSU}4*pjy0a$hG~gezA()@y&u2^p3(C%RsXm*r<dzJxI;=xE#7~czXn6+#YX}@(U}i-4rO1#ABC; zhI^ zvhvA);;G7e(VsK+<*A)ULVeYr2+Jfo&oGw#)CP zNzhkKA@~*iF0#DsA~jmGg+9qvN4@A?7eGLz;!DYiFpm(Ri!F?7Q%9in*Ep1JZhIj?U6_s)|O6jKasV)?*!ZnxXE`tee^;RzwFnM>BTS|~Z1J5;qD5j+zR zcTSm&r~zi#eV?w9{H*(8+V zLSCDPrU{DN$9?QWY1tmMQMQS8z(}Q)3||gD0lw#3kK2q63Ic<;%nzgghQTbm!yqa- z^J~Y}K#N#~?G?F!xZ;;Xm)qs~5!K>Ox>+r-jkGp4gNXHgsA*0A_$r`>#DPV=Q4+aiMR$w2CeSo9V6N4SHbNW@< zSsl0fV}w|z=}oI3=!O=IfyeZ#7Uu>(l0Ts(TGmnHohAhAg(?WSq-F3`lu@_iY|6m8 zu(<|VXkPaS{dcR#A1o?CqD3)o*Q8gi-^R7FJG$$w-8K+^kqfKwAvC1%5l+Vkk`r1F zQR>zAX*z2SmFm_M07mBFYyI!QycjQCqr<3nVgyuQ&DqzzpMI;g!1swb5P=gfb_r@AmjEBFSvWZpn559pTI;14r5e8P`3zaev5`zWt8OR3`!Xz)&epWjQ=1562-jX!Se!FV;vMx^-FVo$ys4RV zN7x=X*jY#&G90E|8lDh*2u$_m;eyd8gE-(=X4z<8*t%X)SgCp&E48CF=(l78&MKM$ zz9+68-rfN*l&Io5&ztLn8%Amxhk;e~MJQ0yLZ5$Il7qr!a%yqUZR)qtM}acPAJRB- zjZCKO@Tg}0H{1{|F*Cy_DYdMyj)_SCq9!;s%+{I4z1 ze}~u=`9yTaohUtPHOL0kQr(u;0qb2p+WAxC2Cv_Z6x_n*RR2z?gmOt$OuO3OMn$?s z1OUBF_|Ja*ut|*dt{XY+_ULej0l_Kienqcpt@9&_mmmtoi(D?Z4)v{-W0YGBIg+OX zF1%fCtcInq&ke8e^5!38X{(rWO%qHt+5QB7b65B^q1Iu^ zPLuwt(j8F~v|9Ys(cC`S0#tO%x0zhTkB6FgvjJ_5?%oTUE|O*lw+5c?44{@9 z$h4zF<-top6~03_68dit3cQag9NQMw(0euWkQCt$iuQU=lAuNcI}k>e ziY7yttAsTpXPSV(f9qw)&ZbE|Q9}9uadef@aU9LIdln_Fc*QI&3Rf~?j4@Np%n&m( zvtwp<%*+@wv*i^oiJ4i;JKe9|cXIT{(P?+ry>;tW&3Ibkl7CtLuvRQT=&(i+(U=hb zz!}~nWjvuv{A!0&(y{u1Nin4@=`6q%Uc+qW=%>o)ugN57FnZz zWUmW1>Bfm$YOnLA8upv|7KqA2D_dq|8^@));yu4xyADgf>c^%whMzJ_mj#uEE5&APz=(=-Uve>4o!n~3@ z)$24xvHrwD*ysKzK?I+z~+nAJQ{-WeBUP5(LP+CS> zRHxi$@)K1D6s>JB(h*J@!rcAd`@D_PI^T>nk=u!e#wSTV%Om1@<(-ly>k9&!v>#jy z`UuC;Tmjsu&?bLb{l3h6M_+Xt;gVmK-Y3+Y5a-MvQP%wN@^v-$dNE%t&K}CyO$F$7O zjX0^>Exx3^!>cmfFs0_#m5;9EWGjtr(i5;MnRRtf-sGoAJrUkT|3z9^a$nKEsYLdR z;~Y`qW=ww3x4$k)sI3)bieG-uv@xGUVrLlaOP)~HTxDmE^$w&u!j^(qg~*T@Y}Q)cr|3?iw%I=#Iu%bUdQ$tBZk@Ft#mWy%zUleT@3%qAG7d(G zatF!(s^Ti5t$OKPC#NtUzk$BaQ7>J%v7bpn;;$y3qdcFTWVexsr!dwz3idOXtp7K>7nm-#JB?GZ-xd!-pAy%oMqLu9|1 zhmlU6mjle9x$gIrN4Y%J5_5i1RrP%pThtOXGd`?dx5w*+ZW8Bu*8AqUg;z?aRQnj_ zn+KhnwL#Cn2WQ%HRlwrE8Sa_Ww>Qd zOl!@FOg`=QJ^8-%~#md`k}WVt*G0Z_XSRbu#akd{FgQ`Cj`sNq-k^$gTi?u|gUt zBymq2rAd;8u1Q@>EpaDulO^x;FZ|&P?9RRP`F26xxa#R;AM*w`j?U~)dZ<;-vg9s4 zktzP6W3(eBHwz=>pX&_rnWR3di)(F=IVjgFK`!H;j@R1GC7q~KBpxgAh~?z$j69=v z^Z5lmugGxET#)~&qD#fe>@Uq1(s!fnzeS><$%%f_R2=q5S0!Csd_rz-d?R~-^CB4! zb6~g7Iqo$|H*Q~5H_L=1a}6&M7j23DnY}A~neKvjv~D(ca@KRBb78;I&s84{a2ZXS zoY5v*O(7cOAFNKGG;EDlZ;db4OQXbxY;(S|!i-c=WqX;LY^Mk<)W}$%-oq z1gn!Y7{tq4gF=Z}>O42ObF=z?9>!Azne4lh_M_@L!LDSk*T>)b;8mHeqn73kkoT!RD1T|+C7I-WJ><1N5wDg|r=+-j zY{#VT4abrOm-)s$&Sj+``b>Y5w%&P{KFdBauTAx~vK4uo8zVC}u+?g@Q*v^GxJhje zb=5S1XD^hi>ki2$l66s2TptGa54z|zM^?=@#@E_8NtfzoB;GEW9y=xHYh;ez&o@LT z5*##~u(ZfuUU95qMvk<(SNav?|2tkJOzz_QHsy8L6x}1~#NwXv?8XGyN4zPry~nA* z@gb~73q=X{w#v_PAW2{IXJX5u7txK`d&BSQ?t7or4d-6TT4@|r7**D~YI#O?DOdXPbSH-HL z3cf*~)+w~B*6eX!C&k;c!y4BV4KH3(Bi4IZ9;SBV{z{(UF&AbMZ_}?uZq06%x2w3K z*l!sxa}#V1kMNE1n-KXz)GyWpbxM5D+&$@IMO;E;es}paLsC$-cC71H-6--TyS(mP z@sUFJ+IsCs+v^mDUzIHOItBT&BBLqlS6-mPzj}b;oSiG(=sYCM)&H{3KFNM(Ropzn zONwYHO-d@0##Q8=lXlhB2SjR0osGJ!_KP{^sy~-{m-Vgq^nfyx*{YssH1m{?2B+v{CB%LX;oc%qNZd>?A9FjD8A0ccZX)T zAVv4YvO4#CrCZtNoH332(^H7$_av7-$`_}cc~1)AR6Dt%w$_q=aqvn!NYgPT94UBMla zzq{^9KH{H}<{R?HANGJkg_XbQg|Y_09ZuQd-qYRan7# zWe-E=&;^<#4|tM-4f;oo*YjT&->gj54>UbUP2l{MJkjFrhLO9nB(>+ z+*AEdd)ktd(vSB#d8{Y-{XO`2Muy~bZlUs@s<+X{ZO7!rPU?tBex-hTiL0nG32^RhiY{Jr!(8SEYgf~49r?k^QK6hf4TOSW~RM$icrW;elHfL1c%Pj zG)k)r#z*sOA4G3vcgu{T>0!FS-agIJ=T41rSJ>FZSM^^K+n1b-4a+W%YNegwTb(&e zxKlgddND^?)w;x(`@Erh<_Pw;dbjh;-z|LOQ&)y%>AuPSEy|4cX;`j2fuz#jZsj2l zgL`;)k<|+P;z!u#C2p-vQ27^Ki{6-ZH#|p^B96&S;Wg+koBeX@D%{JL^A%rI#$!)^OQ!&QR+YUE|nfExZLnW7thkP!Or_q?)r+-C1D%%sj_~>e#&k2_Y`LGQSwt%AL0@4 z*z1X87(X@Uku4^HQyUfEsVGe;&&ml;)V33^()8uO*K;kaz{fo)|C#Ye#Mmr@e01p{rMl^<;ygA*9d-X5G$44E$9dT@?!eee^Q(m2)uOoX1vdE; z!~M`$%@@y)nwgyE`X=Mid|P?T%9q(z)80%Ej#tWC_k@%;fkByVA`j&JEzd14Q+_h- zk-y|7M>>1G4VVy0-TqMgh0Ei+8~;hLRj_gG^S86u`)K+^<>d`hT&|j{JZDwPJ_}BTZ}%DDCkeN?Tvuk%9`SXJ zSqWFlp2W7w{UJG|yBDxglO!6g-NM#qPpf-Te50sU-AujMz9DUaP@KZ?Hl)IrwX|xf zvf!ptQX8n8;OHr}Ie!kd`1|>UMa^~E5_8y5pYXK)X~OFgd(5Dm<&kMRU%!!>!A{3? z?d{y0q8e%G<@`?#r?o9uN9tVXdFs9OH`x`jxxJ ze$ORRzOE+FRWnm`QoEV(vuD@oi;oqW>!NfI?8DQ3mEkD_3=F08b3hCST+{jrv;hkXC^QyjbZlfoE)u?Y3$| z?fHaV#qFYJXU~Wjrrql!)+`gq^sOyB^F~x2hJU&8tchgaLH$yeiSDYe`{ks2h9?`I zz_YIc<>{tG#dQ2B>XJvxpbf!hk5qX-?yvY@%b%(X)f?ig3lAuAvO+@ZwIZ(xnwMM` z17jSUUkG!kQ-F_u29G(R{^<5ieJfyd1}`!+d%OH-xu5cHW3BuW_d#T^*Vll#fX_jt z2h$7i(Wwe5SI76uFP4uqLU{*T5_m5-Eh+KDm|RnRlU|TBBfu@ z>C976hjLFU`c%GGZnIR#vIXABVD2o3!JH$ zEXvZZA(OMm*V&3E7V&CXT`J58YXsZWZM`R^ibG~=`I2Y(8H)0n)5>A?pVB(#d13AS zqkXnT?RCnDX<#?0W;b+GjVqlV>yy(Q^*}epuU50jxsz^;eSglon(n1j^Ysl=v|jA) z6r+<}-O6W0>ch|m-6rYRBEC{qXHvW)^Ch2MT|;^X_VRX@_7)6^ZMG$=meqbucvn0x z`egRZhusyF)Wg6Exg498`fl3mK> zjdsOqd_L-qdv4IN;B?Ojd1oGuV=b#y->ZKngcsgd3bWdWjnvA#9%)Wd!`xUs$FBk@e{Hgf~Z~p}0*IBKbVheYcysf@v$hGWEmvZaW3p{a3|DZLQ zqobzej#CV(Jf_@X*(EC!B!(M&+W0+;kc!4d_eS0cmzo}`wv?}ki^*Fky`WbFuG7qS zjnQr)r?VsLLyDC}-D}_L^tNZIC4!FXj^6Gm86nP^Pm+`QXA~JVQOfT2`7%G}n6Tk~ zpM7pbO>k}nkB(leIyY=mEh~Kz`$w*GRJv}J{}9bK=l!}Edvea9np>sv0`K}-Z9JQl z8t8OWE%p(oZVvsZ8z#M3cv|UQcS%t}k|Z^v>mh3cy}j2Ma9dYs^~rOq@-O$wt%bYPN@;S+dXY#y-fw)GHhhnvzwAj#59Pte zABrQmXH=^DgP?}s51zB+?z{ozS zR2h{0&iFE;ALFjR?>0bvI-q^}*NFGo9Ql&62g)7BN%A*be&l+uNdd;t9CxnbKc*@H znU<^aDvRQm77UaBG>i@zrTOhKQ|p7xhKiy57DjA*o5^>^{UI|AL1tDZI^z~cML4ltaaV2 z{fnrxZ1wA)k6vFpQP*T!mgX(ss1v+ir#uR-)I5=_%^$9~UtOr2Xzwa(>GUgXwckI! z+^9az^JA{F&8nUa2G!}(?AX6@l@ht`l>cqbOlP%D>}Zp-v8JJT+s&*+WPK|Y% zt#SW!>gu>zv(M{Pe zBR#dZeM&S#1SXx%IwJRLRlBmByo4rIrj4#jS>aNmUgXy@?N<0-26x$iCEs%eq%XHkT5Mb^f!2ih3#wva!p{;H{Ue*f|V6{Xom z(%v&0W3Uzb5@+#Dgred|KHYUJ^GT@3gc*KP)IxGt%{@Hi@># z($%LFT`js-E7cFObxiBVzo~BJbuL96tkE2ojLMfPepG)~uCp0sgPjhBCHu|w?HOrx zz8$lf3{-V%AgaZsj@YTWV{)4h(O)5T0k^%il25|O*t_=As#$d_6N-w>G5qWokzDOf zUr)^l;r~y_hUOlsT2OX1Z)oGEOf!v5IqY&tJ;t{rZC&^udLp}BoUYv3C{cVy8In%! z@xcRw+j`c>3_M+&+S)_)yJlI!f}$kl)~qdIX06J5i)K1cp#&EN#xjsZpncU@)DZ1oq9VxV`rQ&s| zLqhv#o1~KqeH66TsB~i2Nc*_d!k5@4h!v7M!ilj9?U|}Eby^j#Bre7?yF9YLw$yi? z<}cwm-2v;@+#OZ#%4X&L-FRHnme^Bnxb#r};d?!8b2vwzESp%oN4c!Qp?Hs$N!q%V z1aAor^@@@m<_E?-w?0x;)qF@;T(m;@D=RmAf_9|$JIz+!LH!AnF^^X8E2id*Xs*q; zg}bT0x^7o5@;{nBHR8{#$#Q9FopMw2Ub&GI60!MaFK7m@4LvCE`wuw zlXR6w<89T|vJI${Bj7} z&|qzvR9>K0@@lopI5tT-&*eqvtbmc?gOZiPcd;`aBUPL0TdA0mB{3ayIz=AWQs4cW zVZv*=6E<<~fU2^xh`eWw!!;Ah-jp-WHR|EM6VfJ!ozriW#THLh4sW=iIE#EGqum|^ zKMMNfHAps{zas9vjjQ@uD@xc}WKhy<-|*?$&0?ouheF|2D|Q*f?~S2Zc?oY^`3KIb6xyeHH-fju(rMV`-@B>z|uqg-rG zl#l2AirDRK@c$Ox$Muc!9G;%g*BGG6u6Q2zK7WAhfZh;Pqj})ATiXeVvi@y2Q`EY6 zK+OvMBkO{+mAqeSrRSrR^}$XWkElm^(-eKH%9Xurp0e@62jOnM*L~HIlU*jo1W<2P zcw?68Y}v=y&$(7frQRuEsphClo{qRc z-3D7?uC!WG#?Py1Aexz^Q_4H%7wSR2?rE`MEA_Kv5zzB?Xy~GNN{b|`-3A1I4Vvk7 zSk{?;Gj5G7MD?V$N5bu*=4g-X!0-p!!{P;+!~AIdNb`=o4;2q8aL&W#@fpoXox%~Z z>aPB7>ERJf7Dtu^J=L(LDup|}ueS!J z&Ey?~{5hC1J}5KuUDSiTHi}tQ`;?=s*JbC0E5j%G4)fzi%3U7D_|cInrje>HmziU& zd0Z*hnF3yDc8gkRKe4N_uhmJ5s|qL9ZPSI>&!ip`%GC<*@2R4Yd)j&M>e*aHUaedy zah#XlaES{&>;F)kD^WVNj8!?V0X~OSZAx@8n{uW^7V0AXpDKWvu1h16X1QQ5vBK=F&7lWcbL4t501^ZF^1^E2Ys+ZL&6 zYPW)C_mA$KJv>6By)Hhf+0UP^pJ4u#cdFuZ`R|ec97m|vV%gY=~qUD|ryWObBh&lIe2cVyc3ae_ChDE(m?Xhx-`)l#w1TInhmYiHd3Jt|~2$kCWvoq$BkSfo(OX zM7y-F+3M^Yb;paJ!@r0hs2goxlKNPXqQ>4^Q_LYd;oYSV1zg3CngV5Y@U^&q z^zQ7r5iPX$#I>3`{8IgBi#YF}%Bb?6xm}w1nJrL{6kpK>bw9tQX{q4@43}gBN`5O| zH+7Zo!ffOxkMV(TLgGDU%lB|^#dor7QT?oGo8VP+MWM?+9$KwS^XjkL%E`<6V(e8o zv+Q-%+3Y0K=?uioQNMFdRzLPD&gdAHmHk?xFP|veYw9og#jOfE<<0Xu5q83Li!z4! zBf-UFRuxq5i4QEwlSkxegP$5Q+}CAE5u01m_)p29l8D;VhMv~=G&MIt-O}wtN}``F zb7yFA?u97NO0y);8Wiza@FIA&&o}X=i097FqW?vK31!Bks{7U4IM?Da(nWcSz&6>X zqFXuTB%z?G?nC+g!jgt#x~KMQsU>_yJ=XnOYFmGN(j9)!3>QLh@zJnr_4#2-$jRVwB9-q=|E+E$@*|(8{LisJHos|GY(&)+ zdFPUIp~;2V`$2&(|68Hex}j`awW+pqp{HrPfk)3~&Jmu=*yHh0`_6A#?y;b}@{u8# z&3!@wusGnh>uK*gf3s*_L=h)V{@7-X7B^l~tgYG~)wXm*U|G>@4^fc^C% zHB*H>(FFL&?nZx;3lOG5{uUR!b`^BeRLWz|u^Ey~+@n@X2B zdzRX1pNf>`XSKJh1{s}-UOGnQe&jS{r?~j$5YLu{qkKM9jPW1Q*w6o|W1}xzh2&M> zG0(N5|6%^@(8bgv?(N5Ew)?W=pg2bu;i2&`xeWA=;rnUernKR_W>Nw83vWr(4i%$JdbAri;O=8bm9;Gr3fm?Z?ZW;PoX}1g%PHMeWPa zc!bvc?X{;#=iS>r!mArc;(plqkjpAhK7X`N33}-N!|oKY%9!Vu*6^?uN!S8Z~XnYmV{d?Ve&o4%smx2{|6mvVe`MP*G zb3M{{-eN+Z`His6@jGC=<#W2h;Q6o)z7$s5op+`-gIug{FsC)oYWQj?tMO*-m2RAb z3XagD(o>|W32<-Okn53YF88P*2i&*t`iO41tP$SuIKinEw(p(BE;m>6WR%ENKk4 zPp>^eY4t_!-s%~`2Q_w)pdrz%oAHHvE4#|=3v#$3{=d#HE_e8e?w4_zR~$RSJJ1^G z)!Vqo{d;4nOL4}DJgsr3J-xZnbloz!afD-OT`%;x<|&uf{1kqw+vW18@vZA& zv%;;dW0>n6{Kn-n-za?GvXyIebD-azA&!4NpIJV5JTe||Q#K8D9@?0|JJdK7&1w42 z-p|z1bjEt9F^yeU-wq$E6YzG{%@CRz`nc?C-s&1+`RclXJtw-voOQk^7%jNtGKDK} zn~dB&d>xSNtmYW!Z1Vt@0(%RWRJzjn7U!jK zuiz5zrgJ*eTSUoAH?Dn%>sQMVQCAb+>0I-9et2_7CaAfRwVF=aT&HG4y`p ze;nV&75vss%Z1;K$DDUrZnz9}Om_)Flbi~<-36ZnAGvkTd+}}2Ofu9}W><>tSZ2Gp znkEVt8C&wanjN^G@dvxy{ExN3#x?0#Uh@sqqiGXoVbd~x-{$?ogQmyM?$+zhmsy4L zA1Fsy&YjDDFF3?;I6I+omm};Ck=UklS!Amf}vxIP+PU88(7TjBWSHUXID5sNXs&f{*&?Ubi*j;GcD>lgbb^WUVOF#{(Vm7IFx3jQ$D3!&VS?$qAC z-)R-OCDdcBU>Y}r*IO`|dFIra);RZKW1VN%ZaeL>ToD+|{dh}FubE?J4&7}DavZT% zS!*3V%sNtI+K6wMxZF;rh5Y&E7ecP}i!k3YQD~x_h3%OL{uAzR?s0*L@ey97e>*L9 z{BoLXTP0j>xz7J!Udvr+hC!%#1?5;SIfmF)S}l&>mS{S~?29d?RPGe>ME*3(GeN5D zKjB_BUbul42yQUD`BB^^t~tIKRy2aSw}x+^~*w zw6jOsg4x-Y9W>i~f$3#l$=zV_=l8MB7p%9B7CN&J1UeMQuVIezCUQSheG z?`SFbK*k9cp|kwuObWMz`++Is|A8(G637I>Dn}QA*tVSSY>np5v#etlTQ;J;)&vr0 zTjL0F^sucaldXTDQ*&L?cuGoF5)yP^_)hlI z{7-C0ejyF!Pr^c8KPH9qf;$SQ@Yd5${7CjYzn$I2dtuwey>H#k>12(@TdXta16w<` z#=g%nob7A(q<`2t;yda{%*-`NFBki2IAi@Y=Dnc}jae_g~vH&J7!%nPkmIrM8}QvOSS) zaO`y4B`xj$A&y;%zuQHezwMK_FC3w~Gi-YvA;)+c#N#ROLM~$7GAlX1&^zvWin-s} z;oPhCVlG%njuK8-Z&RQ{wzD+RzLza<6gpm!HTF`JV4sH#_EDVi_WRuZjs?7-?0ViA z@`*PU1#oZSshlm$LB@%*9nIjzlK0#NYIAnQ8bMrxkMJydY~h<*XCu zxn09av@^^&+eJLY_8PUa52nG6A;g`%#ww}8u?szMbY$8%x^uQWE^*hh!+36_GcTU@ z=l(`hI0VmO^vqbifa60eIRB7&ocpXBXQkcD)Z4o;(KZuKw1=Ts`wJTDctH}0Gdq#4 zbEF}Y;~!?6<1nmQ$sNmX=cbc!Ts zM&qtb47Q`+%pN+6$suk`l_QUNVYf3q?Mv}#`w*nIpQR0sK{S{hM#ht4>?_*94#0o1 z!OUhhfwP6(!c`Gh?n?5GJA&@xq@hVnGgjbVSc^6?V`&0&ldWT3JF=O*4sRyZehF{4 zA492j6Y_LCrNh}*!2htTnEUKMoYSm<8&8ICr;vJX0=>#Pg@!W^F@tyE zv#2ZMLL5vV_8T+Y@qv*$g!qH~I&N*hg$_D=XqiJxyRfiO0zQru*iM?5B=#qunazkC?eRT(IgYhk(Fw;qYGLE( zc%mX{bOITT4iX-I#uhU#*(T0flE|qb$2o-haURj@9Cy@?k)ls<^I12VfzOj`Si>H} zMUFT4gCh>(RDbtIe9O#kAX zqbZCL^<@O;BdWoP^fTT{F5n03S^U_Mf)6=*;eoJTv79+>|t2*7(6H%CdYFw2k=-ihX* z<>)&dhs9(N?!wN%LmV%0SI2nl;TVj*I8MTS#qr3SrSvgn=rH6*1vrePFy7=Ioc#f3 z6iMgop>CYHbOK|iPnkZ*15ZSY&`6}FgRn0dhP$)t@kmD*?&CO#LmVeiwxbN~W;db) zGK8kmo^&PZL!)tTQpU*O-uQI#jMI($;!Gx1P7Lk9+@X7L6D`6{s5NpyyQl}!5eeqA z6LFv;6NfpDVXor_N@Ka`7<(E0NjA`Cx`f_9i|Ir>hej~n2xW>$Gp8qIIAf`t6AAmg zKriEBT8~)N4)M@dSo0f+Lrv^bEOIo%xnCipBNcsR}|)8%*w{eV^=Aw7)-llSNhOOb(Hgt=@O4rJZ2H~S|tvTx8=@;Ah$J;Ys1%TOgf zi67Iyn32?vc}41(Qo!pMsbl6)XPiR2VG-SlT2l=jhh$_sTEM2F`|J=@#JVGv^~5}O z1TwK1=qK5X4g-q@z^Vv)(q}k>E@9?F{F12;Q%$+dPwLG4O%?bDFp>u`Z$ZmpO%>UL zRk?73_C8#Mg*EkSk~hosT-8uCx|=(6jh69l-oWeVOa9&sRjp93VxE zoO1Cl+6sN6o2ZRuP`Hwl%t6aoHTuB*jcja39KsI4O7;>CCb7su3ejtN2Q5S!Q3&o& ze_#t;#Vn&Onb)w#Z=?#=EMo$Q1@MVP_vmzLpiihP5|W{482bX9g7fMiZz$Uvi(pMI zNkF-z7+t0h(0EwW1^1*caV=fQ%%HK%HNfWvDQ4!80u0wh;t{kZIzd;{Wcrf|P!t)3 zR{d|E%MoG6z(e{?xHDUbW5^=>U41ULqOPOcZD+djs8IC!<<+7?!fzaa*<)$C7Q>opweVBtYBH4-|{n(R4;k zH!`bf8|FN*FuO<^^9NDmccc<~(;zgIPNnFoc=S&={Z(=XafvgU1~<#UWjBD1?7?l=RNRmB!W~H|_M#`zPxKdBfQ85tU!ivy zAIQxy#Lmnm@8R5+u>sZ{2zPQ{qXJq_C(-uw2RViki5EHoXE%b*cVQpkIjkM8Cadra z8iEt(ca)FTq7^t6@$oBqj)|h}V1L=nXmXkf1tot%)`6y8L`z8l{XjcWS9*smK!L0o zZG?T6vqx}y_9>oDobfVp0MDeYaS|l!(Q zJ;_Hj1NQlZ&Vs6yN+3sA7BGJX=e~*iu$g!XiN~wRLp+ua$6<&AHR}!0KxP1W!^DxTIFHPMQ!N4Yy^g|&oi3-7$ZwiXx}iR7 z3GnC%=+R3&fi>doWE|d2D)3ag8wa3P=mp9_eehzM3OYWKi6+fV2Xc||BTMloG8y+I z%g}Z59C4^0ok(|rZer2{t!C>`1N#*ZXEpdJ@yAce7JQfb0UKZ81T-1F2Ojmn2k2L9 zr2Uu#VqjX5Z44JqbB%Pxkz_2|L{8Bx!qT>M8Tpqs5(!$!>QNc&u{WEB_mdEOpBx6( z#Nd_SB@}@9BOHX<;*0bhQ0`}3sgoi@O?RoB_8Mws|9>g@K)9VnL83^5IufPm*CaF9)I*4oyUWaKmJY+GX7Ky z`@GGBkV!a=w8az1ALtjbF_yfe|IkEILm!iws14zv|KQAVu({v4M^TtTjv+C}0yw#Aitm;G=?DM(5Bfl1vBF zArRGU@+X=MIaI;mpH+1j>okm z6X(&t@nulUF6bh9g%eQ{?D_^agHP}St_#Tk{FMaa@x&ixl3u72IS!aRQD=G->Te|Q z=nmU}RluP`1QdeI2e(=YO0fa&K!G?E>cvUi2?_8$x)#?H8{Co$jD=(oCO{6{shPKpNJJM}f9I0~D*ter%$iaP}+sAJhqWl!^A>@zjRjfp4)v z&2=VAa3vslh9E2_p6ECkL@Buq)iM@p&|6^YP|(dhwg&LA0W(_T8gd%kUL^iPpW_v1 z80MlXv>fVM3I0Y$VG6#}iA={uL<-sFhP_}%>&P@(PEzS`I)Z$sW#IN#5--faK35SJ zh-H7+$$z+!_P`&g9(Xh#m0*NM;v3O_Fa9|zgVxKcjcBYzTK zLWwvDeL~l8Z{&_2(q*_2@IhoQ#4;HF3ksXS+R?ux2??MZSwaIzIn9DhfXfvw9Zh-kV z`UdN$1oZb5?6n>K0BcTRYf%w!b10cfpObtlr3=Vah(b?@h6u+)EU%C#+&~sGB2t1` zx){HMoE!n2*e}SUB)pFvhG<|+z&TZtNPL&Agvwe4t~3Z->k@hvw8M=aAcv5Gv;`+3 z#6#fc6=?}<-o*q^hC$E)JVjCXPxK#piaVnKd=0X+f>gmi=Kwxpd=|18<~QgDks@ER zjc%Y$z@$rL9qJ0q(gGtUfH(L?x_~O20=MRe8|Y2IydyY{pXfLqOfC2U9giVTuo>{t zLuUNLmSI0o$9<$dwUG;S233+=`W2LZ7SuI6bj<7EZ_X!!88Lax_yQ8uP#F)Ru@K2h zv=XY39`d|B@aQgRa5ww~n7o+H1!T>Da97aG$KbcRlCRVN+P)eTS_~Ze{~B3Ira*N8 zrG=W71D)MEv=Uh$(;zSAjr6eIbkL+^(gQg3FB3w2u$^AOH=#bG8mo z2Fyzd7pnJAss^+>(~0CI?05`14Qs`N|G!0IL5r3_wJv770G|wM$8*q5&`dX|8tdpe zKuiF8+yp8Zgs(s>`@ot%i3@5^Cege9%gMFm8VZJr^c*VQAc*B>(vES1{80iv9^g5? zLe`8xm(XXdL^9Cf9au+daUGcreq99kQ5?kw&iFUiKiuylOt(M(9Bf8XDN|GwetXcq@YF97&-Y4YYu?AmWvOgdDs;-p*eUq z{SG-9`#*e2AS<4;<#-aC4jpqnng}`h8`QEB9SYva4EP*@{Y678?~x?n`Z6X4@QDI^ z%AlsL27IcpJL-qm(5q05ouKw?g!B6XJ_g*EO+#v^7k`k!^d3n8&74neATb$$9+3c; zJ^|It3)MpZH4qfUd=q~l3Z!O^5XTitBU@d6T zCiWY+{UX3To|eKSa478pKC_&RN4tURGVmNXi3i{_47#S*z|Ah;&@=H~G!GH@Z#>kr z=Qxe}!X7t+kMYGnpkrFhenZWG`4rNH{(`=$9rV4AU|Kr>T?Mu3%37fQ1j2-M2E;Or zQ9|Xeq(;07?LfI$jN0S9^c3J@0acw1r{Uvw>`%z^PvF$d;4??TteJoG>x&;{HZs_-p37V5-X zICmFZ0Qqx*{e%^uN9Twyav|I4GSJKtVCYgb3G#;_9Pn=vK~CmFPX30eSR>%m4b=A~?MO$F z=hOkSj?=JKB5?B_F4qNuJ_kDf6k9@`l<;%RjXEB z_gZ^*H|ozNUV@6XGyIP{Fnke6%_MbKpVfXu z)@ZCvz}zwky~QrnpT{8gLA4dI@H9g+bjz{YRQUw#GZekwF-#Kfl9!;$v8Gi5a}X1* zgKu^Kj@hNgBMQf%npJBSWX=VsY4=GdL2n3f$5CKH2jZup=7KI)0%zWhe)0fvW;ZDc zIP)!_w=j=+8#T>^ocS%Hwmo8KGZ0Teor>PhK#cD}AJ7bazzW#MsVz_!NzK&RaKJuF%@zWI9e1SF%_Nhb#o-Xx8 zA3*!Ofm(T9?E`GI9{8=XT!{($I;p4J5WV?A`3ZRG589K6+Wp9zk0BQY5kJ?kGEs^6 zX|I(5a}2|b=RA%6$i|B$o z!sg%Vb@D*C0+{_8Ci6A0aChwz?9)x_3(Voc1nm>lT)dqU*4Y{(I$j6Pyo}!B1$0p5 zz#OxrGTDJXZ5q7lxRwfg&qJ+jEbl=7^CW!z0(!qk)q$9uT+*6pJ0Ql@7A4g9$9rYq6?3O-MTWXc+YHhgI9P_fjfH_{ngh~NT;sih9r=fb# z&`j%$m5NhX9~~~o>zLyuWV^juC!FyOXtqXv^C7>Tm1@F1X$&w2*6^?f_lSB(b7LMe z7xt+SKl%z<4dqytOeDX{ka~P#(FoUCg(%|c#g4c#vTg}0g_5vn3A!&g6 z1SUJDv=+b|+km{DfPGRiQHqjxt1aQ{lTdrT=zHIhFJc-#8kplECeQ8Vd6-h1SA#&e zW1!P0c|CGwci^{QF%@isdCb>pp_ZV12+Yw4Gq{7mF@qrcDb$~Mb%CKdR^j5&M<2$- zq_4CC^RiA-mb^xL5B=FK$UO|$(1bqVGA1rJrA@F;IxyjfnjPKw24IdJn4IRqhbDmT zb>z1+buDT|Dstv`@;2!qOy5pnUe+J8t*y{TuKFuz_LR>fem;PG;*gK#t9NTb%-}|7 zjZl4$U;;fF_AwwA%|rZ@s)Nx>?t^_g0TccuuLLqkl!~P3SWmnrA4GRug0+fL;LJaf zH^xJkK}@UPLT`Q(6R5|u&cKA(>I;~rWXf5nX=`DpusRa8;SU9HQ470FyVdjC&*6cRTVh%UA_LSN1f~enuk;?<{U3+Ut+~MNt+G(GzBI+ zjQsXAtoRrD=s5LL$ZbbVE|LGjoZ~5JC+yP^9ouT4kXx9l)TqOubu;k6Rm`Do!9FRd zj8nA_fC&SbZOzs($4z9w(TL0Q=mR(bZK`D=4{wyWNS!g;IwySr`&7$Y5I=6zAD}$> zG$x=QU`m}BE|5M3X0L{QUeTJUx!NDF&&#M0GBC_+$nRDM!9III^8vX|`x|=}hGLz; zD@~I}z&`u5hoHx;uumuXDB@=<;-?NX9?aXd>*^-0H)dOZ!%`!VMKe)qKFOGKWXq3Y zb>cAMr=$8ZygXk^(cV+Pz#2nmL{%*2P%)^c?J+BxgZME3Uw7`B<4^la!17Ek7^@>Ssjn~$wvI3Vq?xR7IUaSC>PVu?DlYR^E;3_yAUCzmmHn;=j{g0VX_&nl?bbjQln~d=4-0&PGqw z5Oa=sI%fB4`>=8~1ncBAi1C@wWx;Lx+zI=HwBKN#{_-8t4a|mzXt(5_ff~H9PZjKQ zB3ugloJSw+mZqz%f!V*+o&hF2uU!BpoPcZ<1zj#j9M!4A;OoD`K0Pqcydp0EW;X(} zzk+qYBk~`x4|;I)ye;H?=mSO|CQGp!;3Z&=6F`HVf!PltBM*^22d&nSd#idky1KW~ z@83d9z5>i%gEfX(Qi1HmTH*|3`V-j8P^?ae{Hd_db-6!wEYLn()aQYMuVR&MJmyeI zdLNyPJ~|E){&uK8@1sYphJD^gPZbT!zD7C@MBEIReKxf1fnUCYIC5gneqFvF_SuWs zV{`OWE0EnB+H!R{*3-J7J4nEsBLQm`-LPY4xuGR`Dkrk;9;pS;#(wEL`F_kfR$&fx z4XY0oSeLwrj&@%70_>9~t;Sl2Q=O|#1}3c1enw4u27Ou$VtfXq$phwSfK|P_wU(G+ z@5Q=OFTJOlBM;IF&`0+~2K)*BexLj|>dzG9OgmO!-&dPqcE1{!y)6*eY4p)!QPW}| z$!DlP<%plgSQT#w>w19M7XTAFf!SY`N5MY(wdTleU*Nb4@lycIaZxG{*8;Qm&}aAE zv}a+TI?RTb13|QbF1MrpnAJC-%j>9VBjsDbgzsW@@4bVGG#Dp{+ts zbr&XtyZ>dMtLj&} zk!m+kI-vE!y6h2D%wf_J)UxKNz29SIBx4SB7j`bx$J$p8R(B_1y|Wlr?cVkT)ix{^Vd+UZ(mzc0@Fh1L&#N!y}tZm!-w>Q|K&z#7?&&tTI+& zpTHTcd%X`nqcL;+NNuN8U?wqKYolI6&pQT)yNPT^C7loXeZYkE)n5=l4`V0L8F?Nm zj~SSq_Bjdrv_j5Y11q+c52OCP4*OJs<|y4h`?a3vd5`LI!o^tCxC`F99(GdI(a4#X zP=8)P{FI=lnvPwF3VPltSg|{<#ev=&&~1R3M2qNOasjl#LqO}`;3PN$IBaG^M`@2_hUV+CG4{X znJ6AT?+X0YMLG%Fya3-kr9KGzEP{O$tgS4U51^;&A?=cWz#KOgbN088D=&l3r!jxS ziXMEu3DyI?Qd7}W%|`sht97u?EU6z>M!b-FBCU7;j4k!TVn0&1a_i~LHs!2mkW{KO0kaEMEw;p z*%fn+Q&?LWDr5a#nt-*hGw7*Wqw1|eev8D<8N^Q+y0Ql_ecFlm836lK0uwGqO=J9Q zMt(D@W6=LxK}{Qm-2o-?6lto&T^&!rKHFfQSlvE8c*idI(9@_tmk~d`fjRbI&fZ)b zt8RvU`T!v(%UwZ}_#jH1j+|Krn@^T6NKSdA^aXmV`sk@XMMrc&EeFjv5I@n#Z~w@h z!&hM+JM!DhKyF?wR{I$BrzPso3D6vZ9CrfolZu|VmF55@Tq6I06|cvopQNAV_Lxa5 z*T#b871UnrjmJ)ixyWyKfaV%C0h~?OW}~7RwQsPt@`&0~@B3Z5+~5}ZpHjyWcW08(Z8`aiG7He@wCHa_A6wqHu8s<4L=N;mod|O z4r^c8>QCBetq=UDMEwT4M#jiZ)Mv1c_$GSZ&B&J)*k>Ftdyza{8YWf2j|O2U?+*06 ziKu+@u!`9jJmzA3;heM+_UWPy!o=hZW+$W7ASP#aEuQUl2=sNcBG{em3Y0Pn7fu;rmNi`1R6%xR2lhISf zsnfKr*dy{d=Ik}7ng^vk>~|iIY3fz1$EKp5-K7mf&wEhbidD3>(p+TXTR^dQV2;~U zJqkqHSMCJNfwzj6_F;ZNgl* z1}$C2-W?8r|=hPh16F12RYM(Je+_v zhA4F;R*mk%zKi>@J~tE=`3C!U7k~A3?L3mMX10xF*#{ z9`ayU(01)7ZJOlL21~=WF5vSaDTr0QW?1L!h}v_Pb^<&aursE;Gy(lznzUT|L;67* zC;g%|#o9-yv{t={9Yt3VEmcwsD&#e7thPb>O?wZ!qK8PYXpc%iX^%)Hh>&E=92;mG zWS91jlqb2QP0~Zq<(sh2XWCwAGj=Hdq&1f|Y7%-KWRIL?YH*SLTiPRmsd_${~=4sm{tVv7jwHDx6K`#}Q z25DyODsQZXv}d)`+FHb=8?v{;S?_AkgXVBpbOLBCm1?wKrJJzw4k;Z|qetQEZ)nBR zTIYtUD`9)Lpoi{(KcgW?oIHSsC_K;h5S>snTX9#;eFpqd$ps| zChWnU2b#k{^BzP*P#UG3fYw)m?pSF8UW@U()<^0J+6}drB}to)efqy6hAN<)dfEcq zZLTy$n~x}23Hi53-)pB~g$ik!6oZ|QEum3lMQJ2<62GObfz0nnuW2v9-b1AOwHKvy z?3@j0Ye4e^WUm5G^^g(zg1-s)xd2zJ(sqFMC1|ZqdJBHkQ)&&%KaSTx4A%}zuWGA7 zZ<_QHblMMAZ4I6ik=X*;CeS<&Z&&e(ie}p9kZdXLz7jOQ#}4(w_?Zm}gOD40Z4j4H zpy`%|X}=*dR)O~Wu+3Z2qp)gocy|mY5?GPYE@-#3UnGmRNxB=n^~2p?h5yWeM}MLn z!(RS;=^af&#!Q1Y+u>CoJvEOsL^}fC`C1wZPk9m+?WRqanrQQ2b9&?-h@JxNAYRk3 zU1|aO`$Mm0r2*P< zsfV@*(YHcM!aYpd9{BrZXtM&ZzHn+-iGxmiK#zm9pP{Wo@Vcw;l1iyJJhHWvDJ4qx zLbE-zo4E5K=?QHc=zodWSq^U2BK!QH;Wbg3SIYyRLBw;swiA~75!&7fE)GKbr==Gl zC3b(IN=6}q8X+sS(`xWKi5sAG2s+p z+TIPVABHtAf|DXxB!Jj)Ne%F@;WZjnh~8_UcLc{C{JsU8d;uNe%E@8))}I=(DSK9LF!P4c5jWU7EH}QnbId z8u(BFba?@ObXdyJ_QUQ6aMmGc>~C;!4U(0?Ck;{)WQ`d3iU!$BrTZXzXT;{ikgh$h zY6>nA5y58dtX2(O=4-XudEDVo+zG2aINBoW9>jAGLznk~t9w8x6BO;p)&Z#{IPZws z_MmnK|NRq^9RmMH;p?X$?KRLW)^cH~^YEj;A^Ran@ds!g$5mHw6zSS)iq|0}B8DvB zGYs98LXw-HcOE`)9FiT8GV#*^X(cUND~H^-B!hMqG>_@rHw2F@K)QojzhxJpm`lMi?lMGri42^>A*EQ!iD=J2Og07Aq}c`)v?a9G3}t37}>NO&K&*Xe9(%mEhF}o(pm30%VCIWJx#bg%?z- z;hP#XEQ2>Q=tV;hNw`M}&Po9{$)J>o2zNoFvMxL0=uYI2W{{!@_{>1Qj|N>6=mo)L z8SGPldO?d_#+@z!dtC*u*^tJIyVpQw8T9OsJ|48{fk*1I8Sd5;c4`RulR#U+VbH17 zA`6E>GmOZUz^fUD6Tipfu1ScLczAa-{KyHaR-NN4$bJVjd^tD+*V-z?~C(nsKcPp8>Ckr3T>j4$#a5zj5#Z1(6}c z;&qU_6k08W>^F6~Dr{qdpF1J96K7jtWgEQG27fm~yBc(-fj2}Ic+J9*3c9i2)dIVO zL9rT#55Li?uH)ww&?e1WxNANlw;XiCsE-C5PS8z(W+{6^@Yx7Q7I-Dic<^a~Z9=+d z1`tI7WV#^uRCS%+gst+xAGKbi^JxZ$X6VzT=MTnF{oA}|fM$}eof=$Kqw`q<%0AE{ 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�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⪚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 literal 0 HcmV?d00001