mirror of
https://github.com/nickshanks/ResKnife.git
synced 2024-12-21 11:29:31 +00:00
Update files changed since 2008.
This commit is contained in:
parent
716fddbfe4
commit
9187840237
@ -29,7 +29,7 @@ With thanks to: For:
|
||||
|
||||
// compile options
|
||||
#if TARGET_API_MAC_CARBON
|
||||
#define USE_NIBS 0 // toggle this
|
||||
#define USE_NIBS 1 // toggle this
|
||||
#else
|
||||
#define USE_NIBS 0 // leave this set to zero
|
||||
#endif
|
||||
|
297
Carbon/Resources/ResKnife.nib/classes.nib
generated
297
Carbon/Resources/ResKnife.nib/classes.nib
generated
@ -1,295 +1,4 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{CLASS = IBCarbonBevelButton; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{CLASS = IBCarbonButton; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{
|
||||
CLASS = IBCarbonChasingArrows;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
carbonBounds = id;
|
||||
command = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
enabled = id;
|
||||
hidden = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleRect = id;
|
||||
};
|
||||
SUPERCLASS = IBCarbonControl;
|
||||
},
|
||||
{CLASS = IBCarbonCheckBox; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{
|
||||
CLASS = IBCarbonClockDate;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
carbonBounds = id;
|
||||
clockType = id;
|
||||
command = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
enabled = id;
|
||||
hidden = id;
|
||||
isEditable = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
isLive = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleRect = id;
|
||||
};
|
||||
SUPERCLASS = IBCarbonControl;
|
||||
},
|
||||
{
|
||||
CLASS = IBCarbonControl;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
carbonBounds = id;
|
||||
command = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
enabled = id;
|
||||
hidden = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleRect = id;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
CLASS = IBCarbonDBListView;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = IBCarbonDataBrowser;
|
||||
},
|
||||
{CLASS = IBCarbonDataBrowser; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{CLASS = IBCarbonEditText; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{
|
||||
CLASS = IBCarbonGroupBox;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
autoToggle = id;
|
||||
carbonBounds = id;
|
||||
command = id;
|
||||
contentRect = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
enabled = id;
|
||||
groupBoxTitleType = id;
|
||||
groupBoxType = id;
|
||||
hasVariableWidth = id;
|
||||
hidden = id;
|
||||
isAutoToggle = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
isPrimary = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
primary = id;
|
||||
selectedItem = id;
|
||||
supportsInsideOutSelection = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleJustification = id;
|
||||
titleRect = id;
|
||||
variableWidth = id;
|
||||
};
|
||||
SUPERCLASS = IBCarbonControl;
|
||||
},
|
||||
{
|
||||
CLASS = IBCarbonIcon;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
carbonBounds = id;
|
||||
command = id;
|
||||
contentResID = id;
|
||||
contentType = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
dontTrack = id;
|
||||
enabled = id;
|
||||
hidden = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleRect = id;
|
||||
};
|
||||
SUPERCLASS = IBCarbonControl;
|
||||
},
|
||||
{CLASS = IBCarbonImageWell; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{
|
||||
CLASS = IBCarbonLittleArrows;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
carbonBounds = id;
|
||||
command = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
enabled = id;
|
||||
hidden = id;
|
||||
increment = id;
|
||||
initialValue = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
maximumValue = id;
|
||||
minimumValue = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleRect = id;
|
||||
};
|
||||
SUPERCLASS = IBCarbonControl;
|
||||
},
|
||||
{CLASS = IBCarbonMenu; LANGUAGE = ObjC; SUPERCLASS = NSMenu; },
|
||||
{CLASS = IBCarbonMenuItem; LANGUAGE = ObjC; SUPERCLASS = NSMenuItem; },
|
||||
{CLASS = IBCarbonPopupButton; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{CLASS = IBCarbonRadioGroup; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{CLASS = IBCarbonRelevanceBar; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{CLASS = IBCarbonRootControl; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{CLASS = IBCarbonRoundButton; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{CLASS = IBCarbonScrollBar; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{
|
||||
CLASS = IBCarbonSeparator;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
carbonBounds = id;
|
||||
command = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
enabled = id;
|
||||
hidden = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleRect = id;
|
||||
};
|
||||
SUPERCLASS = IBCarbonControl;
|
||||
},
|
||||
{
|
||||
CLASS = IBCarbonSlider;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
carbonBounds = id;
|
||||
command = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
enabled = id;
|
||||
hidden = id;
|
||||
initialValue = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
isLive = id;
|
||||
maximumValue = id;
|
||||
minimumValue = id;
|
||||
numTickMarks = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
orientation = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleRect = id;
|
||||
};
|
||||
SUPERCLASS = IBCarbonControl;
|
||||
},
|
||||
{CLASS = IBCarbonStaticText; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{CLASS = IBCarbonTab; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; },
|
||||
{
|
||||
CLASS = IBCarbonTriangle;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
autoToggle = id;
|
||||
carbonBounds = id;
|
||||
collapsed = id;
|
||||
command = id;
|
||||
controlHandle = id;
|
||||
controlID = id;
|
||||
controlMaximum = id;
|
||||
controlMinimum = id;
|
||||
controlName = id;
|
||||
controlSignature = id;
|
||||
controlSize = id;
|
||||
controlTitle = id;
|
||||
controlValue = id;
|
||||
drawTitle = id;
|
||||
enabled = id;
|
||||
hidden = id;
|
||||
isCollapsed = id;
|
||||
isEnabled = id;
|
||||
isHidden = id;
|
||||
objectNameForInspectorTitle = id;
|
||||
orientation = id;
|
||||
targetFrameworkName = id;
|
||||
targetFrameworkSupportsConnections = id;
|
||||
titleRect = id;
|
||||
};
|
||||
SUPERCLASS = IBCarbonControl;
|
||||
},
|
||||
{CLASS = IBCarbonUserPane; LANGUAGE = ObjC; SUPERCLASS = IBCarbonControl; }
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
IBClasses = ();
|
||||
IBVersion = 1;
|
||||
}
|
||||
|
21
Carbon/Resources/ResKnife.nib/info.nib
generated
21
Carbon/Resources/ResKnife.nib/info.nib
generated
@ -1,11 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
|
||||
<plist version="0.9">
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>70 160 588 603 0 73 1152 775 </string>
|
||||
<key>IBMainMenuLocation</key>
|
||||
<string>157 692 404 44 0 72 1024 674 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>29</key>
|
||||
<string>126 846 404 44 0 0 1600 1002 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>313.0</string>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>29</integer>
|
||||
<integer>297</integer>
|
||||
<integer>166</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>6L60</string>
|
||||
<key>IBUserGuides</key>
|
||||
<dict>
|
||||
<key>About Box</key>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<object name="rootObject" class="NSCustomObject" id="1">
|
||||
<string name="customClass">NSApplication</string>
|
||||
</object>
|
||||
<array count="120" name="allObjects">
|
||||
<array count="125" name="allObjects">
|
||||
<object class="IBCarbonMenu" id="29">
|
||||
<string name="title">ResKnife</string>
|
||||
<array count="7" name="items">
|
||||
@ -302,14 +302,14 @@
|
||||
<reference idRef="157"/>
|
||||
<reference idRef="159"/>
|
||||
<object class="IBCarbonWindow" id="166">
|
||||
<string name="windowRect">53 8 413 488 </string>
|
||||
<string name="windowRect">454 84 814 564 </string>
|
||||
<string name="title">New Resource File</string>
|
||||
<object name="rootControl" class="IBCarbonRootControl" id="167">
|
||||
<string name="bounds">0 0 360 480 </string>
|
||||
<array count="3" name="subviews">
|
||||
<object class="IBCarbonDBListView" id="188">
|
||||
<string name="bounds">21 0 360 480 </string>
|
||||
<ostype name="controlSignature">brow</ostype>
|
||||
<ostype name="controlSignature">ResK</ostype>
|
||||
<boolean name="showFocusRing">FALSE</boolean>
|
||||
<array count="4" name="listViewColumns">
|
||||
<object class="IBCarbonDBListViewColumn">
|
||||
@ -346,20 +346,23 @@
|
||||
</array>
|
||||
</object>
|
||||
<object class="IBCarbonStaticText" id="295">
|
||||
<string name="bounds">2 5 18 240 </string>
|
||||
<ostype name="controlSignature">left</ostype>
|
||||
<string name="title">left hand side message</string>
|
||||
<string name="bounds">4 5 15 233 </string>
|
||||
<ostype name="controlSignature">ResK</ostype>
|
||||
<int name="controlID">1</int>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Number of resources</string>
|
||||
</object>
|
||||
<object class="IBCarbonStaticText" id="296">
|
||||
<string name="bounds">2 240 18 475 </string>
|
||||
<ostype name="controlSignature">left</ostype>
|
||||
<string name="title">right hand side message</string>
|
||||
<string name="bounds">4 241 15 474 </string>
|
||||
<ostype name="controlSignature">ResK</ostype>
|
||||
<int name="controlID">2</int>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">File size</string>
|
||||
<int name="justification">-1</int>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<boolean name="liveResize">TRUE</boolean>
|
||||
<int name="carbonWindowClass">6</int>
|
||||
<int name="themeBrush">0</int>
|
||||
</object>
|
||||
<reference idRef="167"/>
|
||||
<reference idRef="168"/>
|
||||
@ -395,20 +398,8 @@
|
||||
<object class="IBCarbonTab" id="216">
|
||||
<string name="bounds">8 10 248 390 </string>
|
||||
<array count="2" name="subviews">
|
||||
<object class="IBCarbonUserPane" id="217">
|
||||
<string name="bounds">53 0 261 380 </string>
|
||||
<array count="1" name="subviews">
|
||||
<object class="IBCarbonStaticText" id="275">
|
||||
<string name="bounds">86 46 102 122 </string>
|
||||
<string name="title">Pane 1</string>
|
||||
</object>
|
||||
</array>
|
||||
<ostype name="controlSignature">pane</ostype>
|
||||
<int name="controlID">1</int>
|
||||
<int name="featureBits">2</int>
|
||||
</object>
|
||||
<object class="IBCarbonUserPane" id="218">
|
||||
<string name="bounds">53 0 261 380 </string>
|
||||
<string name="bounds">38 10 248 390 </string>
|
||||
<array count="1" name="subviews">
|
||||
<object class="IBCarbonStaticText" id="276">
|
||||
<string name="bounds">100 209 116 285 </string>
|
||||
@ -419,6 +410,18 @@
|
||||
<int name="controlID">2</int>
|
||||
<int name="featureBits">2</int>
|
||||
</object>
|
||||
<object class="IBCarbonUserPane" id="217">
|
||||
<string name="bounds">38 10 248 390 </string>
|
||||
<array count="1" name="subviews">
|
||||
<object class="IBCarbonStaticText" id="275">
|
||||
<string name="bounds">86 46 102 122 </string>
|
||||
<string name="title">Pane 1</string>
|
||||
</object>
|
||||
</array>
|
||||
<ostype name="controlSignature">pane</ostype>
|
||||
<int name="controlID">1</int>
|
||||
<int name="featureBits">2</int>
|
||||
</object>
|
||||
</array>
|
||||
<ostype name="controlSignature">tabs</ostype>
|
||||
<int name="controlID">1</int>
|
||||
@ -460,7 +463,6 @@
|
||||
<boolean name="isResizable">FALSE</boolean>
|
||||
<boolean name="hasVerticalZoom">FALSE</boolean>
|
||||
<int name="carbonWindowClass">11</int>
|
||||
<int name="themeBrush">0</int>
|
||||
</object>
|
||||
<reference idRef="214"/>
|
||||
<reference idRef="215"/>
|
||||
@ -493,7 +495,7 @@
|
||||
<int name="initialValue">50</int>
|
||||
</object>
|
||||
<object class="IBCarbonSlider" id="234">
|
||||
<string name="bounds">33 213 53 299 </string>
|
||||
<string name="bounds">33 213 57 299 </string>
|
||||
<boolean name="isLive">TRUE</boolean>
|
||||
<int name="numTickMarks">5</int>
|
||||
<int name="orientation">1</int>
|
||||
@ -502,7 +504,7 @@
|
||||
<int name="maximumValue">5</int>
|
||||
</object>
|
||||
<object class="IBCarbonLittleArrows" id="235">
|
||||
<string name="bounds">24 341 48 357 </string>
|
||||
<string name="bounds">24 341 46 354 </string>
|
||||
<int name="initialValue">3</int>
|
||||
<int name="minimumValue">1</int>
|
||||
<int name="maximumValue">5</int>
|
||||
@ -513,10 +515,10 @@
|
||||
<int name="orientation">1</int>
|
||||
</object>
|
||||
<object class="IBCarbonSeparator" id="237">
|
||||
<string name="bounds">156 18 161 384 </string>
|
||||
<string name="bounds">156 18 157 384 </string>
|
||||
</object>
|
||||
<object class="IBCarbonSeparator" id="238">
|
||||
<string name="bounds">9 144 142 149 </string>
|
||||
<string name="bounds">9 144 142 145 </string>
|
||||
</object>
|
||||
<object class="IBCarbonRadioGroup" id="239">
|
||||
<string name="bounds">93 17 134 139 </string>
|
||||
@ -558,6 +560,7 @@
|
||||
<string name="title">BevelMenu</string>
|
||||
<array count="3" name="items">
|
||||
<object class="IBCarbonMenuItem" id="290">
|
||||
<boolean name="checked">TRUE</boolean>
|
||||
<string name="title">Item1</string>
|
||||
</object>
|
||||
<object class="IBCarbonMenuItem" id="291">
|
||||
@ -568,6 +571,7 @@
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int name="selectedItem">1</int>
|
||||
</object>
|
||||
<object class="IBCarbonBevelButton" id="247">
|
||||
<string name="bounds">177 181 214 240 </string>
|
||||
@ -616,8 +620,6 @@
|
||||
<boolean name="hasHorizontalZoom">FALSE</boolean>
|
||||
<boolean name="isResizable">FALSE</boolean>
|
||||
<boolean name="hasVerticalZoom">FALSE</boolean>
|
||||
<int name="carbonWindowClass">6</int>
|
||||
<int name="themeBrush">0</int>
|
||||
</object>
|
||||
<reference idRef="228"/>
|
||||
<reference idRef="230"/>
|
||||
@ -697,8 +699,6 @@
|
||||
<boolean name="hasHorizontalZoom">FALSE</boolean>
|
||||
<boolean name="isResizable">FALSE</boolean>
|
||||
<boolean name="hasVerticalZoom">FALSE</boolean>
|
||||
<int name="carbonWindowClass">6</int>
|
||||
<int name="themeBrush">0</int>
|
||||
</object>
|
||||
<reference idRef="255"/>
|
||||
<reference idRef="256"/>
|
||||
@ -731,55 +731,68 @@
|
||||
<reference idRef="295"/>
|
||||
<reference idRef="296"/>
|
||||
<object class="IBCarbonWindow" id="297">
|
||||
<string name="windowRect">96 300 326 534 </string>
|
||||
<string name="windowRect">120 772 296 972 </string>
|
||||
<string name="title">Inspector</string>
|
||||
<object name="rootControl" class="IBCarbonRootControl" id="298">
|
||||
<string name="bounds">0 0 230 234 </string>
|
||||
<string name="bounds">0 0 176 200 </string>
|
||||
<array count="5" name="subviews">
|
||||
<object class="IBCarbonGroupBox" id="299">
|
||||
<string name="bounds">59 16 214 220 </string>
|
||||
<array count="1" name="subviews">
|
||||
<object class="IBCarbonRadioGroup" id="300">
|
||||
<string name="bounds">80 22 204 214 </string>
|
||||
<int name="numRows">6</int>
|
||||
<array count="6" name="radioTitles">
|
||||
<array count="1">
|
||||
<string>Changed</string>
|
||||
</array>
|
||||
<array count="1">
|
||||
<string>Radio2</string>
|
||||
</array>
|
||||
<array count="1">
|
||||
<string>Radio</string>
|
||||
</array>
|
||||
<array count="1">
|
||||
<string>Radio</string>
|
||||
</array>
|
||||
<array count="1">
|
||||
<string>Radio</string>
|
||||
</array>
|
||||
<array count="1">
|
||||
<string>SysHeap</string>
|
||||
</array>
|
||||
</array>
|
||||
<string name="bounds">75 5 171 195 </string>
|
||||
<array count="6" name="subviews">
|
||||
<object class="IBCarbonCheckBox" id="305">
|
||||
<string name="bounds">101 21 115 96 </string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Changed</string>
|
||||
</object>
|
||||
<object class="IBCarbonCheckBox" id="306">
|
||||
<string name="bounds">121 21 135 96 </string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Preload</string>
|
||||
</object>
|
||||
<object class="IBCarbonCheckBox" id="307">
|
||||
<string name="bounds">141 21 155 96 </string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Protected</string>
|
||||
</object>
|
||||
<object class="IBCarbonCheckBox" id="308">
|
||||
<string name="bounds">101 104 115 179 </string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Locked</string>
|
||||
</object>
|
||||
<object class="IBCarbonCheckBox" id="309">
|
||||
<string name="bounds">121 104 135 179 </string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Purgable</string>
|
||||
</object>
|
||||
<object class="IBCarbonCheckBox" id="310">
|
||||
<string name="bounds">141 104 155 179 </string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Sysheap</string>
|
||||
</object>
|
||||
</array>
|
||||
<string name="title">Box</string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Attributes</string>
|
||||
</object>
|
||||
<object class="IBCarbonImageWell" id="301">
|
||||
<string name="bounds">10 12 54 56 </string>
|
||||
<string name="bounds">5 5 65 65 </string>
|
||||
</object>
|
||||
<object class="IBCarbonStaticText" id="302">
|
||||
<string name="bounds">10 67 45 219 </string>
|
||||
<string name="bounds">5 73 41 195 </string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">The title of the resource goes here</string>
|
||||
</object>
|
||||
<object class="IBCarbonStaticText" id="303">
|
||||
<string name="bounds">49 67 65 106 </string>
|
||||
<string name="bounds">49 73 65 195 </string>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">Type</string>
|
||||
<int name="justification">-2</int>
|
||||
</object>
|
||||
<object class="IBCarbonStaticText" id="304">
|
||||
<string name="bounds">50 200 66 222 </string>
|
||||
<string name="bounds">49 73 65 195 </string>
|
||||
<ostype name="controlSignature">ResK</ostype>
|
||||
<boolean name="small">TRUE</boolean>
|
||||
<string name="title">ID</string>
|
||||
<int name="justification">-1</int>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
@ -787,17 +800,21 @@
|
||||
<boolean name="isResizable">FALSE</boolean>
|
||||
<boolean name="hasVerticalZoom">FALSE</boolean>
|
||||
<int name="carbonWindowClass">5</int>
|
||||
<int name="themeBrush">0</int>
|
||||
</object>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="299"/>
|
||||
<reference idRef="300"/>
|
||||
<reference idRef="301"/>
|
||||
<reference idRef="302"/>
|
||||
<reference idRef="303"/>
|
||||
<reference idRef="304"/>
|
||||
<reference idRef="305"/>
|
||||
<reference idRef="306"/>
|
||||
<reference idRef="307"/>
|
||||
<reference idRef="308"/>
|
||||
<reference idRef="309"/>
|
||||
<reference idRef="310"/>
|
||||
</array>
|
||||
<array count="120" name="allParents">
|
||||
<array count="125" name="allParents">
|
||||
<reference idRef="1"/>
|
||||
<reference idRef="29"/>
|
||||
<reference idRef="131"/>
|
||||
@ -913,11 +930,16 @@
|
||||
<reference idRef="1"/>
|
||||
<reference idRef="297"/>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="299"/>
|
||||
<reference idRef="299"/>
|
||||
<reference idRef="299"/>
|
||||
<reference idRef="299"/>
|
||||
<reference idRef="299"/>
|
||||
<reference idRef="299"/>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="298"/>
|
||||
<reference idRef="298"/>
|
||||
</array>
|
||||
<dictionary count="49" name="nameTable">
|
||||
<string>About Box</string>
|
||||
@ -1019,5 +1041,5 @@
|
||||
<string>Preferences</string>
|
||||
<reference idRef="254"/>
|
||||
</dictionary>
|
||||
<unsigned_int name="nextObjectID">305</unsigned_int>
|
||||
<unsigned_int name="nextObjectID">311</unsigned_int>
|
||||
</object>
|
||||
|
@ -31,7 +31,7 @@
|
||||
|
||||
/*!
|
||||
@method awakeFromNib
|
||||
@updated 2003-10-24 NGS: moved icon caching into method called by timer (to speed up app launch time)
|
||||
@change 2003-10-24 NGS: moved icon caching into method called by timer (to speed up app launch time)
|
||||
*/
|
||||
|
||||
- (void)awakeFromNib
|
||||
@ -65,7 +65,6 @@
|
||||
- (void)precacheIcons:(NSTimer *)timer
|
||||
{
|
||||
// pre-cache a number of common icons (ignores return value, relies on iconForResourceType: to do the actual caching)
|
||||
[self iconForResourceType:@" "];
|
||||
[self iconForResourceType:@"CODE"];
|
||||
[self iconForResourceType:@"icns"];
|
||||
[self iconForResourceType:@"PICT"];
|
||||
@ -290,8 +289,8 @@
|
||||
}
|
||||
|
||||
// if we still don't have an icon, try to get the generic one - this is what icon represented forks get
|
||||
// if(!icon) icon = [NSImage imageNamed:@"NSMysteryDocument"];
|
||||
if(!icon) icon = [[NSWorkspace sharedWorkspace] iconForFileType:@"' '"];
|
||||
if(!icon)
|
||||
icon = [[NSWorkspace sharedWorkspace] iconForFileType:@"????"];
|
||||
|
||||
// save the newly retreived icon in the cache
|
||||
if(icon && resourceType)
|
||||
|
@ -8,8 +8,8 @@
|
||||
/*!
|
||||
@method controlTextDidChange:
|
||||
@abstract Handles updating of the 'Create' button when valid values are present in the sheet's fields.
|
||||
@updated 2003-08-01 UK: Changed to use data source's resourceOfType instead of directly messing with the resource list's enumerator.
|
||||
@updated 2003-08-01 UK: Removed ID > 0 check -- negative IDs are allowed as well.<br/><small>Note from Nick: IIRC this was there as a workaround for another bug which prohibited negative IDs from being used. Not sure if that got fixed though :)</small>
|
||||
@change 2003-08-01 UK: Changed to use data source's resourceOfType instead of directly messing with the resource list's enumerator.
|
||||
@change 2003-08-01 UK: Removed ID > 0 check -- negative IDs are allowed as well.<br/><small>Note from Nick: IIRC this was there as a workaround for another bug which prohibited negative IDs from being used. Not sure if that got fixed though :)</small>
|
||||
@description Someone changed the control ID edit field. Check whether this is a unique ID and appropriately enable the "create" button.</p><p>Check "notification" against being nil, which is how we call it when we need to explicitly update the enabled state of the "create" button.
|
||||
*/
|
||||
|
||||
@ -32,8 +32,8 @@
|
||||
/*!
|
||||
@method showCreateResourceSheet:
|
||||
@abstract Shows the sheet allowing the user to define the properties of a new resource.
|
||||
@updated 2003-08-01 UK: Made it "fake" a popup selection so type field and popup match.
|
||||
@updated 2003-08-01 UK: Made it suggest an unused resource ID.
|
||||
@change 2003-08-01 UK: Made it "fake" a popup selection so type field and popup match.
|
||||
@change 2003-08-01 UK: Made it suggest an unused resource ID.
|
||||
*/
|
||||
|
||||
- (void)showCreateResourceSheet:(ResourceDocument *)sheetDoc
|
||||
@ -77,7 +77,7 @@
|
||||
/*!
|
||||
@method typePopupSelection:
|
||||
@abstract Updates the edit text field when the type pop-up selection is changed.
|
||||
@updated 2003-08-01 UK: Commented, made it update state of "create" button.
|
||||
@change 2003-08-01 UK: Commented, made it update state of "create" button.
|
||||
*/
|
||||
|
||||
- (IBAction)typePopupSelection:(id)sender
|
||||
|
@ -36,9 +36,9 @@
|
||||
|
||||
/*!
|
||||
@method updateInfoWindow
|
||||
@updated 2003-11-06 NGS: Fixed creator/type handling.
|
||||
@updated 2003-10-26 NGS: Now asks app delegate for icon instead of NSWorkspace.
|
||||
@updated 2003-10-26 NGS: Improved document name & icon display.
|
||||
@change 2003-11-06 NS: Fixed creator/type handling.
|
||||
@change 2003-10-26 NS: Now asks app delegate for icon instead of NSWorkspace.
|
||||
@change 2003-10-26 NS: Improved document name & icon display.
|
||||
*/
|
||||
|
||||
- (void)updateInfoWindow
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
/*!
|
||||
@function compareResourcesAscending
|
||||
@updated 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare
|
||||
@change 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare
|
||||
*/
|
||||
|
||||
int compareResourcesAscending(Resource *r1, Resource *r2, void *context)
|
||||
@ -71,7 +71,7 @@ int compareResourcesAscending(Resource *r1, Resource *r2, void *context)
|
||||
|
||||
/*!
|
||||
@function compareResourcesDescending
|
||||
@updated 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare
|
||||
@change 2003-10-25 NGS: now uses KVC methods to obtain the strings to compare
|
||||
*/
|
||||
|
||||
int compareResourcesDescending(Resource *r1, Resource *r2, void *context)
|
||||
@ -93,9 +93,9 @@ int compareResourcesDescending(Resource *r1, Resource *r2, void *context)
|
||||
|
||||
/*!
|
||||
@method outlineView:willDisplayCell:forTableColumn:item:
|
||||
@updated 2003-10-25 NGS: Moved functionality of NameFormatter into this method, removed NameFormatter class.
|
||||
@updated 2003-10-24 NGS: Swapped row colours so first row is white (as per 10.3), conditionalised drawing line background colours to system versions < 10.3, since in 10.3 it is handled by the nib file.
|
||||
@updated 2003-10-24 NGS: Added iconForResourceType method to app delegate instead of interrogating the cache here.
|
||||
@change 2003-10-25 NGS: Moved functionality of NameFormatter into this method, removed NameFormatter class.
|
||||
@change 2003-10-24 NGS: Swapped row colours so first row is white (as per 10.3), conditionalised drawing line background colours to system versions < 10.3, since in 10.3 it is handled by the nib file.
|
||||
@change 2003-10-24 NGS: Added iconForResourceType method to app delegate instead of interrogating the cache here.
|
||||
@pending remove setting of the cell formatter when that capability is in interface builder
|
||||
*/
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
||||
@method +defaultRegistry
|
||||
@author Uli Kusterer
|
||||
@created 2003-07-31
|
||||
@updated 2003-10-28 NGS: Changed method name from +mainRegistry (so it more closly matchs +defaultCenter) and moved global var inside method, making it a static.
|
||||
@change 2003-10-28 NS: Changed method name from +mainRegistry (so it more closly matchs +defaultCenter) and moved global var inside method, making it a static.
|
||||
@description Returns the default plugin registry of this application, instantiating it first if there is none yet. As soon as this is instantiated, the plugins are loaded.
|
||||
*/
|
||||
+ (RKEditorRegistry *)defaultRegistry
|
||||
@ -74,7 +74,7 @@
|
||||
@abstract (Re)loads our list of plugins. You can use this as an action for a menu item, if you want.
|
||||
@author Uli Kusterer
|
||||
@created 2003-07-31
|
||||
@updated 2003-10-28 NGS: Updated to look for more sophisticated RKSupportedTypes key in addition to (the now deprecated) RKEditedTypes.
|
||||
@change 2003-10-28 NGS: Updated to look for more sophisticated RKSupportedTypes key in addition to (the now deprecated) RKEditedTypes.
|
||||
@pending Use NSSearchPathForDirectoriesInDomains() or equivalent to get folder paths instead of hard coding them.
|
||||
@pending Currently, Cocoa classes can't be unloaded, which means we're
|
||||
not leaking the NSBundles we load here. However, if this one
|
||||
@ -149,8 +149,8 @@
|
||||
{
|
||||
// get values for type entry
|
||||
NSString *name = [typeEntry objectForKey:@"RKTypeName"];
|
||||
NSString *role = [typeEntry objectForKey:@"RKTypeRole"];
|
||||
BOOL isDefault = [(NSString *)[typeEntry objectForKey:@"IsResKnifeDefaultForType"] boolValue];
|
||||
// NSString *role = [typeEntry objectForKey:@"RKTypeRole"];
|
||||
// BOOL isDefault = [(NSString *)[typeEntry objectForKey:@"IsResKnifeDefaultForType"] boolValue];
|
||||
|
||||
// register them
|
||||
[typeRegistry setObject:pluginClass forKey:name]; // bug: very primative, doesn't use extra data
|
||||
|
25
Cocoa/Classes/RKSupportResourceRegistry.mm
Normal file
25
Cocoa/Classes/RKSupportResourceRegistry.mm
Normal file
@ -0,0 +1,25 @@
|
||||
#import "RKSupportResourceRegistry.h"
|
||||
|
||||
@implementation RKSupportResourceRegistry
|
||||
|
||||
+ (void)scanForSupportResources
|
||||
{
|
||||
// TODO: Instead of hard-coding sysPath we should use some FindFolder-like API!
|
||||
[RKSupportResourceRegistry scanForSupportResourcesInFolder:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Support Resources"]];
|
||||
[RKSupportResourceRegistry scanForSupportResourcesInFolder:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/ResKnife/Support Resources/"]];
|
||||
[RKSupportResourceRegistry scanForSupportResourcesInFolder:[@"/" stringByAppendingPathComponent:@"Library/Application Support/ResKnife/Support Resources/"]];
|
||||
}
|
||||
|
||||
+ (void)scanForSupportResourcesInFolder:(NSString *)path
|
||||
{
|
||||
// NSLog(@"Looking for resources in %@", path);
|
||||
NSEnumerator *enumerator = [[[NSFileManager defaultManager] directoryContentsAtPath:path] objectEnumerator];
|
||||
while(NSString *name = [enumerator nextObject])
|
||||
{
|
||||
// NSLog(@"Examining %@", name);
|
||||
if([[name pathExtension] isEqualToString:@"rsrc"])
|
||||
[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfFile:[path stringByAppendingPathComponent:name] display:YES];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
@ -8,6 +8,7 @@
|
||||
@description The Resource class fully complies with key-value coding, with the keys @"name", @"type", @"resID", @"attributes", @"data", @"dirty" and @"representedFork" available.
|
||||
*/
|
||||
|
||||
@class ResourceDocument;
|
||||
@interface Resource : NSObject <NSCopying, NSCoding, ResKnifeResourceProtocol>
|
||||
{
|
||||
@private
|
||||
|
@ -177,7 +177,7 @@ NSString *RKResourcePboardType = @"RKResourcePboardType";
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:ResourceDidChangeNotification object:self];
|
||||
}
|
||||
|
||||
- (NSDocument *)document
|
||||
- (ResourceDocument *)document
|
||||
{
|
||||
return [Resource documentForResource:self];
|
||||
}
|
||||
|
247
Cocoa/Classes/ResourceDataSource.mm
Normal file
247
Cocoa/Classes/ResourceDataSource.mm
Normal file
@ -0,0 +1,247 @@
|
||||
#import "ResourceDataSource.h"
|
||||
#import "ResourceDocument.h"
|
||||
#import "Resource.h"
|
||||
#import <limits.h>
|
||||
|
||||
NSString *DataSourceWillAddResourceNotification = @"DataSourceWillAddResource";
|
||||
NSString *DataSourceDidAddResourceNotification = @"DataSourceDidAddResource";
|
||||
NSString *DataSourceWillRemoveResourceNotification = @"DataSourceWillRemoveResource";
|
||||
NSString *DataSourceDidRemoveResourceNotification = @"DataSourceDidRemoveResource";
|
||||
|
||||
extern NSString *RKResourcePboardType;
|
||||
|
||||
@implementation ResourceDataSource
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resourceDidChange:) name:ResourceDidChangeNotification object:nil];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (NSWindow *)window
|
||||
{
|
||||
return window;
|
||||
}
|
||||
|
||||
- (NSArray *)resources
|
||||
{
|
||||
return resources;
|
||||
}
|
||||
|
||||
- (void)setResources:(NSMutableArray *)newResources
|
||||
{
|
||||
id old = resources;
|
||||
resources = [newResources retain];
|
||||
[old release];
|
||||
[outlineView reloadData];
|
||||
}
|
||||
|
||||
- (void)addResource:(Resource *)resource
|
||||
{
|
||||
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:self, @"DataSource", resource, @"Resource", nil];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:DataSourceWillAddResourceNotification object:dictionary];
|
||||
|
||||
// it seems very inefficient to reload the entire data source when just adding/removing one item
|
||||
// for large resource files, the data source gets reloaded hundreds of times upon load
|
||||
[resources addObject:resource];
|
||||
[outlineView reloadData];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:DataSourceDidAddResourceNotification object:dictionary];
|
||||
[[document undoManager] registerUndoWithTarget:self selector:@selector(removeResource:) object:resource]; // undo action name set by calling function
|
||||
}
|
||||
|
||||
- (void)removeResource:(Resource *)resource
|
||||
{
|
||||
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:self, @"DataSource", resource, @"Resource", nil];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:DataSourceWillRemoveResourceNotification object:dictionary];
|
||||
|
||||
// see comments in addResource: about inefficiency of reloadData
|
||||
[resources removeObjectIdenticalTo:resource];
|
||||
[outlineView reloadData];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:DataSourceDidRemoveResourceNotification object:dictionary];
|
||||
[[document undoManager] registerUndoWithTarget:self selector:@selector(addResource:) object:resource]; // NB: I hope the undo manager retains the resource, because it just got deleted :) - undo action name set by calling function
|
||||
}
|
||||
|
||||
- (void)resourceDidChange:(NSNotification *)notification
|
||||
{
|
||||
// reload the data for the changed resource
|
||||
[outlineView reloadItem:[notification object]];
|
||||
}
|
||||
|
||||
/* Data source protocol implementation */
|
||||
|
||||
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item
|
||||
{
|
||||
#pragma unused(outlineView, item)
|
||||
return [resources objectAtIndex:index];
|
||||
}
|
||||
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
|
||||
{
|
||||
#pragma unused(outlineView, item)
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
|
||||
{
|
||||
#pragma unused(outlineView, item)
|
||||
return [resources count];
|
||||
}
|
||||
|
||||
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
|
||||
{
|
||||
#pragma unused(outlineView)
|
||||
return [item valueForKey:[tableColumn identifier]];
|
||||
}
|
||||
|
||||
- (void)outlineView:(NSOutlineView *)outlineView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
|
||||
{
|
||||
#pragma unused(outlineView)
|
||||
NSString *identifier = [tableColumn identifier];
|
||||
if([identifier isEqualToString:@"resID"])
|
||||
[item setValue:[NSNumber numberWithInt:[object intValue]] forKey:identifier];
|
||||
else [item setValue:object forKey:identifier];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
/* ACCESSORS */
|
||||
|
||||
- (Resource *)resourceOfType:(NSString *)type andID:(NSNumber *)resID
|
||||
{
|
||||
Resource *resource;
|
||||
NSEnumerator *enumerator = [resources objectEnumerator];
|
||||
while(resource = [enumerator nextObject])
|
||||
{
|
||||
if(resID && [[resource resID] isEqualToNumber:resID] && type && [[resource type] isEqualToString:type])
|
||||
return resource;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (Resource *)resourceOfType:(NSString *)type withName:(NSString *)name
|
||||
{
|
||||
Resource *resource;
|
||||
NSEnumerator *enumerator = [resources objectEnumerator];
|
||||
while(resource = [enumerator nextObject])
|
||||
{
|
||||
if([[resource name] isEqualToString:name] && [[resource type] isEqualToString:type])
|
||||
return resource;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSArray *)allResourcesOfType:(NSString *)type
|
||||
{
|
||||
Resource *resource;
|
||||
NSMutableArray *array = [NSMutableArray array];
|
||||
NSEnumerator *enumerator = [resources objectEnumerator];
|
||||
while(resource = [enumerator nextObject])
|
||||
{
|
||||
if([[resource type] isEqualToString:type])
|
||||
[array addObject:resource];
|
||||
}
|
||||
return [NSArray arrayWithArray:array];
|
||||
}
|
||||
|
||||
/*!
|
||||
@method allResourceIDsOfType:
|
||||
@discussion Returns an NSArray full of NSNumber* objects containing the IDs of all resources of specified type. Used by uniqueIDForType:.
|
||||
@change 2003-08-01 UK Created based on allResourcesOfType:
|
||||
*/
|
||||
|
||||
- (NSArray*)allResourceIDsOfType:(NSString *)type
|
||||
{
|
||||
if(!type || [type isEqualToString:@""])
|
||||
return [NSArray array];
|
||||
|
||||
Resource *resource;
|
||||
NSMutableArray *array = [NSMutableArray array];
|
||||
NSEnumerator *enumerator = [resources objectEnumerator];
|
||||
while(resource = [enumerator nextObject])
|
||||
{
|
||||
if([[resource type] isEqualToString:type])
|
||||
[array addObject:[resource resID]];
|
||||
}
|
||||
return [NSArray arrayWithArray:array];
|
||||
}
|
||||
|
||||
/*!
|
||||
@method uniqueIDForType:
|
||||
@discussion Tries to return an unused resource ID for a new resource of specified type. If all IDs are used up (can't really happen, because the resource manager can't take more than 2727 resources per file without crashing, but just in theory...), this will return 128 no matter whether it's used or not.
|
||||
@change 2003-08-01 UK Created.
|
||||
@change 2003-10-21 NS Changed to obtain initial ID from -[resource defaultIDForType:], so we can vary it on a pre-resource-type basis (like Resourcerer can)
|
||||
*/
|
||||
|
||||
- (NSNumber *)uniqueIDForType:(NSString *)type
|
||||
{
|
||||
short theID = [[self defaultIDForType:type] shortValue];
|
||||
NSArray *array = [self allResourceIDsOfType:type];
|
||||
|
||||
if([array count] <= USHRT_MAX)
|
||||
{
|
||||
while([array containsObject:[NSNumber numberWithShort:theID]])
|
||||
theID++;
|
||||
}
|
||||
|
||||
return [NSNumber numberWithShort: theID];
|
||||
}
|
||||
|
||||
/*!
|
||||
@method defaultIDForType:
|
||||
@pending Method should look for resources specifying what the initial ID is for this resource type (e.g. 'vers' resources start at 0)
|
||||
*/
|
||||
|
||||
- (NSNumber *)defaultIDForType:(NSString *)type
|
||||
{
|
||||
short defaultID = 128;
|
||||
return [NSNumber numberWithShort:defaultID];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
/*!
|
||||
@method outlineView:writeItems:toPasteboard:
|
||||
@abstract Called at the start of a drag event.
|
||||
*/
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView writeItems:(NSArray *)items toPasteboard:(NSPasteboard *)pb
|
||||
{
|
||||
[pb declareTypes:[NSArray arrayWithObject:RKResourcePboardType] owner:self];
|
||||
[pb setData:[NSArchiver archivedDataWithRootObject:items] forType:RKResourcePboardType];
|
||||
return YES;
|
||||
}
|
||||
|
||||
/*!
|
||||
@method outlineView:validateDrop:proposedItem:proposedChildIndex:
|
||||
@abstract Called when the user is hovering with a drop over our outline view.
|
||||
*/
|
||||
- (NSDragOperation)outlineView:(NSOutlineView *)outlineView validateDrop:(id <NSDraggingInfo>)info proposedItem:(id)item proposedChildIndex:(int)childIndex
|
||||
{
|
||||
if([info draggingSource] != outlineView)
|
||||
{
|
||||
[outlineView setDropItem:nil dropChildIndex:NSOutlineViewDropOnItemIndex];
|
||||
return NSDragOperationCopy;
|
||||
}
|
||||
else return NSDragOperationNone;
|
||||
}
|
||||
|
||||
/*!
|
||||
@method outlineView:acceptDrop:item:childIndex:
|
||||
@abstract Called when the user drops something on our outline view.
|
||||
*/
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id <NSDraggingInfo>)info item:(id)targetItem childIndex:(int)childIndex
|
||||
{
|
||||
NSPasteboard *pb = [info draggingPasteboard];
|
||||
if([pb availableTypeFromArray:[NSArray arrayWithObject:RKResourcePboardType]])
|
||||
[document pasteResources:[NSUnarchiver unarchiveObjectWithData:[pb dataForType:RKResourcePboardType]]];
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
1226
Cocoa/Classes/ResourceDocument.mm
Normal file
1226
Cocoa/Classes/ResourceDocument.mm
Normal file
File diff suppressed because it is too large
Load Diff
@ -486,7 +486,7 @@ static NSRange draggedRange;
|
||||
@method selectionRangeForProposedRange:granularity:
|
||||
@abstract Puts insertion pointer between bytes during drag operation
|
||||
@author Nicholas Shanks
|
||||
@updated 2003-11-10 NGS: Changed algorithm.
|
||||
@change 2003-11-10 NS: Changed algorithm.
|
||||
*/
|
||||
|
||||
- (unsigned int)_insertionGlyphIndexForDrag:(id <NSDraggingInfo>)sender
|
||||
|
11
Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.h
Normal file
11
Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.h
Normal file
@ -0,0 +1,11 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface NSData (ResKnifeHexRepresentationExtensions)
|
||||
- (NSString *)hexRepresentation;
|
||||
- (NSString *)asciiRepresentation;
|
||||
- (NSString *)nonLossyAsciiRepresentation;
|
||||
@end
|
||||
|
||||
@interface NSString (ResKnifeHexConversionExtensions)
|
||||
- (NSData *)dataFromHex;
|
||||
@end
|
95
Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.m
Normal file
95
Cocoa/Plug-Ins/Hex Editor/NSData-HexRepresentation.m
Normal file
@ -0,0 +1,95 @@
|
||||
#import "NSData-HexRepresentation.h"
|
||||
|
||||
@implementation NSData (ResKnifeHexRepresentationExtensions)
|
||||
|
||||
- (NSString *)hexRepresentation
|
||||
{
|
||||
int currentByte = 0, dataLength = [self length];
|
||||
char buffer[dataLength*3 -1], hex1, hex2;
|
||||
char *bytes = (char *) [self bytes];
|
||||
|
||||
// return empty string if no data
|
||||
if(dataLength == 0) return [NSString string];
|
||||
|
||||
// calculate bytes
|
||||
for(currentByte = 0; currentByte < dataLength; currentByte++)
|
||||
{
|
||||
hex1 = bytes[currentByte];
|
||||
hex2 = bytes[currentByte];
|
||||
hex1 >>= 4;
|
||||
hex1 &= 0x0F;
|
||||
hex2 &= 0x0F;
|
||||
hex1 += (hex1 < 10)? 0x30 : 0x37;
|
||||
hex2 += (hex2 < 10)? 0x30 : 0x37;
|
||||
|
||||
buffer[currentByte*3] = hex1;
|
||||
buffer[currentByte*3 +1] = hex2;
|
||||
buffer[currentByte*3 +2] = 0x20;
|
||||
}
|
||||
|
||||
return [NSString stringWithCString:buffer length:(dataLength*3 -1)];
|
||||
}
|
||||
|
||||
- (NSString *)asciiRepresentation
|
||||
{
|
||||
int currentByte = 0, dataLength = [self length];
|
||||
char buffer[dataLength];
|
||||
char *bytes = (char *) [self bytes];
|
||||
|
||||
// calculate bytes
|
||||
for(currentByte = 0; currentByte < dataLength; currentByte++)
|
||||
{
|
||||
if(bytes[currentByte] >= 0x20 && bytes[currentByte] < 0x7F)
|
||||
buffer[currentByte] = bytes[currentByte];
|
||||
else buffer[currentByte] = 0x2E; // full stop
|
||||
}
|
||||
|
||||
return [NSString stringWithCString:buffer length:dataLength];
|
||||
}
|
||||
|
||||
- (NSString *)nonLossyAsciiRepresentation
|
||||
{
|
||||
int currentByte = 0, dataLength = [self length];
|
||||
char buffer[dataLength];
|
||||
char *bytes = (char *) [self bytes];
|
||||
|
||||
// calculate bytes
|
||||
for(currentByte = 0; currentByte < dataLength; currentByte++)
|
||||
{
|
||||
if(bytes[currentByte] > 0x20) // doesn't check for < 0x7F
|
||||
buffer[currentByte] = bytes[currentByte];
|
||||
// else if(bytes[currentByte] == 0x20)
|
||||
// buffer[currentByte] = 0xCA; // nbsp to stop maligned wraps - doesn't work :(
|
||||
else buffer[currentByte] = 0x2E; // full stop
|
||||
}
|
||||
|
||||
return [NSString stringWithCString:buffer length:dataLength];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation NSString (ResKnifeHexConversionExtensions)
|
||||
|
||||
- (NSData *)dataFromHex
|
||||
{
|
||||
unsigned long actualBytesEncoded = 0;
|
||||
unsigned long maxBytesEncoded = floor([self cStringLength] / 2.0);
|
||||
const char *bytes = [self cString];
|
||||
char *buffer = (char *) malloc(maxBytesEncoded);
|
||||
signed char hex1, hex2;
|
||||
int i;
|
||||
|
||||
for(i = 0; i < maxBytesEncoded * 2;)
|
||||
{
|
||||
hex1 = bytes[i];
|
||||
hex2 = bytes[i+1];
|
||||
hex1 -= (hex1 < 'A')? 0x30 : ((hex1 < 'a')? 0x37 : 0x57); // 0-9 < A-Z < a-z
|
||||
hex2 -= (hex2 < 'A')? 0x30 : ((hex2 < 'a')? 0x37 : 0x57);
|
||||
if(hex1 & 0xF0 || hex2 & 0xF0) { i++; continue; } // invalid character found, move forward one byte and try again
|
||||
buffer[actualBytesEncoded++] = (hex1 << 4) + hex2;
|
||||
i += 2;
|
||||
}
|
||||
return [NSData dataWithBytesNoCopy:buffer length:actualBytesEncoded freeWhenDone:YES];
|
||||
}
|
||||
|
||||
@end
|
@ -6,18 +6,16 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NSString *ResourceWillChangeNotification = @"ResourceWillChangeNotification";
|
||||
NSString *ResourceNameWillChangeNotification = @"ResourceNameWillChangeNotification";
|
||||
NSString *ResourceTypeWillChangeNotification = @"ResourceTypeWillChangeNotification";
|
||||
NSString *ResourceIDWillChangeNotification = @"ResourceIDWillChangeNotification";
|
||||
NSString *ResourceAttributesWillChangeNotification = @"ResourceAttributesWillChangeNotification";
|
||||
NSString *ResourceDataWillChangeNotification = @"ResourceDataWillChangeNotification";
|
||||
NSString *ResourceWillBeSavedNotification = @"ResourceWillBeSavedNotification";
|
||||
NSString *ResourceWillChangeNotification = @"ResourceWillChange";
|
||||
NSString *ResourceNameWillChangeNotification = @"ResourceNameWillChange";
|
||||
NSString *ResourceTypeWillChangeNotification = @"ResourceTypeWillChange";
|
||||
NSString *ResourceIDWillChangeNotification = @"ResourceIDWillChange";
|
||||
NSString *ResourceAttributesWillChangeNotification = @"ResourceAttributesWillChange";
|
||||
NSString *ResourceDataWillChangeNotification = @"ResourceDataWillChange";
|
||||
|
||||
NSString *ResourceNameDidChangeNotification = @"ResourceNameDidChangeNotification";
|
||||
NSString *ResourceTypeDidChangeNotification = @"ResourceTypeDidChangeNotification";
|
||||
NSString *ResourceIDDidChangeNotification = @"ResourceIDDidChangeNotification";
|
||||
NSString *ResourceAttributesDidChangeNotification = @"ResourceAttributesDidChangeNotification";
|
||||
NSString *ResourceDataDidChangeNotification = @"ResourceDataDidChangeNotification";
|
||||
NSString *ResourceDidChangeNotification = @"ResourceDidChangeNotification";
|
||||
NSString *ResourceWasSavedNotification = @"ResourceWasSavedNotification";
|
||||
NSString *ResourceNameDidChangeNotification = @"ResourceNameDidChange";
|
||||
NSString *ResourceTypeDidChangeNotification = @"ResourceTypeDidChange";
|
||||
NSString *ResourceIDDidChangeNotification = @"ResourceIDDidChange";
|
||||
NSString *ResourceAttributesDidChangeNotification = @"ResourceAttributesDidChange";
|
||||
NSString *ResourceDataDidChangeNotification = @"ResourceDataDidChange";
|
||||
NSString *ResourceDidChangeNotification = @"ResourceDidChange";
|
||||
|
@ -1,55 +1,81 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "ResKnifeResourceProtocol.h"
|
||||
|
||||
/* Your plug-in's principal class must implement initWithResource: else it
|
||||
won't be loaded by ResKnife (so neh-neh!), all other methods are optional,
|
||||
and thus declared in ResKnifeInformalPluginProtocol. */
|
||||
/*!
|
||||
@protocol ResKnifePluginProtocol
|
||||
@abstract Your plug-in's principal class must implement initWithResource: or initWithResources:, all other methods are optional, and thus declared in ResKnifeInformalPluginProtocol.
|
||||
*/
|
||||
@protocol ResKnifePluginProtocol
|
||||
|
||||
/*! @method initWithResource:
|
||||
* @abstract Your plug-in is inited with this call. This allows immediate
|
||||
access to the resource you are about to edit, and with this
|
||||
information you can set up different windows, etc.
|
||||
*/
|
||||
- (id)initWithResource:(id <ResKnifeResourceProtocol>)newResource;
|
||||
/*!
|
||||
@method initWithResource:
|
||||
@abstract Your plug-in is inited with this call. This allows immediate access to the resource you are about to edit, and with this information you can set up different windows, etc.
|
||||
*/
|
||||
- (id)initWithResource:(id <ResKnifeResourceProtocol>)inResource;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
/* Optional methods your plugin may implement to provide additional
|
||||
functionality: */
|
||||
|
||||
@interface ResKnifeInformalPluginProtocol
|
||||
|
||||
/*! @method dataForFileExport:
|
||||
@abstract Return the data to be saved to disk when your resource is
|
||||
exported to a file. By default the host application substitutes
|
||||
the raw resource data if you don't implement this. The idea is
|
||||
that this export function is non-lossy, i.e. only override this
|
||||
if there is a format that is a 100% equivalent to your data. */
|
||||
+(NSData*) dataForFileExport: (id <ResKnifeResourceProtocol>)theRes;
|
||||
/*! @method extensionForFileExport:
|
||||
@abstract If you implement dataForFileExport, return a string here that
|
||||
provides the proper file extension for your file. By default the
|
||||
host application substitutes the resource type here. */
|
||||
+(NSString*) extensionForFileExport: (id <ResKnifeResourceProtocol>)theRes;
|
||||
|
||||
/*! @method imageForImageFileExport:
|
||||
@abstract Return the image to be saved to disk when your resource is
|
||||
exported to an image file. If your resource contains image
|
||||
data, this is your opportunity to export it to a well-known
|
||||
image format. This will be a lossy conversion to a TIFF
|
||||
file. */
|
||||
+(NSImage*) imageForImageFileExport: (id <ResKnifeResourceProtocol>)theRes;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
/* If you're implementing a template editor, you should implement this
|
||||
extended protocol instead of the regular plugin protocol: */
|
||||
|
||||
/*!
|
||||
@protocol ResKnifeTemplatePluginProtocol
|
||||
@abstract If you're implementing a template editor, you should implement this extended protocol instead of the regular plugin protocol.
|
||||
*/
|
||||
@protocol ResKnifeTemplatePluginProtocol <ResKnifePluginProtocol>
|
||||
|
||||
- (id)initWithResources:(id <ResKnifeResourceProtocol>)newResource, ...;
|
||||
/*!
|
||||
@method initWithResource:
|
||||
@abstract Your template editor is inited with this call. The first argument is the resource to edit, the second is the TMPL resource that defines the data structure.
|
||||
*/
|
||||
- (id)initWithResources:(id <ResKnifeResourceProtocol>)inResource, ...;
|
||||
|
||||
@end
|
||||
@end
|
||||
|
||||
|
||||
/*!
|
||||
@protocol ResKnifeInformalPluginProtocol
|
||||
@abstract Optional methods your plugin may implement to provide additional functionality.
|
||||
@author Uli Kusterer
|
||||
@change 2005-10-03 NGS: Added UTI, MIME Type and OSType methods, renamed extensionForFileExport: to filenameExtensionForFileExport:
|
||||
*/
|
||||
@interface ResKnifeInformalPluginProtocol
|
||||
|
||||
/*!
|
||||
@method dataForFileExport:
|
||||
@abstract Return the data to be saved to disk when your resource is exported to a flat file. By default the host application uses the raw resource data if you don't implement this. The idea is that this export function is non-lossy, i.e. only override this if there is a format that is a 100% equivalent to your data.
|
||||
*/
|
||||
+ (NSData *)dataForFileExport:(id <ResKnifeResourceProtocol>)resource;
|
||||
|
||||
/* Your plug should implement one of the following four methods.
|
||||
* They are looked for in the order shown below. Only implement one.
|
||||
*/
|
||||
|
||||
/*!
|
||||
@method UTIForFileExport:
|
||||
@abstract Regardless of whether you implement dataForFileExport, you should implement this and return the proper Uniform Type Identifier for your file.
|
||||
*/
|
||||
|
||||
+ (NSString *)UTIForFileExport:(id <ResKnifeResourceProtocol>)resource;
|
||||
|
||||
/*!
|
||||
@method MIMETypeForFileExport:
|
||||
@abstract If you do not know the UTI for your file type, but it has a known MIME Type (e.g. image/svg), you can return that here.
|
||||
*/
|
||||
|
||||
+ (NSString *)MIMETypeForFileExport:(id <ResKnifeResourceProtocol>)resource;
|
||||
|
||||
/*!
|
||||
@method OSTypeForFileExport:
|
||||
@abstract If your data has a classical Macintosh OSType code, you can return that here.
|
||||
*/
|
||||
|
||||
+ (NSString *)OSTypeForFileExport:(id <ResKnifeResourceProtocol>)resource;
|
||||
|
||||
/*!
|
||||
@method filenameExtensionForFileExport:
|
||||
@abstract As a last resort, you can return here the filename extension for your resource type.
|
||||
By default the host application substitutes the resource type if you do not implement this.
|
||||
*/
|
||||
|
||||
+ (NSString *)filenameExtensionForFileExport:(id <ResKnifeResourceProtocol>)resource;
|
||||
|
||||
@end
|
||||
|
@ -21,39 +21,27 @@
|
||||
2003-07-31 UK Added document accessor, commented.
|
||||
========================================================================== */
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
Headers:
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
Protocol:
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
@protocol ResKnifeResourceProtocol
|
||||
|
||||
-(void) touch;
|
||||
-(BOOL) isDirty;
|
||||
- (void)touch;
|
||||
- (BOOL)isDirty;
|
||||
|
||||
-(NSString*) name;
|
||||
-(void) setName: (NSString*)newName;
|
||||
-(NSString*) nameForEditorWindow;
|
||||
- (NSString *)name;
|
||||
- (void)setName:(NSString *)newName;
|
||||
- (NSString *)type;
|
||||
- (void)setType:(NSString *)newType;
|
||||
- (NSNumber *)resID;
|
||||
- (void)setResID:(NSNumber *)newResID;
|
||||
- (NSNumber *)attributes;
|
||||
- (void)setAttributes:(NSNumber *)newAttributes;
|
||||
- (NSNumber *)size;
|
||||
- (NSData *)data;
|
||||
- (void)setData:(NSData *)newData;
|
||||
|
||||
-(NSString*) type;
|
||||
-(void) setType: (NSString*)newType;
|
||||
-(NSNumber*) resID;
|
||||
-(void) setResID: (NSNumber*)newResID;
|
||||
|
||||
-(NSNumber*) attributes;
|
||||
-(void) setAttributes: (NSNumber*)newAttributes;
|
||||
|
||||
-(NSNumber*) size;
|
||||
-(NSData*) data;
|
||||
-(void) setData: (NSData*)newData;
|
||||
|
||||
-(NSDocument*) document; // Owner of this resource. Useful for looking for resources in same file as yours.
|
||||
- (NSString *)defaultWindowTitle;
|
||||
- (NSDocument *)document;
|
||||
|
||||
// These methods are used to retrieve resources other than the one you're editing.
|
||||
// Passing a document of nil will indicate to search in all open documents.
|
||||
@ -61,25 +49,19 @@
|
||||
// All returned objects are auoreleased. Retain if you want to keep them.
|
||||
|
||||
// This method may return an empty array
|
||||
+ (NSArray *)allResourcesOfType:(NSString *)typeValue inDocument:(NSDocument *)document;
|
||||
+ (NSArray *)allResourcesOfType:(NSString *)typeValue inDocument:(NSDocument *)searchDocument;
|
||||
// The next two return the first matching resource found, or nil.
|
||||
+ (id)resourceOfType:(NSString *)typeValue andID:(NSNumber *)resIDValue inDocument:(NSDocument *)document;
|
||||
+ (id)resourceOfType:(NSString *)typeValue withName:(NSString *)nameValue inDocument:(NSDocument *)document;
|
||||
+ (id)resourceOfType:(NSString *)typeValue andID:(NSNumber *)resIDValue inDocument:(NSDocument *)searchDocument;
|
||||
+ (id)resourceOfType:(NSString *)typeValue withName:(NSString *)nameValue inDocument:(NSDocument *)searchDocument;
|
||||
|
||||
@end
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
Resource Notifications:
|
||||
See note in Notifications.m about usage.
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
extern NSString *ResourceWillChangeNotification;
|
||||
extern NSString *ResourceNameWillChangeNotification;
|
||||
extern NSString *ResourceTypeWillChangeNotification;
|
||||
extern NSString *ResourceIDWillChangeNotification;
|
||||
extern NSString *ResourceAttributesWillChangeNotification;
|
||||
extern NSString *ResourceDataWillChangeNotification;
|
||||
extern NSString *ResourceWillBeSavedNotification;
|
||||
|
||||
extern NSString *ResourceNameDidChangeNotification;
|
||||
extern NSString *ResourceTypeDidChangeNotification;
|
||||
@ -87,4 +69,3 @@ extern NSString *ResourceIDDidChangeNotification;
|
||||
extern NSString *ResourceAttributesDidChangeNotification;
|
||||
extern NSString *ResourceDataDidChangeNotification;
|
||||
extern NSString *ResourceDidChangeNotification;
|
||||
extern NSString *ResourceWasSavedNotification;
|
3
External/MoreFilesX/MoreFilesX.c
vendored
3
External/MoreFilesX/MoreFilesX.c
vendored
@ -2133,7 +2133,7 @@ BadParameter:
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#if 0
|
||||
#if COMPILING_ON_JAGUAR_OR_BELOW
|
||||
/* These methods were added in 10.4, and are not used by ResKnife, so we just comment them out to avoid errors */
|
||||
|
||||
OSErr
|
||||
@ -2179,7 +2179,6 @@ PBUnlockRangeSync:
|
||||
|
||||
return ( result );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
|
2
External/MoreFilesX/MoreFilesX.h
vendored
2
External/MoreFilesX/MoreFilesX.h
vendored
File diff suppressed because one or more lines are too long
@ -4,8 +4,10 @@
|
||||
<dict>
|
||||
<key>CanvasColor</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<string>1</string>
|
||||
<key>w</key>
|
||||
<real>1.000000e+00</real>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
<key>ColumnAlign</key>
|
||||
<integer>0</integer>
|
||||
@ -21,10 +23,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>31</integer>
|
||||
<integer>27</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>33</integer>
|
||||
<integer>29</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{319.5, 504}</string>
|
||||
@ -45,7 +47,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>26</integer>
|
||||
<integer>22</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -54,10 +56,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>31</integer>
|
||||
<integer>27</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>32</integer>
|
||||
<integer>28</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{276.3, 504}</string>
|
||||
@ -78,7 +80,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>25</integer>
|
||||
<integer>21</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -87,10 +89,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>22</integer>
|
||||
<integer>18</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>31</integer>
|
||||
<integer>27</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{279, 558}</string>
|
||||
@ -116,10 +118,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>31</integer>
|
||||
<integer>27</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>30</integer>
|
||||
<integer>26</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{233.1, 504}</string>
|
||||
@ -140,7 +142,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>24</integer>
|
||||
<integer>20</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -149,10 +151,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>11</integer>
|
||||
<integer>7</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>29</integer>
|
||||
<integer>25</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{321.577, 432}</string>
|
||||
@ -173,7 +175,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>26</integer>
|
||||
<integer>22</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -182,10 +184,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>11</integer>
|
||||
<integer>7</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>28</integer>
|
||||
<integer>24</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{271.731, 432}</string>
|
||||
@ -206,7 +208,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>25</integer>
|
||||
<integer>21</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -215,10 +217,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>24</integer>
|
||||
<integer>20</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>27</integer>
|
||||
<integer>23</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{250.962, 378}</string>
|
||||
@ -239,7 +241,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>11</integer>
|
||||
<integer>7</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -248,7 +250,7 @@
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>26</integer>
|
||||
<integer>22</integer>
|
||||
<key>Shape</key>
|
||||
<string>HorizontalBrackets</string>
|
||||
<key>Text</key>
|
||||
@ -259,7 +261,8 @@
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
||||
|
||||
\f0\fs24 \cf0 Hex Text View (ASCII)}</string>
|
||||
\f0\fs24 \cf0 ASCII\
|
||||
Text View}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -268,7 +271,7 @@
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>25</integer>
|
||||
<integer>21</integer>
|
||||
<key>Shape</key>
|
||||
<string>HorizontalBrackets</string>
|
||||
<key>Text</key>
|
||||
@ -279,7 +282,8 @@
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
||||
|
||||
\f0\fs24 \cf0 Hex Text View (Hex)}</string>
|
||||
\f0\fs24 \cf0 Hex\
|
||||
Text View}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -288,7 +292,7 @@
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>24</integer>
|
||||
<integer>20</integer>
|
||||
<key>Shape</key>
|
||||
<string>HorizontalBrackets</string>
|
||||
<key>Text</key>
|
||||
@ -299,7 +303,8 @@
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
||||
|
||||
\f0\fs24 \cf0 Hex Text View (Offset)}</string>
|
||||
\f0\fs24 \cf0 Offset\
|
||||
Text View}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -308,10 +313,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>22</integer>
|
||||
<integer>18</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>23</integer>
|
||||
<integer>19</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{297.807, 236.054}</string>
|
||||
@ -332,7 +337,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>9</integer>
|
||||
<integer>5</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -341,7 +346,7 @@
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>22</integer>
|
||||
<integer>18</integer>
|
||||
<key>Shape</key>
|
||||
<string>Cloud</string>
|
||||
<key>Style</key>
|
||||
@ -350,12 +355,14 @@
|
||||
<dict>
|
||||
<key>Color</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<string>1</string>
|
||||
<key>b</key>
|
||||
<real>1.000000e+00</real>
|
||||
<string>1</string>
|
||||
<key>g</key>
|
||||
<real>8.490366e-01</real>
|
||||
<string>0.849037</string>
|
||||
<key>r</key>
|
||||
<real>9.965038e-01</real>
|
||||
<string>0.996504</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
@ -376,14 +383,14 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>11</integer>
|
||||
<integer>7</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>21</integer>
|
||||
<integer>17</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{144, 348.527}</string>
|
||||
<string>{207, 349.809}</string>
|
||||
<string>{144, 347.879}</string>
|
||||
<string>{207, 349.497}</string>
|
||||
</array>
|
||||
<key>Style</key>
|
||||
<dict>
|
||||
@ -400,7 +407,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>17</integer>
|
||||
<integer>13</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -409,14 +416,14 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>17</integer>
|
||||
<integer>13</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>20</integer>
|
||||
<integer>16</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{100.788, 239.348}</string>
|
||||
<string>{99.8262, 297}</string>
|
||||
<string>{100.786, 239.348}</string>
|
||||
<string>{99.8251, 297}</string>
|
||||
</array>
|
||||
<key>Style</key>
|
||||
<dict>
|
||||
@ -433,7 +440,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>18</integer>
|
||||
<integer>14</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -442,10 +449,10 @@
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>18</integer>
|
||||
<integer>14</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>19</integer>
|
||||
<integer>15</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{218.607, 211.5}</string>
|
||||
@ -466,7 +473,7 @@
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>9</integer>
|
||||
<integer>5</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -475,7 +482,7 @@
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>18</integer>
|
||||
<integer>14</integer>
|
||||
<key>Shape</key>
|
||||
<string>Cloud</string>
|
||||
<key>Style</key>
|
||||
@ -484,12 +491,14 @@
|
||||
<dict>
|
||||
<key>Color</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<string>1</string>
|
||||
<key>b</key>
|
||||
<real>1.000000e+00</real>
|
||||
<string>1</string>
|
||||
<key>g</key>
|
||||
<real>9.653430e-01</real>
|
||||
<string>0.965343</string>
|
||||
<key>r</key>
|
||||
<real>7.682484e-01</real>
|
||||
<string>0.768248</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
@ -515,7 +524,7 @@
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>16</integer>
|
||||
<integer>12</integer>
|
||||
<key>Shape</key>
|
||||
<string>RoundRect</string>
|
||||
<key>Style</key>
|
||||
@ -524,12 +533,14 @@
|
||||
<dict>
|
||||
<key>Color</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<string>1</string>
|
||||
<key>b</key>
|
||||
<real>1.000000e+00</real>
|
||||
<string>1</string>
|
||||
<key>g</key>
|
||||
<real>7.482798e-01</real>
|
||||
<string>0.74828</string>
|
||||
<key>r</key>
|
||||
<real>4.663317e-01</real>
|
||||
<string>0.466332</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>shadow</key>
|
||||
@ -537,13 +548,13 @@
|
||||
<key>Color</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<real>5.000000e-01</real>
|
||||
<string>0.5</string>
|
||||
<key>b</key>
|
||||
<real>7.500000e-01</real>
|
||||
<string>0.75</string>
|
||||
<key>g</key>
|
||||
<real>7.500000e-01</real>
|
||||
<string>0.75</string>
|
||||
<key>r</key>
|
||||
<real>7.500000e-01</real>
|
||||
<string>0.75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>stroke</key>
|
||||
@ -559,7 +570,7 @@
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>17</integer>
|
||||
<integer>13</integer>
|
||||
<key>Shape</key>
|
||||
<string>Rectangle</string>
|
||||
<key>Text</key>
|
||||
@ -576,7 +587,7 @@ Sheet}</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>ID</key>
|
||||
<integer>15</integer>
|
||||
<integer>11</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Class</key>
|
||||
@ -584,14 +595,14 @@ Sheet}</string>
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>12</integer>
|
||||
<integer>8</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>14</integer>
|
||||
<integer>10</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{267.14, 239.328}</string>
|
||||
<string>{265.695, 306}</string>
|
||||
<string>{267.145, 239.33}</string>
|
||||
<string>{265.696, 306}</string>
|
||||
</array>
|
||||
<key>Style</key>
|
||||
<dict>
|
||||
@ -608,7 +619,7 @@ Sheet}</string>
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>9</integer>
|
||||
<integer>5</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -617,14 +628,14 @@ Sheet}</string>
|
||||
<key>Head</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>9</integer>
|
||||
<integer>5</integer>
|
||||
</dict>
|
||||
<key>ID</key>
|
||||
<integer>13</integer>
|
||||
<integer>9</integer>
|
||||
<key>Points</key>
|
||||
<array>
|
||||
<string>{266.062, 117}</string>
|
||||
<string>{267.252, 183.589}</string>
|
||||
<string>{267.252, 183.588}</string>
|
||||
</array>
|
||||
<key>Style</key>
|
||||
<dict>
|
||||
@ -641,7 +652,7 @@ Sheet}</string>
|
||||
<key>Tail</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>7</integer>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@ -655,7 +666,7 @@ Sheet}</string>
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>11</integer>
|
||||
<integer>7</integer>
|
||||
<key>Shape</key>
|
||||
<string>Rectangle</string>
|
||||
</dict>
|
||||
@ -665,7 +676,7 @@ Sheet}</string>
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>12</integer>
|
||||
<integer>8</integer>
|
||||
<key>Shape</key>
|
||||
<string>Rectangle</string>
|
||||
<key>Text</key>
|
||||
@ -681,7 +692,7 @@ Sheet}</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>ID</key>
|
||||
<integer>10</integer>
|
||||
<integer>6</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Bounds</key>
|
||||
@ -689,7 +700,7 @@ Sheet}</string>
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>9</integer>
|
||||
<integer>5</integer>
|
||||
<key>Shape</key>
|
||||
<string>Cloud</string>
|
||||
<key>Style</key>
|
||||
@ -698,12 +709,14 @@ Sheet}</string>
|
||||
<dict>
|
||||
<key>Color</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<string>1</string>
|
||||
<key>b</key>
|
||||
<real>1.000000e+00</real>
|
||||
<string>1</string>
|
||||
<key>g</key>
|
||||
<real>9.653430e-01</real>
|
||||
<string>0.965343</string>
|
||||
<key>r</key>
|
||||
<real>7.682484e-01</real>
|
||||
<string>0.768248</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
@ -729,7 +742,7 @@ Sheet}</string>
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>6</integer>
|
||||
<integer>2</integer>
|
||||
<key>Magnets</key>
|
||||
<array>
|
||||
<string>{0, 1}</string>
|
||||
@ -756,7 +769,7 @@ Sheet}</string>
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>7</integer>
|
||||
<integer>3</integer>
|
||||
<key>Shape</key>
|
||||
<string>Rectangle</string>
|
||||
<key>Style</key>
|
||||
@ -765,12 +778,14 @@ Sheet}</string>
|
||||
<dict>
|
||||
<key>Color</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<string>1</string>
|
||||
<key>b</key>
|
||||
<real>0.000000e+00</real>
|
||||
<string>0</string>
|
||||
<key>g</key>
|
||||
<real>0.000000e+00</real>
|
||||
<string>0</string>
|
||||
<key>r</key>
|
||||
<real>0.000000e+00</real>
|
||||
<string>0</string>
|
||||
</dict>
|
||||
<key>Width</key>
|
||||
<real>2.000000e+00</real>
|
||||
@ -783,7 +798,7 @@ Sheet}</string>
|
||||
<key>Class</key>
|
||||
<string>ShapedGraphic</string>
|
||||
<key>ID</key>
|
||||
<integer>8</integer>
|
||||
<integer>4</integer>
|
||||
<key>Shape</key>
|
||||
<string>Rectangle</string>
|
||||
<key>Style</key>
|
||||
@ -793,21 +808,23 @@ Sheet}</string>
|
||||
<key>Color</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<real>5.000000e-01</real>
|
||||
<string>0.5</string>
|
||||
<key>w</key>
|
||||
<real>3.333334e-01</real>
|
||||
<string>0.333333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>stroke</key>
|
||||
<dict>
|
||||
<key>Color</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<string>1</string>
|
||||
<key>b</key>
|
||||
<real>0.000000e+00</real>
|
||||
<string>0</string>
|
||||
<key>g</key>
|
||||
<real>0.000000e+00</real>
|
||||
<string>0</string>
|
||||
<key>r</key>
|
||||
<real>0.000000e+00</real>
|
||||
<string>0</string>
|
||||
</dict>
|
||||
<key>Width</key>
|
||||
<real>2.000000e+00</real>
|
||||
@ -826,7 +843,7 @@ Sheet}</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>ID</key>
|
||||
<integer>5</integer>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GridInfo</key>
|
||||
@ -864,8 +881,10 @@ Sheet}</string>
|
||||
<string>YES</string>
|
||||
<key>PageBreakColor</key>
|
||||
<dict>
|
||||
<key>a</key>
|
||||
<string>1</string>
|
||||
<key>w</key>
|
||||
<real>6.666667e-01</real>
|
||||
<string>0.666667</string>
|
||||
</dict>
|
||||
<key>PageBreaks</key>
|
||||
<string>YES</string>
|
||||
@ -873,178 +892,178 @@ Sheet}</string>
|
||||
<data>
|
||||
BAt0eXBlZHN0cmVhbYED6IQBQISEhAtOU1ByaW50SW5mbwGEhAhOU09iamVjdACFkoSE
|
||||
hBNOU011dGFibGVEaWN0aW9uYXJ5AISEDE5TRGljdGlvbmFyeQCUhAFpF5KEhIQITlNT
|
||||
dHJpbmcBlIQBKw9OU1BhZ2VzUGVyU2hlZXSGkoSEhAhOU051bWJlcgCEhAdOU1ZhbHVl
|
||||
AJSEASqEhAFznQGGkoSZmQ5OU0JvdHRvbU1hcmdpboaShJuchIQBZp4khpKEmZkPTlNQ
|
||||
cmludEFsbFBhZ2VzhpKEm5ydnQCGkoSZmQ1OU0pvYkZlYXR1cmVzhpKElpcAhpKEmZkV
|
||||
TlNIb3Jpem9uYWxQYWdpbmF0aW9uhpKEm5ydnQCGkoSZmRROU1ZlcnRpY2FsbHlDZW50
|
||||
ZXJlZIaShJucnZ0BhpKEmZkJTlNQcmludGVyhpKEhIQJTlNQcmludGVyAJSShJmZASCG
|
||||
hpKEmZkPTlNTY2FsaW5nRmFjdG9yhpKEm5ygngGGkoSZmRJOU1JldmVyc2VQYWdlT3Jk
|
||||
ZXKGkqKShJmZDE5TTGVmdE1hcmdpboaShJucoJ4khpKEmZkOTlNQTVBhZ2VGb3JtYXSG
|
||||
koSEhAZOU0RhdGEAlJeBHyCEB1s3OTY4Y108P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
|
||||
aW5nPSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZSBDb21w
|
||||
dXRlci8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERz
|
||||
L1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0
|
||||
PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8
|
||||
L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9y
|
||||
PC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+
|
||||
CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxh
|
||||
cnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0
|
||||
LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+Ny4yMDAwMDAwMDAwMDAwMDBl
|
||||
KzAxPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwv
|
||||
a2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+
|
||||
CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJ
|
||||
PGRhdGU+MjAwMi0xMS0xN1QwMDoxNjowOVo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBs
|
||||
ZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRl
|
||||
Z2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxl
|
||||
LnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtl
|
||||
eT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNv
|
||||
bS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5w
|
||||
cmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJ
|
||||
CTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5
|
||||
PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50
|
||||
LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5n
|
||||
bWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1v
|
||||
ZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDItMTEtMTdUMDA6MTY6MDlaPC9kYXRlPgoJ
|
||||
CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJ
|
||||
PGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+
|
||||
Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJ
|
||||
PGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4K
|
||||
CQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5
|
||||
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJ
|
||||
CQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2Fs
|
||||
aW5nPC9rZXk+CgkJCQk8cmVhbD4xLjAwMDAwMDAwMDAwMDAwMGUrMDA8L3JlYWw+CgkJ
|
||||
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3Ry
|
||||
aW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29t
|
||||
LmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTEx
|
||||
LTE3VDAwOjE2OjA5WjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
|
||||
dC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGlj
|
||||
dD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZv
|
||||
cm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5w
|
||||
cmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50
|
||||
aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5p
|
||||
dGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBw
|
||||
bGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43
|
||||
LjIwMDAwMDAwMDAwMDAwMGUrMDE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
|
||||
dC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGlu
|
||||
Z21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5t
|
||||
b2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTExLTE3VDAwOjE2OjA5WjwvZGF0ZT4K
|
||||
CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJ
|
||||
CTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0
|
||||
PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGlu
|
||||
Zzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0
|
||||
b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmlu
|
||||
Zz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJ
|
||||
PGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt
|
||||
YXQuUE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjEuMDAwMDAwMDAwMDAw
|
||||
MDAwZSswMDwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGll
|
||||
bnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3Ry
|
||||
aW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4K
|
||||
CQkJCTxkYXRlPjIwMDItMTEtMTdUMDA6MTY6MDlaPC9kYXRlPgoJCQkJPGtleT5jb20u
|
||||
YXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwv
|
||||
aW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5h
|
||||
cHBsZS5wcmludC5zdWJUaWNrZXQucGFwZXJfaW5mb190aWNrZXQ8L2tleT4KCTxkaWN0
|
||||
PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VS
|
||||
ZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5j
|
||||
cmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwv
|
||||
c3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9r
|
||||
ZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50
|
||||
LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJ
|
||||
CQkJCQk8cmVhbD4wLjAwMDAwMDAwMDAwMDAwMGUrMDA8L3JlYWw+CgkJCQkJCTxyZWFs
|
||||
PjAuMDAwMDAwMDAwMDAwMDAwZSswMDwvcmVhbD4KCQkJCQkJPHJlYWw+Ny44MzAwMDAw
|
||||
MDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8cmVhbD41LjU5MDAwMDAwMDAwMDAwMGUr
|
||||
MDI8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50
|
||||
aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdt
|
||||
YW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1v
|
||||
ZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAyLTExLTE3VDAwOjE2OjA5WjwvZGF0ZT4K
|
||||
CQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJ
|
||||
CQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8
|
||||
L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVk
|
||||
UGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
|
||||
Y2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFu
|
||||
YWdlcjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFy
|
||||
cmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxl
|
||||
LnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxh
|
||||
cnJheT4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVhbD4KCQkJ
|
||||
CQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVhbD4KCQkJCQkJPHJlYWw+
|
||||
OC4yNDAwMDAwMDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8cmVhbD41Ljc3MDAwMDAw
|
||||
MDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBs
|
||||
ZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUu
|
||||
cHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
|
||||
dGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAyLTExLTE3VDAwOjE2OjA5
|
||||
WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFn
|
||||
PC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h
|
||||
cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBN
|
||||
UGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
|
||||
Y2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBv
|
||||
c3RTY3JpcHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0
|
||||
ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5h
|
||||
cHBsZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5n
|
||||
Pmlzby1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5j
|
||||
bGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2Ny
|
||||
aXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERh
|
||||
dGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAwLTA3LTI4VDIyOjU3OjA0WjwvZGF0ZT4KCQkJ
|
||||
dHJpbmcBlIQBKxBOU0pvYkRpc3Bvc2l0aW9uhpKEmZkPTlNQcmludFNwb29sSm9ihpKE
|
||||
mZkZTlNQcmludFJldmVyc2VPcmllbnRhdGlvboaShISECE5TTnVtYmVyAISEB05TVmFs
|
||||
dWUAlIQBKoSEAXOdAIaShJmZC05TUGFwZXJTaXplhpKEnpyEhAx7X05TU2l6ZT1mZn2e
|
||||
gQJTgQNKhpKEmZkUTlNWZXJ0aWNhbFBhZ2luYXRpb26GkoSdnJ+dAIaShJmZFE5TVmVy
|
||||
dGljYWxseUNlbnRlcmVkhpKEnZyfnQGGkoSZmRJOU1JldmVyc2VQYWdlT3JkZXKGkpyS
|
||||
hJmZD05TUGFnZXNQZXJTaGVldIaShJ2cn50BhpKEmZkOTlNQTVBhZ2VGb3JtYXSGkoSE
|
||||
hAZOU0RhdGEAlJeBHyCEB1s3OTY4Y108P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
|
||||
PSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZSBDb21wdXRl
|
||||
ci8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1By
|
||||
b3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJ
|
||||
PGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tl
|
||||
eT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9r
|
||||
ZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJ
|
||||
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJh
|
||||
eT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBN
|
||||
SG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+Ny4yMDAwMDAwMDAwMDAwMDBlKzAx
|
||||
PC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5
|
||||
PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJ
|
||||
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRh
|
||||
dGU+MjAwMi0xMS0xN1QwMDoxNjowOVo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5w
|
||||
cmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2Vy
|
||||
PgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnBy
|
||||
aW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtleT5j
|
||||
b20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5h
|
||||
cHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu
|
||||
dC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxr
|
||||
ZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJ
|
||||
CQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
|
||||
Y2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFu
|
||||
YWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERh
|
||||
dGU8L2tleT4KCQkJCTxkYXRlPjIwMDItMTEtMTdUMDA6MTY6MDlaPC9kYXRlPgoJCQkJ
|
||||
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGlu
|
||||
dGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8
|
||||
a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJPGRp
|
||||
Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8
|
||||
c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNv
|
||||
bS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8
|
||||
ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5n
|
||||
PC9rZXk+CgkJCQk8cmVhbD4xLjAwMDAwMDAwMDAwMDAwMGUrMDA8L3JlYWw+CgkJCQk8
|
||||
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5n
|
||||
PmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFw
|
||||
cGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTExLTE3
|
||||
VDAwOjE2OjA5WjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5z
|
||||
dGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4K
|
||||
CQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1h
|
||||
dC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu
|
||||
dC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5n
|
||||
bWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVt
|
||||
QXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUu
|
||||
cHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43LjIw
|
||||
MDAwMDAwMDAwMDAwMGUrMDE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50
|
||||
aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21h
|
||||
bmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2RE
|
||||
YXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTExLTE3VDAwOjE2OjA5WjwvZGF0ZT4KCQkJ
|
||||
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxp
|
||||
bnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJ
|
||||
PGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwv
|
||||
a2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8
|
||||
L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4K
|
||||
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFy
|
||||
cmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu
|
||||
UE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjEuMDAwMDAwMDAwMDAwMDAw
|
||||
ZSswMDwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8
|
||||
L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5n
|
||||
PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJ
|
||||
CTxkYXRlPjIwMDItMTEtMTdUMDA6MTY6MDlaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBw
|
||||
bGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50
|
||||
ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBs
|
||||
ZS5wcmludC5zdWJUaWNrZXQucGFwZXJfaW5mb190aWNrZXQ8L2tleT4KCTxkaWN0PgoJ
|
||||
CTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0
|
||||
PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVh
|
||||
dG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3Ry
|
||||
aW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+
|
||||
CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBh
|
||||
Z2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJ
|
||||
CQk8cmVhbD4wLjAwMDAwMDAwMDAwMDAwMGUrMDA8L3JlYWw+CgkJCQkJCTxyZWFsPjAu
|
||||
MDAwMDAwMDAwMDAwMDAwZSswMDwvcmVhbD4KCQkJCQkJPHJlYWw+Ny44MzAwMDAwMDAw
|
||||
MDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8cmVhbD41LjU5MDAwMDAwMDAwMDAwMGUrMDI8
|
||||
L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr
|
||||
ZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5h
|
||||
Z2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERh
|
||||
dGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAzLTExLTEwVDIxOjI4OjIyWjwvZGF0ZT4KCQkJ
|
||||
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJ
|
||||
PGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2Rp
|
||||
Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBh
|
||||
Z2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
|
||||
PGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2Rp
|
||||
Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFw
|
||||
ZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
|
||||
dC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdl
|
||||
cjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5
|
||||
PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnBy
|
||||
aW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJh
|
||||
eT4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVhbD4KCQkJCQkJ
|
||||
PHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVhbD4KCQkJCQkJPHJlYWw+OC4y
|
||||
NDAwMDAwMDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8cmVhbD41Ljc3MDAwMDAwMDAw
|
||||
MDAwMGUrMDI8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5w
|
||||
cmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJp
|
||||
bnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
|
||||
a2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAzLTExLTEwVDIxOjI4OjIyWjwv
|
||||
ZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9r
|
||||
ZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJh
|
||||
eT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFw
|
||||
ZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
|
||||
dC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RT
|
||||
Y3JpcHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1B
|
||||
cnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBs
|
||||
ZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQkJCQk8
|
||||
YXJyYXk+CgkJCQkJCTxyZWFsPjAuMDAwMDAwMDAwMDAwMDAwZSswMDwvcmVhbD4KCQkJ
|
||||
CQkJPHJlYWw+MC4wMDAwMDAwMDAwMDAwMDBlKzAwPC9yZWFsPgoJCQkJCQk8cmVhbD43
|
||||
LjgzMDAwMDAwMDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJCTxyZWFsPjUuNTkwMDAwMDAw
|
||||
MDAwMDAwZSswMjwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxl
|
||||
LnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5w
|
||||
cmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp
|
||||
bnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAwLTA3LTI4VDIyOjU3
|
||||
OjA0WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVG
|
||||
bGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJ
|
||||
PC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZv
|
||||
LlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5h
|
||||
cHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBs
|
||||
ZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnBy
|
||||
aW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJ
|
||||
CQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVy
|
||||
UmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAw
|
||||
MDAwZSswMTwvcmVhbD4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwv
|
||||
cmVhbD4KCQkJCQkJPHJlYWw+OC4yNDAwMDAwMDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJ
|
||||
CQk8cmVhbD41Ljc3MDAwMDAwMDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJPC9hcnJheT4K
|
||||
CQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJ
|
||||
PHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJ
|
||||
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRh
|
||||
dGU+MjAwMC0wNy0yOFQyMjo1NzowNFo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUu
|
||||
cHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVn
|
||||
ZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFw
|
||||
cGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4K
|
||||
CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0
|
||||
cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5
|
||||
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4K
|
||||
CQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQu
|
||||
UE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtl
|
||||
eT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+
|
||||
Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNv
|
||||
bS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDAt
|
||||
MDctMjhUMjI6NTc6MDRaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
|
||||
Y2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJ
|
||||
PC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu
|
||||
dC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4K
|
||||
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQucHJpdmF0ZUxvY2s8L2tleT4KCQk8
|
||||
ZmFsc2UvPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+CgkJ
|
||||
PHN0cmluZz5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvVGlja2V0PC9zdHJpbmc+Cgk8
|
||||
L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5
|
||||
PgoJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
|
||||
a2V0LnByaXZhdGVMb2NrPC9rZXk+Cgk8ZmFsc2UvPgoJPGtleT5jb20uYXBwbGUucHJp
|
||||
bnQudGlja2V0LnR5cGU8L2tleT4KCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhZ2VG
|
||||
b3JtYXRUaWNrZXQ8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0PgqGkoSZmRZOU0hvcml6
|
||||
b250YWxseUNlbnRlcmVkhpKokoSZmQ1OU1JpZ2h0TWFyZ2luhpKEm5ygniSGkoSZmRBO
|
||||
U0pvYkRpc3Bvc2l0aW9uhpKEmZkPTlNQcmludFNwb29sSm9ihpKEmZkITlNDb3BpZXOG
|
||||
koSbnISEAVOiAYaShJmZC05TUGFwZXJOYW1lhpKEmZkGaXNvLWE0hpKEmZkLTlNGaXJz
|
||||
dFBhZ2WGkoSbnLyiAYaShJmZFE5TVmVydGljYWxQYWdpbmF0aW9uhpKEm5ydnQCGkoSZ
|
||||
mQ1OU09yaWVudGF0aW9uhpKEm5ydnQCGkoSZmRlOU1ByaW50UmV2ZXJzZU9yaWVudGF0
|
||||
aW9uhpKikoSZmQpOU0xhc3RQYWdlhpKEm5yEl5eCf////4aShJmZC05TVG9wTWFyZ2lu
|
||||
hpKEm5ygniSGkoSZmQtOU1BhcGVyU2l6ZYaShJychIQMe19OU1NpemU9ZmZ9o4ECU4ED
|
||||
SoaGhg==
|
||||
ZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPmlz
|
||||
by1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGll
|
||||
bnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0
|
||||
PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8
|
||||
L2tleT4KCQkJCQk8ZGF0ZT4yMDAwLTA3LTI4VDIyOjU3OjA0WjwvZGF0ZT4KCQkJCQk8
|
||||
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGlu
|
||||
dGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+
|
||||
CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VS
|
||||
ZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5j
|
||||
cmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3Jp
|
||||
cHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJh
|
||||
eTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5w
|
||||
cmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQkJCQk8YXJy
|
||||
YXk+CgkJCQkJCTxyZWFsPjAuMDAwMDAwMDAwMDAwMDAwZSswMDwvcmVhbD4KCQkJCQkJ
|
||||
PHJlYWw+MC4wMDAwMDAwMDAwMDAwMDBlKzAwPC9yZWFsPgoJCQkJCQk8cmVhbD43Ljgz
|
||||
MDAwMDAwMDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJCTxyZWFsPjUuNTkwMDAwMDAwMDAw
|
||||
MDAwZSswMjwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnBy
|
||||
aW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmlu
|
||||
dC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
|
||||
dGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAwLTA3LTI4VDIyOjU3OjA0
|
||||
WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFn
|
||||
PC9rZXk+CgkJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h
|
||||
cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBN
|
||||
VW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBs
|
||||
ZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5w
|
||||
cmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50
|
||||
LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJ
|
||||
PGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVj
|
||||
dDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAw
|
||||
ZSswMTwvcmVhbD4KCQkJCQkJPHJlYWw+LTEuODAwMDAwMDAwMDAwMDAwZSswMTwvcmVh
|
||||
bD4KCQkJCQkJPHJlYWw+OC4yNDAwMDAwMDAwMDAwMDBlKzAyPC9yZWFsPgoJCQkJCQk8
|
||||
cmVhbD41Ljc3MDAwMDAwMDAwMDAwMGUrMDI8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJ
|
||||
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0
|
||||
cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJCTxr
|
||||
ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+
|
||||
MjAwMC0wNy0yOFQyMjo1NzowNFo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp
|
||||
bnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVnZXI+
|
||||
CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxl
|
||||
LnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJ
|
||||
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmlu
|
||||
Zz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNv
|
||||
bS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJ
|
||||
CTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1Q
|
||||
YXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtleT5j
|
||||
b20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29t
|
||||
LmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5h
|
||||
cHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDAtMDct
|
||||
MjhUMjI6NTc6MDRaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
|
||||
dC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPC9k
|
||||
aWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50
|
||||
aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCQk8
|
||||
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQucHJpdmF0ZUxvY2s8L2tleT4KCQk8ZmFs
|
||||
c2UvPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+CgkJPHN0
|
||||
cmluZz5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvVGlja2V0PC9zdHJpbmc+Cgk8L2Rp
|
||||
Y3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJ
|
||||
PHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
|
||||
LnByaXZhdGVMb2NrPC9rZXk+Cgk8ZmFsc2UvPgoJPGtleT5jb20uYXBwbGUucHJpbnQu
|
||||
dGlja2V0LnR5cGU8L2tleT4KCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt
|
||||
YXRUaWNrZXQ8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0PgqGkoSZmQ9OU1ByaW50QWxs
|
||||
UGFnZXOGkpyShJmZFU5TSG9yaXpvbmFsUGFnaW5hdGlvboaShJ2cn50AhpKEmZkITlND
|
||||
b3BpZXOGkoSdnISEAVOhAYaShJmZFk5TSG9yaXpvbnRhbGx5Q2VudGVyZWSGkqaShJmZ
|
||||
CU5TUHJpbnRlcoaShISECU5TUHJpbnRlcgCUkoSZmQEghoaShJmZC05TUGFwZXJOYW1l
|
||||
hpKEmZkGaXNvLWE0hpKEmZkPTlNTY2FsaW5nRmFjdG9yhpKEnZyEhAFmowGGkoSZmQ1O
|
||||
U1JpZ2h0TWFyZ2luhpKEnZy8oySGkoSZmQ1OU0pvYkZlYXR1cmVzhpKElpcAhpKEmZkM
|
||||
TlNMZWZ0TWFyZ2luhpKEnZy8oySGkoSZmQ5OU0JvdHRvbU1hcmdpboaShJ2cvKMkhpKE
|
||||
mZkLTlNUb3BNYXJnaW6GkoSdnLyjJIaShJmZCk5TTGFzdFBhZ2WGkoSdnISXl4J/////
|
||||
hpKEmZkLTlNGaXJzdFBhZ2WGkoSdnLKhAYaShJmZDU5TT3JpZW50YXRpb26GkoSdnJ+d
|
||||
AIaGhg==
|
||||
</data>
|
||||
<key>RowAlign</key>
|
||||
<integer>0</integer>
|
||||
@ -1055,7 +1074,7 @@ Sheet}</string>
|
||||
<key>WindowInfo</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{1998, 271}, {559, 717}}</string>
|
||||
<string>{{38, 272}, {559, 717}}</string>
|
||||
<key>VisibleRegion</key>
|
||||
<string>{{-10, 0}, {544, 640}}</string>
|
||||
<key>Zoom</key>
|
||||
|
Binary file not shown.
@ -4,6 +4,8 @@
|
||||
#import "ColrWindowController.h"
|
||||
#import "CronWindowController.h"
|
||||
#import "DescWindowController.h"
|
||||
#import "MisnWindowController.h"
|
||||
#import "ShipWindowController.h"
|
||||
|
||||
@implementation NovaWindowController
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -35,7 +35,7 @@ enum // boom defaults
|
||||
|
||||
- (void)update;
|
||||
- (void)controlTextDidChange:(NSNotification *)notification;
|
||||
- (IBAction)toggleSilence:(id)sender;
|
||||
- (IBAction)setSilent:(id)sender;
|
||||
- (IBAction)playSound:(id)sender;
|
||||
|
||||
@end
|
||||
|
@ -111,11 +111,9 @@
|
||||
[self setDocumentEdited:[resource isDirty]];
|
||||
}
|
||||
|
||||
- (IBAction)toggleSilence:(id)sender
|
||||
- (IBAction)setSilent:(id)sender
|
||||
{
|
||||
silent = ![soundButton state];
|
||||
[soundField setEnabled:!silent];
|
||||
[playButton setEnabled:!silent];
|
||||
[resource touch];
|
||||
[self setDocumentEdited:YES];
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{
|
||||
ACTIONS = {playSound = id; toggleSilence = id; };
|
||||
ACTIONS = {playSound = id; setSilent = id; };
|
||||
CLASS = BoomWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
@ -16,7 +16,7 @@
|
||||
},
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
ACTIONS = {toggleResID = id; };
|
||||
ACTIONS = {};
|
||||
CLASS = NovaWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSWindowController;
|
||||
|
16
NovaTools/boom/English.lproj/boom.nib/info.nib
generated
16
NovaTools/boom/English.lproj/boom.nib/info.nib
generated
@ -3,14 +3,24 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>86 100 356 240 0 0 1024 746 </string>
|
||||
<string>17 87 357 296 0 0 1280 1002 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>283.0</string>
|
||||
<string>326.0</string>
|
||||
<key>IBLockedObjects</key>
|
||||
<array>
|
||||
<integer>41</integer>
|
||||
<integer>30</integer>
|
||||
<integer>37</integer>
|
||||
<integer>38</integer>
|
||||
<integer>39</integer>
|
||||
<integer>22</integer>
|
||||
<integer>49</integer>
|
||||
</array>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>6G30</string>
|
||||
<string>7A179</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
BIN
NovaTools/boom/English.lproj/boom.nib/objects.nib
generated
BIN
NovaTools/boom/English.lproj/boom.nib/objects.nib
generated
Binary file not shown.
@ -1,6 +1,7 @@
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "NovaWindowController.h"
|
||||
|
||||
#define titleField [titleForm cellAtIndex:0]
|
||||
#define cashField [goodiesForm cellAtIndex:0]
|
||||
#define killsField [goodiesForm cellAtIndex:1]
|
||||
#define prefixField [timeForm cellAtIndex:0]
|
||||
@ -9,6 +10,19 @@
|
||||
#define statusField2 [statusForm cellAtIndex:1]
|
||||
#define statusField3 [statusForm cellAtIndex:2]
|
||||
#define statusField4 [statusForm cellAtIndex:3]
|
||||
#define governmentField1 [governmentForm cellAtRow:0 column:0]
|
||||
#define governmentField2 [governmentForm cellAtRow:1 column:0]
|
||||
#define governmentField3 [governmentForm cellAtRow:2 column:0]
|
||||
#define governmentField4 [governmentForm cellAtRow:3 column:0]
|
||||
#define startField1 [startForm cellAtRow:0 column:0]
|
||||
#define startField2 [startForm cellAtRow:1 column:0]
|
||||
#define startField3 [startForm cellAtRow:2 column:0]
|
||||
#define startField4 [startForm cellAtRow:3 column:0]
|
||||
#define introPictField1 [introPictTextForm cellAtRow:0 column:0]
|
||||
#define introPictField2 [introPictTextForm cellAtRow:1 column:0]
|
||||
#define introPictField3 [introPictTextForm cellAtRow:2 column:0]
|
||||
#define introPictField4 [introPictTextForm cellAtRow:3 column:0]
|
||||
#define introTextField [introPictTextForm cellAtRow:4 column:0]
|
||||
#define introDelayField1 [introDelayForm cellAtIndex:0]
|
||||
#define introDelayField2 [introDelayForm cellAtIndex:1]
|
||||
#define introDelayField3 [introDelayForm cellAtIndex:2]
|
||||
@ -19,10 +33,15 @@
|
||||
{
|
||||
CharRec *charRec;
|
||||
|
||||
// =====
|
||||
|
||||
// char info
|
||||
IBOutlet NSForm *titleForm;
|
||||
IBOutlet NSButton *principalCharButton;
|
||||
IBOutlet NSComboBox *shipField;
|
||||
IBOutlet NSForm *goodiesForm;
|
||||
|
||||
// beginning of time
|
||||
IBOutlet NSTextField *dayField;
|
||||
IBOutlet NSTextField *monthField;
|
||||
IBOutlet NSTextField *yearField;
|
||||
@ -31,28 +50,22 @@
|
||||
IBOutlet NSStepper *yearStepper;
|
||||
IBOutlet NSForm *timeForm;
|
||||
|
||||
IBOutlet NSComboBox *startField1;
|
||||
IBOutlet NSComboBox *startField2;
|
||||
IBOutlet NSComboBox *startField3;
|
||||
IBOutlet NSComboBox *startField4;
|
||||
|
||||
// govt status & start locs
|
||||
IBOutlet NSForm *statusForm;
|
||||
IBOutlet NSComboBox *governmentField1;
|
||||
IBOutlet NSComboBox *governmentField2;
|
||||
IBOutlet NSComboBox *governmentField3;
|
||||
IBOutlet NSComboBox *governmentField4;
|
||||
IBOutlet NSMatrix *governmentForm;
|
||||
IBOutlet NSMatrix *startForm;
|
||||
|
||||
IBOutlet NSComboBox *introPictField1;
|
||||
IBOutlet NSComboBox *introPictField2;
|
||||
IBOutlet NSComboBox *introPictField3;
|
||||
IBOutlet NSComboBox *introPictField4;
|
||||
// introduction
|
||||
IBOutlet NSMatrix *introPictTextForm;
|
||||
IBOutlet NSForm *introDelayForm;
|
||||
IBOutlet NSComboBox *introTextField;
|
||||
IBOutlet NSButton *introImageView; // button so user can click to skip to next pic
|
||||
IBOutlet NSTextView *introTextView;
|
||||
|
||||
// ncbs
|
||||
IBOutlet NSForm *ncbForm;
|
||||
|
||||
// ======
|
||||
|
||||
// char
|
||||
BOOL principalChar;
|
||||
|
||||
|
17
NovaTools/char/English.lproj/char.nib/classes.nib
generated
17
NovaTools/char/English.lproj/char.nib/classes.nib
generated
@ -13,29 +13,20 @@
|
||||
dayField = NSTextField;
|
||||
dayStepper = NSStepper;
|
||||
goodiesForm = NSForm;
|
||||
governmentField1 = NSComboBox;
|
||||
governmentField2 = NSComboBox;
|
||||
governmentField3 = NSComboBox;
|
||||
governmentField4 = NSComboBox;
|
||||
governmentForm = NSMatrix;
|
||||
introDelayForm = NSForm;
|
||||
introImageView = NSButton;
|
||||
introPictField1 = NSComboBox;
|
||||
introPictField2 = NSComboBox;
|
||||
introPictField3 = NSComboBox;
|
||||
introPictField4 = NSComboBox;
|
||||
introTextField = NSComboBox;
|
||||
introPictTextForm = NSMatrix;
|
||||
introTextView = NSTextView;
|
||||
monthField = NSTextField;
|
||||
monthStepper = NSStepper;
|
||||
ncbForm = NSForm;
|
||||
principalCharButton = NSButton;
|
||||
shipField = NSComboBox;
|
||||
startField1 = NSComboBox;
|
||||
startField2 = NSComboBox;
|
||||
startField3 = NSComboBox;
|
||||
startField4 = NSComboBox;
|
||||
startForm = NSMatrix;
|
||||
statusForm = NSForm;
|
||||
timeForm = NSForm;
|
||||
titleForm = NSForm;
|
||||
yearField = NSTextField;
|
||||
yearStepper = NSStepper;
|
||||
};
|
||||
|
43
NovaTools/char/English.lproj/char.nib/info.nib
generated
43
NovaTools/char/English.lproj/char.nib/info.nib
generated
@ -3,24 +3,49 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>308 330 356 240 0 0 1024 746 </string>
|
||||
<string>10 459 386 530 0 0 1280 1002 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>283.0</string>
|
||||
<string>326.0</string>
|
||||
<key>IBGroupedObjects</key>
|
||||
<dict>
|
||||
<key>2</key>
|
||||
<array>
|
||||
<string>194</string>
|
||||
<string>192</string>
|
||||
<string>190</string>
|
||||
<string>189</string>
|
||||
<string>196</string>
|
||||
<string>191</string>
|
||||
<string>372</string>
|
||||
<string>367</string>
|
||||
<string>365</string>
|
||||
<string>370</string>
|
||||
<string>368</string>
|
||||
<string>366</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>IBLastGroupID</key>
|
||||
<string>3</string>
|
||||
<key>IBLockedObjects</key>
|
||||
<array>
|
||||
<integer>369</integer>
|
||||
<integer>365</integer>
|
||||
<integer>370</integer>
|
||||
<integer>366</integer>
|
||||
<integer>372</integer>
|
||||
<integer>367</integer>
|
||||
<integer>368</integer>
|
||||
<integer>371</integer>
|
||||
<integer>184</integer>
|
||||
<integer>181</integer>
|
||||
<integer>183</integer>
|
||||
<integer>374</integer>
|
||||
<integer>403</integer>
|
||||
<integer>154</integer>
|
||||
<integer>390</integer>
|
||||
<integer>218</integer>
|
||||
</array>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>3</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>137</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>6G30</string>
|
||||
<string>7A179</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
BIN
NovaTools/char/English.lproj/char.nib/keyedobjects.nib
generated
Normal file
BIN
NovaTools/char/English.lproj/char.nib/keyedobjects.nib
generated
Normal file
Binary file not shown.
@ -1,15 +1,16 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = DescSplitViewDelegate; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
ACTIONS = {chooseMovieFile = id; toggleGraphicsView = id; };
|
||||
CLASS = DescWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {graphicsView = NSView; };
|
||||
SUPERCLASS = NovaWindowController;
|
||||
},
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{CLASS = NSObject; LANGUAGE = ObjC; },
|
||||
{
|
||||
ACTIONS = {toggleResID = id; };
|
||||
ACTIONS = {};
|
||||
CLASS = NovaWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSWindowController;
|
||||
|
39
NovaTools/desc/English.lproj/desc.nib/info.nib
generated
39
NovaTools/desc/English.lproj/desc.nib/info.nib
generated
@ -1,12 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
|
||||
<plist version="0.9">
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>75 569 356 240 0 0 1152 848 </string>
|
||||
<string>87 713 356 240 0 0 1280 1002 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>91</key>
|
||||
<string>236 96 508 255 0 0 1280 1002 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>263.2</string>
|
||||
<string>326.0</string>
|
||||
<key>IBLockedObjects</key>
|
||||
<array>
|
||||
<integer>103</integer>
|
||||
<integer>108</integer>
|
||||
<integer>107</integer>
|
||||
<integer>110</integer>
|
||||
<integer>97</integer>
|
||||
<integer>96</integer>
|
||||
<integer>116</integer>
|
||||
<integer>115</integer>
|
||||
<integer>50</integer>
|
||||
<integer>113</integer>
|
||||
<integer>112</integer>
|
||||
<integer>119</integer>
|
||||
<integer>120</integer>
|
||||
<integer>117</integer>
|
||||
</array>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>3</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>39</integer>
|
||||
<integer>91</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>5Q125</string>
|
||||
<string>7A179</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
BIN
NovaTools/desc/English.lproj/desc.nib/keyedobjects.nib
generated
Normal file
BIN
NovaTools/desc/English.lproj/desc.nib/keyedobjects.nib
generated
Normal file
Binary file not shown.
18
NovaTools/misn/English.lproj/misn.nib/classes.nib
generated
Normal file
18
NovaTools/misn/English.lproj/misn.nib/classes.nib
generated
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = MisnWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NovaWindowController;
|
||||
},
|
||||
{CLASS = NSObject; LANGUAGE = ObjC; },
|
||||
{
|
||||
ACTIONS = {toggleResID = id; };
|
||||
CLASS = NovaWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSWindowController;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
18
NovaTools/misn/English.lproj/misn.nib/info.nib
generated
Normal file
18
NovaTools/misn/English.lproj/misn.nib/info.nib
generated
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>18 738 356 240 0 0 1280 1002 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>326.0</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>3</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>39</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>7A179</string>
|
||||
</dict>
|
||||
</plist>
|
BIN
NovaTools/misn/English.lproj/misn.nib/keyedobjects.nib
generated
Normal file
BIN
NovaTools/misn/English.lproj/misn.nib/keyedobjects.nib
generated
Normal file
Binary file not shown.
7
NovaTools/misn/MisnWindowController.h
Normal file
7
NovaTools/misn/MisnWindowController.h
Normal file
@ -0,0 +1,7 @@
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "NovaWindowController.h"
|
||||
|
||||
@interface MisnWindowController : NovaWindowController
|
||||
{
|
||||
}
|
||||
@end
|
18
NovaTools/misn/MisnWindowController.m
Normal file
18
NovaTools/misn/MisnWindowController.m
Normal file
@ -0,0 +1,18 @@
|
||||
#import "MisnWindowController.h"
|
||||
|
||||
@implementation MisnWindowController
|
||||
|
||||
- (id)initWithResource:(id <ResKnifeResourceProtocol>)newResource
|
||||
{
|
||||
self = [self initWithWindowNibName:@"misn"];
|
||||
if( !self ) return nil;
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)windowDidLoad
|
||||
{
|
||||
[super windowDidLoad];
|
||||
[self showWindow:self];
|
||||
}
|
||||
|
||||
@end
|
16
NovaTools/ship/English.lproj/ship.nib/classes.nib
generated
Normal file
16
NovaTools/ship/English.lproj/ship.nib/classes.nib
generated
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NovaWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSWindowController;
|
||||
},
|
||||
{
|
||||
CLASS = ShipWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NovaWindowController;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
16
NovaTools/ship/English.lproj/ship.nib/info.nib
generated
Normal file
16
NovaTools/ship/English.lproj/ship.nib/info.nib
generated
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>47 80 356 240 0 0 1600 1002 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>313.0</string>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>6L60</string>
|
||||
</dict>
|
||||
</plist>
|
BIN
NovaTools/ship/English.lproj/ship.nib/objects.nib
generated
Normal file
BIN
NovaTools/ship/English.lproj/ship.nib/objects.nib
generated
Normal file
Binary file not shown.
7
NovaTools/ship/ShipWindowController.h
Normal file
7
NovaTools/ship/ShipWindowController.h
Normal file
@ -0,0 +1,7 @@
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "NovaWindowController.h"
|
||||
|
||||
@interface ShipWindowController : NovaWindowController
|
||||
{
|
||||
}
|
||||
@end
|
18
NovaTools/ship/ShipWindowController.m
Normal file
18
NovaTools/ship/ShipWindowController.m
Normal file
@ -0,0 +1,18 @@
|
||||
#import "ShipWindowController.h"
|
||||
|
||||
@implementation ShipWindowController
|
||||
|
||||
- (id)initWithResource:(id <ResKnifeResourceProtocol>)newResource
|
||||
{
|
||||
self = [self initWithWindowNibName:@"ship"];
|
||||
if( !self ) return nil;
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)windowDidLoad
|
||||
{
|
||||
[super windowDidLoad];
|
||||
[self showWindow:self];
|
||||
}
|
||||
|
||||
@end
|
71
README.txt
71
README.txt
@ -1,36 +1,87 @@
|
||||
RESKNIFE Snapshot 2003-08-02
|
||||
|
||||
/*
|
||||
* * * * * * * * * * * * *
|
||||
RESKNIFE READ-ME
|
||||
* * * * * * * * * * * * *
|
||||
Last updated: 9 November 2003
|
||||
WHAT IS IT?
|
||||
-----------
|
||||
|
||||
This is a development snapshot of ResKnife, a resource editor for MacOS X. This is pre-pre-release software, do not use this on any vital files.
|
||||
This is a development snapshot of ResKnife, a resource editor for the Macintosh. This is pre-release software and as such should only be used with copies of files, or on files you don't mind being destroyed :)
|
||||
|
||||
|
||||
TRYING OUT RESKNIFE
|
||||
-------------------
|
||||
|
||||
There should be pre-built "deployment" binaries in the "build" folder. I've left the plugins in there as well, though you don't need to install them or anything like that, they're already installed.
|
||||
Prebuilt binaries of ResKnife are available from http://resknife.sourceforge.net/ for MacOS 7.1 through to 10.3
|
||||
Please download them and try it out. If you like what you see, please tell us. If you don't like what you see, please tell us too!
|
||||
ResKnife is an open-source editor and contributions from any and all are welcomed.
|
||||
|
||||
|
||||
BUILDING RESKNIFE
|
||||
-----------------
|
||||
|
||||
Currently the only project that I've confirmed will build is "ResKnife (PB2).pbproj". You can build the target "Cocoa ResKnife" as well as three Cocoa editor plugins that are in there. Of those, only the Hex editor really works. NovaTools doesn't register for the right types and the Template editor is far from finished.
|
||||
The source code for ResKnife is also available from http://resknife.sourceforge.net/ as a released source package corrisponding to the latest officially released binary, or as a nightly tarball. If you are familiar with CVS you may also download the code via anonymous cvs access from :pserver:anonymous@cvs.resknife.sourceforge.net/cvsroot/resknife as project 'ResKnife'.
|
||||
ResKnife can be built as either a Cocoa app, Carbon app or Classic app, the Carbon version available in either MachO or PEF formats, using your choice of either CodeWarrior or Xcode/Project Builder (gcc 2.95, 3.1 or 3.3) as IDE/compiler. The Classic and Carbon versionsd are build from the same codebase, with the main differences being TARGET_API_MAC_CARBON being set on the latter, and linking against CarbonLib instead of InterfaceLib et al. When building the Carbon version as a Package, you can choose to use nib files instead of resources to define things like menus and dialogue boxes. The Carbon/Classic version is no longer maintained by the original developer, though you are free to work on it if you wish. The Cocoa version has a compleatly different codebase, and is the current focus of development. It is considered the most bug-free and most feature-compleate ('most' being about 20% as compared with 15% for Carbon).
|
||||
|
||||
|
||||
BUILDING A PLUGIN
|
||||
-----------------
|
||||
|
||||
If you want to create a plugin for ResKnife, use the "ICONEditor" project as the basis. It's a simple, standalone project. You can install it in three places:
|
||||
If you want to create a Cocoa plugin for ResKnife, use the "ICONEditor" project as the basis until the SDK is available. It's a simple, standalone project. You can install it in three places:
|
||||
|
||||
-> In ResKnife itself by selecting it, choosing "Information" and there clicking the "Add" button in the "plugins" section
|
||||
-> In ~/Library/Application Support/ResKnife/Plugins/ for one user account.
|
||||
-> In /Library/Application Support/ResKnife/Plugins/ for the entire machine.
|
||||
|
||||
If you want to create a plugin for the Carbon version of ResKnife, take a look at the Hex Editor try to derivesomething from that. Editors for the Classic version
|
||||
|
||||
|
||||
ROAD MAP
|
||||
--------
|
||||
|
||||
I've decided to focus on the Cocoa version so we get a useable product done soon. The general consensus between Nick and me (Uli) is that he'll take care of the engine, while I'll focus mainly on plugins. However, since Nick is rather busy at the moment, I've made some changes to the engine that should allow plugin developers to get something done. All the basic features for editing resources in resource files should now be there. If you're missing any, tell me.
|
||||
Currently Uli and Nicholas have decided to delegate different parts of the project to each other, with Nick handling the host application and hex editor, and Uli handling the template editor. Nicholas is also working on an editor for resources associated with the game Escape Velocity Nova by Ambrosia Software. Other editors will be written as time permits, or perhaps by third parties such as yourself! If you have any ideas for editors, take a look at the SDK (avalable from the web site) which contains an empty 'shell' editor. Sample fully-working editors are of course available as part of the project themselves!
|
||||
|
||||
HISTORY
|
||||
-------
|
||||
|
||||
ResKnife has had a protracted and erratic history. It started in 1997 when Nicholas Shanks decided ResEdit needed a successor and because he wanted to play around with the new resources available with Mac OS 8.0, yet didn't have the money to buy Resourcerer. After three months of fast R&D, version 0.1d9 was quite stable and had many features, including a working hex editor. Then in a careless act of stupidity, Nicholas decided to Carbonise the program without backing up the 0.1d9 source. It failed, and much that once was had been lost. Throwing away that mess and starting again, Nicholas tried to re-write ResKnife as a Carbon app from the ground up. Thrice. Versions 0.2 and 0.3 were aborted attempts to do this, version 0.4 was more successful, and now forms the basis for the Carbon varient of ResKnife. Soon after, the wonders of Cocoa were discovered and required learning, and Nicholas turned to his pet project ResKnife to help him learn. The Cocoa re-write became version 0.5 and in conjunction with version 0.4 which had had a few touch-ups added to it since, was committed to CVS almost two years after the last commit had occured. Two more years passed with not much change to ResKnife, before Uli Kusterer, collaborator for earlier versions of ResKnife and himself writing a resource editor with special consideration for users of the MacZoop framework, decided to write a template editor for the project. Throughout the development of the project contributions small and large have trickled in, and all who contributed are recognised below.
|
||||
|
||||
|
||||
AUTHORS:
|
||||
ResKnife was written by Nick Shanks (http://www.nickshanks.com) with additional changes by M. Uli Kusterer (http://www.zathras.de).
|
||||
AUTHORS
|
||||
-------
|
||||
|
||||
There is a web site for ResKnife at http://resknife.sourceforge.net
|
||||
ResKnife was written by Nicholas Shanks http://web.nickshanks.com/ with additional changes and some editors supplied by M. Uli Kusterer http://www.zathras.de/
|
||||
Other contributors include (in alphabetical order): Thomas Castiglione, Philippe Devallois, Mike Margolis, Lane Roathe and Jeffrey Seibert.
|
||||
There is a web site for ResKnife at http://resknife.sourceforge.net/
|
||||
|
||||
|
||||
COMMENTS FOR THOSE WHO WISH TO CONTRIBUTE
|
||||
-----------------------------------------
|
||||
|
||||
Please try to conform to the existing formatting rules followed, including placement of braces and use of whitespace, and tabs rather than space characters for indenting. Tab width is four.
|
||||
|
||||
|
||||
Notes on commenting/documenting for the ResKnife project:
|
||||
|
||||
ResKnife methods, functions, headers, classes, ivars and practically anything else is commented using the format specified by HeaderDoc (a C-based equivalent to JavaDoc), although with ResKnife-specific modifications (NB: although I've yet to modify HeaderDoc to read these new parameters, they should still be used for the time being). The general format is to use the standard C block-commenting mechanism, with the addition of an exclamation mark immediatly after the open comment marker. Following this are one or more lines beginning with an at sign, a keyword, arguments if any, and finally a string value. For source code consistancy, I (Nicholas) am dictating the following rules which must be followed when documenting an object.
|
||||
|
||||
1) All HeaderDoc comments immediatly preceede the object to which they pertain.
|
||||
2) HeaderDoc comments documenting a method or function must follow the following order (for consistancy & readability), where an ellipsis indicates the line above can be repeated multiple times:
|
||||
|
||||
@method or @function
|
||||
@abstract
|
||||
@author
|
||||
@created
|
||||
@change [reverse chronological, i.e. most recent at the top]
|
||||
...
|
||||
@pending [higher priority TODO items should be above lower priority ones]
|
||||
...
|
||||
@description
|
||||
@param [listed in order taken by method/function]
|
||||
...
|
||||
|
||||
3) The pertinent keywords or their equivalents in the above item should retain the specified order wherever reasonably applicable (e.g. for @class and @protocol comments)
|
||||
4) The value for the @created keyword should take the following form: YYYY-MM-DD
|
||||
5) The value for the @change keyword should take the following form: YYYY-MM-DD Author: Description
|
||||
where Author is an identifier for the person who made the change, not necessarilly the value in @author. Convention is that it simply contains the initials of the person.
|
||||
*/
|
||||
|
1
ResKnife.mcp.xml
Normal file
1
ResKnife.mcp.xml
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
13
TODO.txt
13
TODO.txt
@ -1,5 +1,8 @@
|
||||
-> "Open as Hex" displays "(null)" as the document name. Why?
|
||||
-> Changing the type/creator of a file isn't written to disk by ResourceDocument.
|
||||
-> Create small versions of the doc icons in Photoshop instead of letting IconComposer use its cheap scaling on them.
|
||||
-> Auto-uncollapse list items in template editor when they are created and when a resource is opened.
|
||||
-> Template editor should maintain "dirty" flag for resource.
|
||||
// Global to-do list for the entire project
|
||||
// to-do items specific to an object are associated directly with that object in the header or implementation files
|
||||
|
||||
Create some nice icons instead of the crap ones we have now.
|
||||
Auto-uncollapse list items in template editor when they are created and when a resource is opened.
|
||||
Add preference to "Show Resource Fork even if empty."
|
||||
Add viewers for MooV and PICT.
|
||||
Modify -[Resource data] and -[Resource setData] to use ResourceManager functions behind the scenes instead of an NSData object. This should fix the problem with new resources not being saved at times.
|
||||
|
15
To Dos.rtf
Normal file
15
To Dos.rtf
Normal file
@ -0,0 +1,15 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf102
|
||||
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\margl1440\margr1440\vieww9900\viewh5060\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\fs24 \cf0 add category to NSSavePanel to return the NSBrowser\
|
||||
swap existing browser delegate for my own class, retain old one\
|
||||
intercept select methods, post notification, call old delegate\
|
||||
forward invocations of other methods to former browser delegate object too\
|
||||
\
|
||||
add notification listening code to table data source\
|
||||
\
|
||||
intercept drag begin from hex window and pass correct data.\
|
||||
allow fork editing.}
|
Loading…
Reference in New Issue
Block a user