[
  {
    "path": ".gitignore",
    "content": "*/build*\n*Library/*\n*xcuserdata*\n*xccheckout*\n"
  },
  {
    "path": "DiskTree/DiskTree.html",
    "content": "<html><head><style>\n\nbody, .treeview { font: 12pt -apple-system; background-color: #303238; }\n\n.treeview UL {\n\tPADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px;\n}\n\n.treeview LI {\n\tPADDING-LEFT: 25px; PADDING-TOP: 3px; PADDING-BOTTOM: 2px; LIST-STYLE-TYPE: none; CURSOR: default;\n}\n\n.lopen {\n\tBACKGROUND: url(open_folder_orange.png) transparent no-repeat left 1px;\n}\n\n.lclosed {\n\tBACKGROUND: url(closed_folder_orange.png) transparent no-repeat left 1px;\n}\n\n.lfile {\n\tBACKGROUND: url(document.png) transparent no-repeat left 1px;\n}\n\n.mtab { background-color: #303238; color: #e0e0e0; }\n.dlink { color: #e0e0e0; text-decoration: none; }\n.dlink:hover { text-decoration: underline; }\n\n</style></head><body style='border: 0px; margin: 0px;'>\n\n<table class=mtab width='100%' notheight='100%'>\n<tr><td>&nbsp;\n<tr><td width=75><td>\n<center id=welcome>\n<h2>Disk Usage Tool</h2>\n\n<div style='max-width:400'>\nDisk Usage is a basic tool to locate\nspace that can be recovered on your disk drive. Click scan\nto start the process and after all files on your drive\nhave been sized a tree view will be dispayed. Click on\nthe folder to drill down or on the directory link to open\nin Finder.\n</div>\n\n<p>\n</center>\n<div id=treeDiv class='treeview'></div><p>\n<center>\n\n<a href='scan:/'><img src='scan.png' border=0 onmousedown='this.src=\"scan2.png\";'\n   notonmouseup='this.src=\"scan.png\";' notonmouseout='this.src=\"scan.png\";'></a>\n</center>\n<td width=75>\n<tr><td>&nbsp;\n</table>\n<script>\n\nfunction toggle(e) {\n\tvar li = (e||event).srcElement || e.target;\n\tvar submenu = li.children[1];\n\tif ( submenu )\n\t  if ((submenu.currentStyle||submenu.style).display == \"block\") {\n\t\tsubmenu.style.display = \"none\";\n\t\tli.className = \"lclosed\";\n\t  }\n\t  else {\n\t\tli.className = \"lopen\";\n\t\tvar lis = submenu.children;\n\t\tfor (var i = 0; i < lis.length; i++)\n\t\t\tif ( !lis[i].className )\n\t\t\t\tlis[i].className = \"lclosed\";\n\t\tsubmenu.style.display = \"block\";\n\t  }\n\tif ( e )\n\t  e.stopPropagation();\n\telse\n\t  event.cancelBubble = true;\n}\n\nvar start;\n\nfunction progress(html,dirs,files,bytes) {\n\tif ( !start )\n\t\tstart = new Date();\n\ttreeDiv.innerHTML = \"<center><div style='font: 8pt Arial;'>Scanned \"+\n\t\t\"Folders: \"+dirs+\", Files: \"+files+\", Bytes: \"+bytes+\n\t\t\" in \"+(new Date().getTime()-start.getTime())/1000.+\" seconds.\"+\n\t\thtml+\"</div></center>\";\n}\n\nfunction complete(html,when) {\n  if ( when )\n    welcome.innerHTML = \"<span style='font: bold 16pt Arial;'>Disk Usage \"+when+\n\t\t\"</span><br>Click on Folder to drill down or its name to view in Finder.<p>\";\n  treeDiv.innerHTML = html;\n  treeDiv.children[0].onclick = toggle;\n  start = null;\n}\n\n</script>\n"
  },
  {
    "path": "DiskTree/DiskTree.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion=\"11762\" systemVersion=\"15G1212\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\">\n    <dependencies>\n        <deployment identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"11762\"/>\n        <plugIn identifier=\"com.apple.WebKitIBPlugin\" version=\"11762\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <customObject id=\"-2\" userLabel=\"File's Owner\" customClass=\"NSApplication\">\n            <connections>\n                <outlet property=\"delegate\" destination=\"494\" id=\"495\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"-1\" userLabel=\"First Responder\" customClass=\"FirstResponder\"/>\n        <customObject id=\"-3\" userLabel=\"Application\" customClass=\"NSObject\"/>\n        <customObject id=\"494\" customClass=\"DiskTreeAppDelegate\">\n            <connections>\n                <outlet property=\"webView\" destination=\"533\" id=\"534\"/>\n                <outlet property=\"window\" destination=\"pQA-73-RIy\" id=\"4gr-QM-CK2\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"420\" customClass=\"NSFontManager\"/>\n        <window title=\"Injection\" allowsToolTipsWhenApplicationIsInactive=\"NO\" autorecalculatesKeyViewLoop=\"NO\" oneShot=\"NO\" releasedWhenClosed=\"NO\" showsToolbarButton=\"NO\" frameAutosaveName=\"\" animationBehavior=\"default\" id=\"pQA-73-RIy\">\n            <windowStyleMask key=\"styleMask\" titled=\"YES\" closable=\"YES\" miniaturizable=\"YES\" resizable=\"YES\"/>\n            <windowPositionMask key=\"initialPositionMask\" leftStrut=\"YES\" rightStrut=\"YES\" topStrut=\"YES\" bottomStrut=\"YES\"/>\n            <rect key=\"contentRect\" x=\"196\" y=\"240\" width=\"510\" height=\"480\"/>\n            <rect key=\"screenRect\" x=\"0.0\" y=\"0.0\" width=\"1920\" height=\"1177\"/>\n            <view key=\"contentView\" misplaced=\"YES\" id=\"wmh-bE-mWF\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"510\" height=\"480\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n                <subviews>\n                    <webView misplaced=\"YES\" id=\"533\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"510\" height=\"480\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <webPreferences key=\"preferences\" defaultFontSize=\"12\" defaultFixedFontSize=\"12\" plugInsEnabled=\"NO\" javaEnabled=\"NO\" javaScriptCanOpenWindowsAutomatically=\"NO\" allowsAnimatedImages=\"NO\" allowsAnimatedImageLooping=\"NO\"/>\n                        <connections>\n                            <outlet property=\"UIDelegate\" destination=\"494\" id=\"539\"/>\n                            <outlet property=\"downloadDelegate\" destination=\"494\" id=\"535\"/>\n                            <outlet property=\"frameLoadDelegate\" destination=\"494\" id=\"536\"/>\n                            <outlet property=\"policyDelegate\" destination=\"494\" id=\"537\"/>\n                            <outlet property=\"resourceLoadDelegate\" destination=\"494\" id=\"538\"/>\n                        </connections>\n                    </webView>\n                </subviews>\n            </view>\n            <point key=\"canvasLocation\" x=\"29\" y=\"-337\"/>\n        </window>\n    </objects>\n</document>\n"
  },
  {
    "path": "DiskTree/tree.c",
    "content": "/*\n  Recursive version of du for DiskUsage Applet.\n  (c) John Holdsworth 2011\n\n  Usage is:\n\n$ tree <MIN_FILE> <UTIME> dirpath1 [dirpath2..] <output file/- for stdout>\n\n  Format output is:\n\n+dirname\n+subdir name\n!large file name\n-large file size\n#file count if non-zero\n-subdir usage in bytes\n+other subdir name\n-other subdir usage\n-dir usage in bytes\n-total usage of \"dirpath1\" above\n\n*/\n\n#include <sys/signal.h>\n#include <sys/stat.h>\n#include <unistd.h>\n#include <dirent.h>\n#include <string.h>\n#include <stdlib.h>\n#include <stdio.h>\n#include <time.h>\n\ntypedef unsigned long long usage_t;\n\nstatic int MIN_FILE;\nstatic time_t AFTER;\nstatic FILE *out;\n\nstatic usage_t du( char *dir, int level ) {\n  usage_t total = 0;\n\n  if ( chdir( dir ) == 0 ) { \n    int fcount = 0;\n    struct dirent *ent;\n\n    DIR *d = opendir( \".\" );\n    if ( !d ) perror( dir );\n\n    while ( d && (ent = readdir( d )) ) {\n      char *name = ent->d_name;\n      struct stat st;\n\n      if ( strcmp( name, \".\" ) != 0 && strcmp( name, \"..\" ) != 0 &&\n\t   lstat( name, &st ) == 0 && st.st_size ) {\n\n\tusage_t fsize = st.st_size;\n\ttotal += fsize;\n\n\t//fprintf( out, \"%s %lu %u %x\\n\", ent->d_name,\n\t//       st.st_size, (int)sizeof st.st_size, st.st_mode );\n\tif ( S_ISDIR( st.st_mode ) && !S_ISLNK( st.st_mode ) ) {\n\t  fprintf( out, \"+%s\\n\", name );\n\t  total += du( name, level+1 );\n\t  //system( \"pwd\" );\n\t}\n\telse {\n\t  if ( fsize > MIN_FILE && (AFTER == 0 || st.st_mtime > AFTER ||\n\t\t\t\t    st.st_atime && st.st_atime < AFTER ) )\n\t      fprintf( out, \"!%s\\n@%u\\n-%llu\\n\", name, \n\t\t       (unsigned)st.st_atime, fsize );\n\t  if ( name[0] != '.' ) //&& strcmp( name, \"sentinel\" ) != 0 )\n\t\tfcount++;\n\t}\n      }\n    }\n\n    if ( fcount )\n\tfprintf( out, \"#%d\\n\", fcount );\n    if ( chdir( \"..\" ) != 0 )\n      perror( dir );\n    if ( d )\n      closedir( d ); \n  }\n  else\n\t  perror( dir );\n\n  fprintf( out, \"-%llu\\n\", total );\n  return total;\n}\n\nstatic void catcher( int sig ) {\n  fprintf( stderr, \"Signal %d\\n\", sig );\n  exit(1);\n}\n\nint main( int argc, char *argv[] ) {\n  int i;\n  MIN_FILE = atoi( argv[1] );\n  AFTER = atoi( argv[2] );\n  out = argv[argc-1][0] == '-' ? stdout : fopen( argv[argc-1], \"w\" );\n  signal( SIGPIPE, catcher );\n  for ( i=3 ; i<argc-1 ; i++ )\n    du( argv[i], 1 );\n  fclose( out );\n  return 0;\n}\n"
  },
  {
    "path": "InjectionAppCode/.idea/InjectionAppCode.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\">\n  <component name=\"NewModuleRootManager\" inherit-compiler-output=\"true\">\n    <exclude-output />\n    <content url=\"file://$MODULE_DIR$\" />\n    <orderEntry type=\"inheritedJdk\" />\n    <orderEntry type=\"sourceFolder\" forTests=\"false\" />\n  </component>\n</module>"
  },
  {
    "path": "InjectionAppCode/.idea/ant.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\" />\n\n"
  },
  {
    "path": "InjectionAppCode/.idea/compiler.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"CompilerConfiguration\">\n    <option name=\"DEFAULT_COMPILER\" value=\"Javac\" />\n    <resourceExtensions />\n    <wildcardResourcePatterns>\n      <entry name=\"!?*.java\" />\n      <entry name=\"!?*.form\" />\n      <entry name=\"!?*.class\" />\n      <entry name=\"!?*.groovy\" />\n      <entry name=\"!?*.scala\" />\n      <entry name=\"!?*.flex\" />\n      <entry name=\"!?*.kt\" />\n      <entry name=\"!?*.clj\" />\n    </wildcardResourcePatterns>\n    <annotationProcessing>\n      <profile default=\"true\" name=\"Default\" enabled=\"false\">\n        <processorPath useClasspath=\"true\" />\n      </profile>\n    </annotationProcessing>\n  </component>\n</project>\n\n"
  },
  {
    "path": "InjectionAppCode/.idea/copyright/profiles_settings.xml",
    "content": "<component name=\"CopyrightManager\">\n  <settings default=\"\" />\n</component>"
  },
  {
    "path": "InjectionAppCode/.idea/dictionaries/johnholdsworth.xml",
    "content": "<component name=\"ProjectDictionaryState\">\n  <dictionary name=\"johnholdsworth\" />\n</component>"
  },
  {
    "path": "InjectionAppCode/.idea/encodings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"Encoding\" useUTFGuessing=\"true\" native2AsciiForPropertiesFiles=\"false\">\n    <file url=\"PROJECT\" charset=\"UTF-8\" />\n  </component>\n</project>"
  },
  {
    "path": "InjectionAppCode/.idea/misc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"EntryPointsManager\">\n    <entry_points version=\"2.0\" />\n  </component>\n  <component name=\"ProjectRootManager\" version=\"2\" languageLevel=\"JDK_1_6\" assert-keyword=\"true\" jdk-15=\"true\" project-jdk-name=\"IDEA IC-123.169\" project-jdk-type=\"IDEA JDK\">\n    <output url=\"file://$PROJECT_DIR$/out\" />\n  </component>\n</project>\n\n"
  },
  {
    "path": "InjectionAppCode/.idea/modules.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n      <module fileurl=\"file://$PROJECT_DIR$/Injection.iml\" filepath=\"$PROJECT_DIR$/Injection.iml\" />\n      <module fileurl=\"file://$PROJECT_DIR$/.idea/InjectionAppCode.iml\" filepath=\"$PROJECT_DIR$/.idea/InjectionAppCode.iml\" />\n    </modules>\n  </component>\n</project>"
  },
  {
    "path": "InjectionAppCode/.idea/scopes/scope_settings.xml",
    "content": "<component name=\"DependencyValidationManager\">\n  <state>\n    <option name=\"SKIP_IMPORT_STATEMENTS\" value=\"false\" />\n  </state>\n</component>"
  },
  {
    "path": "InjectionAppCode/.idea/uiDesigner.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"Palette2\">\n    <group name=\"Swing\">\n      <item class=\"com.intellij.uiDesigner.HSpacer\" tooltip-text=\"Horizontal Spacer\" icon=\"/com/intellij/uiDesigner/icons/hspacer.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"1\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"com.intellij.uiDesigner.VSpacer\" tooltip-text=\"Vertical Spacer\" icon=\"/com/intellij/uiDesigner/icons/vspacer.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"1\" anchor=\"0\" fill=\"2\" />\n      </item>\n      <item class=\"javax.swing.JPanel\" icon=\"/com/intellij/uiDesigner/icons/panel.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JScrollPane\" icon=\"/com/intellij/uiDesigner/icons/scrollPane.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"7\" hsize-policy=\"7\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JButton\" icon=\"/com/intellij/uiDesigner/icons/button.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"0\" fill=\"1\" />\n        <initial-values>\n          <property name=\"text\" value=\"Button\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JRadioButton\" icon=\"/com/intellij/uiDesigner/icons/radioButton.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"RadioButton\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JCheckBox\" icon=\"/com/intellij/uiDesigner/icons/checkBox.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"CheckBox\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JLabel\" icon=\"/com/intellij/uiDesigner/icons/label.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"0\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"Label\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JTextField\" icon=\"/com/intellij/uiDesigner/icons/textField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JPasswordField\" icon=\"/com/intellij/uiDesigner/icons/passwordField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JFormattedTextField\" icon=\"/com/intellij/uiDesigner/icons/formattedTextField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTextArea\" icon=\"/com/intellij/uiDesigner/icons/textArea.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTextPane\" icon=\"/com/intellij/uiDesigner/icons/textPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JEditorPane\" icon=\"/com/intellij/uiDesigner/icons/editorPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JComboBox\" icon=\"/com/intellij/uiDesigner/icons/comboBox.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"2\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JTable\" icon=\"/com/intellij/uiDesigner/icons/table.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JList\" icon=\"/com/intellij/uiDesigner/icons/list.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"2\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTree\" icon=\"/com/intellij/uiDesigner/icons/tree.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTabbedPane\" icon=\"/com/intellij/uiDesigner/icons/tabbedPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"200\" height=\"200\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JSplitPane\" icon=\"/com/intellij/uiDesigner/icons/splitPane.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"200\" height=\"200\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JSpinner\" icon=\"/com/intellij/uiDesigner/icons/spinner.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JSlider\" icon=\"/com/intellij/uiDesigner/icons/slider.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JSeparator\" icon=\"/com/intellij/uiDesigner/icons/separator.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JProgressBar\" icon=\"/com/intellij/uiDesigner/icons/progressbar.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JToolBar\" icon=\"/com/intellij/uiDesigner/icons/toolbar.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\">\n          <preferred-size width=\"-1\" height=\"20\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JToolBar$Separator\" icon=\"/com/intellij/uiDesigner/icons/toolbarSeparator.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"0\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JScrollBar\" icon=\"/com/intellij/uiDesigner/icons/scrollbar.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"0\" anchor=\"0\" fill=\"2\" />\n      </item>\n    </group>\n  </component>\n</project>\n\n"
  },
  {
    "path": "InjectionAppCode/.idea/workspace.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ChangeListManager\">\n    <list default=\"true\" id=\"2c7bfba7-49b7-43bb-b292-792839a21ef6\" name=\"Default\" comment=\"\" />\n    <ignored path=\"Injection.iws\" />\n    <ignored path=\".idea/workspace.xml\" />\n    <ignored path=\"$PROJECT_DIR$/out/\" />\n    <option name=\"EXCLUDED_CONVERTED_TO_IGNORED\" value=\"true\" />\n    <option name=\"TRACKING_ENABLED\" value=\"true\" />\n    <option name=\"SHOW_DIALOG\" value=\"false\" />\n    <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\n    <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\n    <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\n  </component>\n  <component name=\"ChangesViewManager\" flattened_view=\"true\" show_ignored=\"false\" />\n  <component name=\"CreatePatchCommitExecutor\">\n    <option name=\"PATCH_PATH\" value=\"\" />\n  </component>\n  <component name=\"DebuggerManager\">\n    <breakpoint_any default_suspend_policy=\"SuspendAll\" default_condition_enabled=\"true\" converted=\"true\">\n      <breakpoint>\n        <option name=\"NOTIFY_CAUGHT\" value=\"true\" />\n        <option name=\"NOTIFY_UNCAUGHT\" value=\"true\" />\n        <option name=\"ENABLED\" value=\"false\" />\n        <option name=\"LOG_ENABLED\" value=\"false\" />\n        <option name=\"LOG_EXPRESSION_ENABLED\" value=\"false\" />\n        <option name=\"SUSPEND_POLICY\" value=\"SuspendAll\" />\n        <option name=\"SUSPEND\" value=\"true\" />\n        <option name=\"COUNT_FILTER_ENABLED\" value=\"false\" />\n        <option name=\"COUNT_FILTER\" value=\"0\" />\n        <option name=\"CONDITION_ENABLED\" value=\"true\" />\n        <option name=\"CLASS_FILTERS_ENABLED\" value=\"false\" />\n        <option name=\"INSTANCE_FILTERS_ENABLED\" value=\"false\" />\n        <option name=\"CONDITION\" value=\"\" />\n        <option name=\"LOG_MESSAGE\" value=\"\" />\n      </breakpoint>\n      <breakpoint>\n        <option name=\"NOTIFY_CAUGHT\" value=\"true\" />\n        <option name=\"NOTIFY_UNCAUGHT\" value=\"true\" />\n        <option name=\"ENABLED\" value=\"false\" />\n        <option name=\"LOG_ENABLED\" value=\"false\" />\n        <option name=\"LOG_EXPRESSION_ENABLED\" value=\"false\" />\n        <option name=\"SUSPEND_POLICY\" value=\"SuspendAll\" />\n        <option name=\"SUSPEND\" value=\"true\" />\n        <option name=\"COUNT_FILTER_ENABLED\" value=\"false\" />\n        <option name=\"COUNT_FILTER\" value=\"0\" />\n        <option name=\"CONDITION_ENABLED\" value=\"true\" />\n        <option name=\"CLASS_FILTERS_ENABLED\" value=\"false\" />\n        <option name=\"INSTANCE_FILTERS_ENABLED\" value=\"false\" />\n        <option name=\"CONDITION\" value=\"\" />\n        <option name=\"LOG_MESSAGE\" value=\"\" />\n      </breakpoint>\n    </breakpoint_any>\n    <ui_properties converted=\"true\" />\n    <breakpoint_rules converted=\"true\" />\n  </component>\n  <component name=\"ExecutionTargetManager\" SELECTED_TARGET=\"default_target\" />\n  <component name=\"FavoritesManager\">\n    <favorites_list name=\"Injection\" />\n  </component>\n  <component name=\"FileEditorManager\">\n    <leaf SIDE_TABS_SIZE_LIMIT_KEY=\"300\">\n      <file leaf-file-name=\"plugin.xml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/META-INF/plugin.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"-7.5\">\n              <caret line=\"12\" column=\"33\" selection-start-line=\"12\" selection-start-column=\"26\" selection-end-line=\"12\" selection-end-column=\"26\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"InjectionAppCode.iml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/.idea/InjectionAppCode.iml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"0.0\">\n              <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"InjectionAppAction.java\" pinned=\"false\" current-in-tab=\"true\">\n        <entry file=\"file://$PROJECT_DIR$/src/com/injectionforxcode/InjectionAppAction.java\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"0.46925566\">\n              <caret line=\"36\" column=\"46\" selection-start-line=\"36\" selection-start-column=\"25\" selection-end-line=\"36\" selection-end-column=\"25\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"misc.xml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/.idea/misc.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"-0.0\">\n              <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"modules.xml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/.idea/modules.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"-0.0\">\n              <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"uiDesigner.xml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/.idea/uiDesigner.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"-0.0\">\n              <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"workspace.xml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/.idea/workspace.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"-0.0\">\n              <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"ant.xml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/.idea/ant.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"-0.0\">\n              <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"compiler.xml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/.idea/compiler.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"-0.0\">\n              <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"profiles_settings.xml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/.idea/copyright/profiles_settings.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state vertical-scroll-proportion=\"-0.0\">\n              <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n              <folding />\n            </state>\n          </provider>\n        </entry>\n      </file>\n    </leaf>\n  </component>\n  <component name=\"FindManager\">\n    <FindUsagesManager>\n      <setting name=\"OPEN_NEW_TAB\" value=\"false\" />\n    </FindUsagesManager>\n  </component>\n  <component name=\"GradleLocalSettings\">\n    <option name=\"externalProjectsViewState\">\n      <projects_view />\n    </option>\n  </component>\n  <component name=\"IdeDocumentHistory\">\n    <option name=\"CHANGED_PATHS\">\n      <list>\n        <option value=\"$PROJECT_DIR$/src/com/injectionforxcode/InjectionAction.java\" />\n        <option value=\"$PROJECT_DIR$/META-INF/plugin.xml\" />\n        <option value=\"$PROJECT_DIR$/src/com/injectionforxcode/InjectionAppAction.java\" />\n      </list>\n    </option>\n  </component>\n  <component name=\"ProjectFrameBounds\">\n    <option name=\"x\" value=\"110\" />\n    <option name=\"y\" value=\"104\" />\n    <option name=\"width\" value=\"1462\" />\n    <option name=\"height\" value=\"1024\" />\n  </component>\n  <component name=\"ProjectInspectionProfilesVisibleTreeState\">\n    <entry key=\"Project Default\">\n      <profile-state>\n        <expanded-state>\n          <State>\n            <id />\n          </State>\n          <State>\n            <id>Plugin DevKit</id>\n          </State>\n        </expanded-state>\n        <selected-state>\n          <State>\n            <id>PluginXmlValidity</id>\n          </State>\n        </selected-state>\n      </profile-state>\n    </entry>\n  </component>\n  <component name=\"ProjectLevelVcsManager\" settingsEditedManually=\"false\">\n    <OptionsSetting value=\"true\" id=\"Add\" />\n    <OptionsSetting value=\"true\" id=\"Remove\" />\n    <OptionsSetting value=\"true\" id=\"Checkout\" />\n    <OptionsSetting value=\"true\" id=\"Update\" />\n    <OptionsSetting value=\"true\" id=\"Status\" />\n    <OptionsSetting value=\"true\" id=\"Edit\" />\n    <ConfirmationsSetting value=\"0\" id=\"Add\" />\n    <ConfirmationsSetting value=\"0\" id=\"Remove\" />\n  </component>\n  <component name=\"ProjectReloadState\">\n    <option name=\"STATE\" value=\"0\" />\n  </component>\n  <component name=\"ProjectView\">\n    <navigator currentView=\"ProjectPane\" proportions=\"\" version=\"1\">\n      <flattenPackages />\n      <showMembers />\n      <showModules />\n      <showLibraryContents />\n      <hideEmptyPackages />\n      <abbreviatePackageNames />\n      <autoscrollToSource />\n      <autoscrollFromSource />\n      <sortByType />\n      <manualOrder />\n      <foldersAlwaysOnTop value=\"true\" />\n    </navigator>\n    <panes>\n      <pane id=\"Scope\" />\n      <pane id=\"ProjectPane\">\n        <subPane>\n          <PATH>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode\" />\n            </PATH_ELEMENT>\n          </PATH>\n          <PATH>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode\" />\n            </PATH_ELEMENT>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode\" />\n            </PATH_ELEMENT>\n          </PATH>\n          <PATH>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode\" />\n            </PATH_ELEMENT>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode\" />\n            </PATH_ELEMENT>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"src\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode\" />\n            </PATH_ELEMENT>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"injectionforxcode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode\" />\n            </PATH_ELEMENT>\n          </PATH>\n          <PATH>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode\" />\n            </PATH_ELEMENT>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode\" />\n            </PATH_ELEMENT>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"META-INF\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode\" />\n            </PATH_ELEMENT>\n          </PATH>\n          <PATH>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode\" />\n            </PATH_ELEMENT>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\"InjectionAppCode\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode\" />\n            </PATH_ELEMENT>\n            <PATH_ELEMENT>\n              <option name=\"myItemId\" value=\".idea\" />\n              <option name=\"myItemType\" value=\"com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode\" />\n            </PATH_ELEMENT>\n          </PATH>\n        </subPane>\n      </pane>\n      <pane id=\"PackagesPane\" />\n      <pane id=\"Scratches\" />\n    </panes>\n  </component>\n  <component name=\"PropertiesComponent\">\n    <property name=\"GoToFile.includeJavaFiles\" value=\"false\" />\n    <property name=\"project.structure.last.edited\" value=\"Modules\" />\n    <property name=\"project.structure.proportion\" value=\"0.0\" />\n    <property name=\"options.splitter.main.proportions\" value=\"0.3\" />\n    <property name=\"MemberChooser.sorted\" value=\"false\" />\n    <property name=\"options.lastSelected\" value=\"preferences.sourceCode\" />\n    <property name=\"recentsLimit\" value=\"5\" />\n    <property name=\"last_opened_file_path\" value=\"$PROJECT_DIR$/../idea\" />\n    <property name=\"project.structure.side.proportion\" value=\"0.2\" />\n    <property name=\"MemberChooser.copyJavadoc\" value=\"false\" />\n    <property name=\"GoToClass.toSaveIncludeLibraries\" value=\"false\" />\n    <property name=\"restartRequiresConfirmation\" value=\"true\" />\n    <property name=\"MemberChooser.showClasses\" value=\"true\" />\n    <property name=\"GoToClass.includeLibraries\" value=\"false\" />\n    <property name=\"options.splitter.details.proportions\" value=\"0.2\" />\n    <property name=\"options.searchVisible\" value=\"true\" />\n    <property name=\"dynamic.classpath\" value=\"false\" />\n  </component>\n  <component name=\"RecentsManager\">\n    <key name=\"CopyFile.RECENT_KEYS\">\n      <recent name=\"$PROJECT_DIR$/src/com/injectionforxcode\" />\n    </key>\n    <key name=\"MoveFile.RECENT_KEYS\">\n      <recent name=\"$PROJECT_DIR$/META-INF\" />\n      <recent name=\"$PROJECT_DIR$/src\" />\n    </key>\n  </component>\n  <component name=\"RunManager\" selected=\"Plugin.Unnamed\">\n    <configuration default=\"false\" name=\"All in Injection\" type=\"JUnit\" factoryName=\"JUnit\" temporary=\"true\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <module name=\"Injection\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" value=\"\" />\n      <option name=\"PACKAGE_NAME\" value=\"\" />\n      <option name=\"MAIN_CLASS_NAME\" value=\"\" />\n      <option name=\"METHOD_NAME\" value=\"\" />\n      <option name=\"TEST_OBJECT\" value=\"package\" />\n      <option name=\"VM_PARAMETERS\" value=\"-ea\" />\n      <option name=\"PARAMETERS\" value=\"\" />\n      <option name=\"WORKING_DIRECTORY\" value=\"file://$PROJECT_DIR$\" />\n      <option name=\"ENV_VARIABLES\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"moduleWithDependencies\" />\n      </option>\n      <envs />\n      <patterns />\n      <RunnerSettings RunnerId=\"Debug\">\n        <option name=\"DEBUG_PORT\" value=\"\" />\n        <option name=\"TRANSPORT\" value=\"0\" />\n        <option name=\"LOCAL\" value=\"true\" />\n      </RunnerSettings>\n      <RunnerSettings RunnerId=\"Run\" />\n      <ConfigurationWrapper RunnerId=\"Debug\" />\n      <ConfigurationWrapper RunnerId=\"Run\" />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"#org.jetbrains.idea.devkit.run.PluginConfigurationType\" factoryName=\"Plugin\">\n      <module name=\"Injection\" />\n      <option name=\"VM_PARAMETERS\" value=\"-Xmx512m -Xms256m -XX:MaxPermSize=250m\" />\n      <option name=\"PROGRAM_PARAMETERS\" />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"AndroidRunConfigurationType\" factoryName=\"Android Application\">\n      <module name=\"\" />\n      <option name=\"ACTIVITY_CLASS\" value=\"\" />\n      <option name=\"MODE\" value=\"default_activity\" />\n      <option name=\"DEPLOY\" value=\"true\" />\n      <option name=\"ARTIFACT_NAME\" value=\"\" />\n      <option name=\"TARGET_SELECTION_MODE\" value=\"EMULATOR\" />\n      <option name=\"USE_LAST_SELECTED_DEVICE\" value=\"false\" />\n      <option name=\"PREFERRED_AVD\" value=\"\" />\n      <option name=\"USE_COMMAND_LINE\" value=\"true\" />\n      <option name=\"COMMAND_LINE\" value=\"\" />\n      <option name=\"WIPE_USER_DATA\" value=\"false\" />\n      <option name=\"DISABLE_BOOT_ANIMATION\" value=\"false\" />\n      <option name=\"NETWORK_SPEED\" value=\"full\" />\n      <option name=\"NETWORK_LATENCY\" value=\"none\" />\n      <option name=\"CLEAR_LOGCAT\" value=\"false\" />\n      <option name=\"SHOW_LOGCAT_AUTOMATICALLY\" value=\"true\" />\n      <option name=\"FILTER_LOGCAT_AUTOMATICALLY\" value=\"true\" />\n      <option name=\"SELECTED_CLOUD_MATRIX_CONFIGURATION_ID\" value=\"0\" />\n      <option name=\"SELECTED_CLOUD_MATRIX_PROJECT_ID\" value=\"\" />\n      <option name=\"SELECTED_CLOUD_DEVICE_CONFIGURATION_ID\" value=\"0\" />\n      <option name=\"SELECTED_CLOUD_DEVICE_PROJECT_ID\" value=\"\" />\n      <option name=\"IS_VALID_CLOUD_MATRIX_SELECTION\" value=\"false\" />\n      <option name=\"INVALID_CLOUD_MATRIX_SELECTION_ERROR\" value=\"\" />\n      <option name=\"IS_VALID_CLOUD_DEVICE_SELECTION\" value=\"false\" />\n      <option name=\"INVALID_CLOUD_DEVICE_SELECTION_ERROR\" value=\"\" />\n      <option name=\"CLOUD_DEVICE_SERIAL_NUMBER\" value=\"\" />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"AndroidTestRunConfigurationType\" factoryName=\"Android Tests\">\n      <module name=\"\" />\n      <option name=\"TESTING_TYPE\" value=\"0\" />\n      <option name=\"INSTRUMENTATION_RUNNER_CLASS\" value=\"\" />\n      <option name=\"METHOD_NAME\" value=\"\" />\n      <option name=\"CLASS_NAME\" value=\"\" />\n      <option name=\"PACKAGE_NAME\" value=\"\" />\n      <option name=\"TARGET_SELECTION_MODE\" value=\"EMULATOR\" />\n      <option name=\"USE_LAST_SELECTED_DEVICE\" value=\"false\" />\n      <option name=\"PREFERRED_AVD\" value=\"\" />\n      <option name=\"USE_COMMAND_LINE\" value=\"true\" />\n      <option name=\"COMMAND_LINE\" value=\"\" />\n      <option name=\"WIPE_USER_DATA\" value=\"false\" />\n      <option name=\"DISABLE_BOOT_ANIMATION\" value=\"false\" />\n      <option name=\"NETWORK_SPEED\" value=\"full\" />\n      <option name=\"NETWORK_LATENCY\" value=\"none\" />\n      <option name=\"CLEAR_LOGCAT\" value=\"false\" />\n      <option name=\"SHOW_LOGCAT_AUTOMATICALLY\" value=\"true\" />\n      <option name=\"FILTER_LOGCAT_AUTOMATICALLY\" value=\"true\" />\n      <option name=\"SELECTED_CLOUD_MATRIX_CONFIGURATION_ID\" value=\"0\" />\n      <option name=\"SELECTED_CLOUD_MATRIX_PROJECT_ID\" value=\"\" />\n      <option name=\"SELECTED_CLOUD_DEVICE_CONFIGURATION_ID\" value=\"0\" />\n      <option name=\"SELECTED_CLOUD_DEVICE_PROJECT_ID\" value=\"\" />\n      <option name=\"IS_VALID_CLOUD_MATRIX_SELECTION\" value=\"false\" />\n      <option name=\"INVALID_CLOUD_MATRIX_SELECTION_ERROR\" value=\"\" />\n      <option name=\"IS_VALID_CLOUD_DEVICE_SELECTION\" value=\"false\" />\n      <option name=\"INVALID_CLOUD_DEVICE_SELECTION_ERROR\" value=\"\" />\n      <option name=\"CLOUD_DEVICE_SERIAL_NUMBER\" value=\"\" />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"Applet\" factoryName=\"Applet\">\n      <module />\n      <option name=\"HTML_USED\" value=\"false\" />\n      <option name=\"WIDTH\" value=\"400\" />\n      <option name=\"HEIGHT\" value=\"300\" />\n      <option name=\"POLICY_FILE\" value=\"$APPLICATION_HOME_DIR$/bin/appletviewer.policy\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"Application\" factoryName=\"Application\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"VM_PARAMETERS\" />\n      <option name=\"PROGRAM_PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" value=\"$PROJECT_DIR$\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"ENABLE_SWING_INSPECTOR\" value=\"false\" />\n      <option name=\"ENV_VARIABLES\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <module name=\"\" />\n      <envs />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"GradleRunConfiguration\" factoryName=\"Gradle\">\n      <ExternalSystemSettings>\n        <option name=\"executionName\" />\n        <option name=\"externalProjectPath\" />\n        <option name=\"externalSystemIdString\" value=\"GRADLE\" />\n        <option name=\"scriptParameters\" />\n        <option name=\"taskDescriptions\">\n          <list />\n        </option>\n        <option name=\"taskNames\">\n          <list />\n        </option>\n        <option name=\"vmOptions\" />\n      </ExternalSystemSettings>\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"GriffonRunConfigurationType\" factoryName=\"Griffon\">\n      <module name=\"\" />\n      <setting name=\"vmparams\" value=\"\" />\n      <setting name=\"cmdLine\" value=\"run-app\" />\n      <setting name=\"depsClasspath\" value=\"true\" />\n      <setting name=\"passParentEnv\" value=\"true\" />\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"GroovyScriptRunConfiguration\" factoryName=\"Groovy\">\n      <module name=\"\" />\n      <setting name=\"path\" value=\"\" />\n      <setting name=\"vmparams\" value=\"\" />\n      <setting name=\"params\" value=\"\" />\n      <setting name=\"workDir\" value=\"\" />\n      <setting name=\"debug\" value=\"false\" />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"JUnit\" factoryName=\"JUnit\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <module name=\"\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"PACKAGE_NAME\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"METHOD_NAME\" />\n      <option name=\"TEST_OBJECT\" value=\"class\" />\n      <option name=\"VM_PARAMETERS\" value=\"-ea\" />\n      <option name=\"PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" value=\"$PROJECT_DIR$\" />\n      <option name=\"ENV_VARIABLES\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"moduleWithDependencies\" />\n      </option>\n      <envs />\n      <patterns />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"JUnitTestDiscovery\" factoryName=\"JUnit Test Discovery\" changeList=\"All\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <module name=\"\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"PACKAGE_NAME\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"METHOD_NAME\" />\n      <option name=\"TEST_OBJECT\" value=\"class\" />\n      <option name=\"VM_PARAMETERS\" />\n      <option name=\"PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" />\n      <option name=\"ENV_VARIABLES\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"singleModule\" />\n      </option>\n      <envs />\n      <patterns />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"JarApplication\" factoryName=\"JAR Application\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <envs />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"Java Scratch\" factoryName=\"Java Scratch\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <option name=\"SCRATCH_FILE_ID\" value=\"0\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"VM_PARAMETERS\" />\n      <option name=\"PROGRAM_PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"ENABLE_SWING_INSPECTOR\" value=\"false\" />\n      <option name=\"ENV_VARIABLES\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <module name=\"\" />\n      <envs />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"JetRunConfigurationType\" factoryName=\"Kotlin\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"VM_PARAMETERS\" />\n      <option name=\"PROGRAM_PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <module name=\"Injection\" />\n      <envs />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"Remote\" factoryName=\"Remote\">\n      <option name=\"USE_SOCKET_TRANSPORT\" value=\"true\" />\n      <option name=\"SERVER_MODE\" value=\"false\" />\n      <option name=\"SHMEM_ADDRESS\" value=\"javadebug\" />\n      <option name=\"HOST\" value=\"localhost\" />\n      <option name=\"PORT\" value=\"5005\" />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"TestNG\" factoryName=\"TestNG\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <module name=\"\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"SUITE_NAME\" />\n      <option name=\"PACKAGE_NAME\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"METHOD_NAME\" />\n      <option name=\"GROUP_NAME\" />\n      <option name=\"TEST_OBJECT\" value=\"CLASS\" />\n      <option name=\"VM_PARAMETERS\" value=\"-ea\" />\n      <option name=\"PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" value=\"$PROJECT_DIR$\" />\n      <option name=\"OUTPUT_DIRECTORY\" />\n      <option name=\"ANNOTATION_TYPE\" />\n      <option name=\"ENV_VARIABLES\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"moduleWithDependencies\" />\n      </option>\n      <option name=\"USE_DEFAULT_REPORTERS\" value=\"false\" />\n      <option name=\"PROPERTIES_FILE\" />\n      <envs />\n      <properties />\n      <listeners />\n      <method />\n    </configuration>\n    <configuration default=\"true\" type=\"TestNGTestDiscovery\" factoryName=\"TestNG Test Discovery\" changeList=\"All\">\n      <extension name=\"coverage\" enabled=\"false\" merge=\"false\" sample_coverage=\"true\" runner=\"idea\" />\n      <module name=\"\" />\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"SUITE_NAME\" />\n      <option name=\"PACKAGE_NAME\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"METHOD_NAME\" />\n      <option name=\"GROUP_NAME\" />\n      <option name=\"TEST_OBJECT\" value=\"CLASS\" />\n      <option name=\"VM_PARAMETERS\" />\n      <option name=\"PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" />\n      <option name=\"OUTPUT_DIRECTORY\" />\n      <option name=\"ANNOTATION_TYPE\" />\n      <option name=\"ENV_VARIABLES\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"singleModule\" />\n      </option>\n      <option name=\"USE_DEFAULT_REPORTERS\" value=\"false\" />\n      <option name=\"PROPERTIES_FILE\" />\n      <envs />\n      <properties />\n      <listeners />\n      <method />\n    </configuration>\n    <configuration default=\"false\" name=\"Unnamed\" type=\"#org.jetbrains.idea.devkit.run.PluginConfigurationType\" factoryName=\"Plugin\">\n      <module name=\"Injection\" />\n      <option name=\"VM_PARAMETERS\" value=\"-Xmx512m -Xms256m -XX:MaxPermSize=250m\" />\n      <option name=\"PROGRAM_PARAMETERS\" value=\"\" />\n      <alternative-path path=\"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home\" alternative-path-enabled=\"true\" />\n      <log_file path=\"$USER_HOME$/Library/Caches/IdeaIC12/plugins-sandbox/system/log/idea.log\" checked=\"false\" skipped=\"true\" show_all=\"false\" alias=\"IDEA LOG\" />\n      <RunnerSettings RunnerId=\"Debug\">\n        <option name=\"DEBUG_PORT\" value=\"\" />\n        <option name=\"TRANSPORT\" value=\"0\" />\n        <option name=\"LOCAL\" value=\"true\" />\n      </RunnerSettings>\n      <RunnerSettings RunnerId=\"Run\" />\n      <ConfigurationWrapper RunnerId=\"Debug\" />\n      <ConfigurationWrapper RunnerId=\"Run\" />\n      <method />\n    </configuration>\n    <list size=\"2\">\n      <item index=\"0\" class=\"java.lang.String\" itemvalue=\"Plugin.Unnamed\" />\n      <item index=\"1\" class=\"java.lang.String\" itemvalue=\"JUnit.All in Injection\" />\n    </list>\n    <recent_temporary>\n      <list size=\"1\">\n        <item index=\"0\" class=\"java.lang.String\" itemvalue=\"JUnit.All in Injection\" />\n      </list>\n    </recent_temporary>\n    <configuration name=\"&lt;template&gt;\" type=\"WebApp\" default=\"true\" selected=\"false\">\n      <Host>localhost</Host>\n      <Port>5050</Port>\n    </configuration>\n  </component>\n  <component name=\"ShelveChangesManager\" show_recycled=\"false\" />\n  <component name=\"SvnConfiguration\" myUseAcceleration=\"nothing\">\n    <configuration />\n  </component>\n  <component name=\"TaskManager\">\n    <task active=\"true\" id=\"Default\" summary=\"Default task\">\n      <changelist id=\"2c7bfba7-49b7-43bb-b292-792839a21ef6\" name=\"Default\" comment=\"\" />\n      <created>1361704295190</created>\n      <option name=\"number\" value=\"Default\" />\n      <updated>1361704295190</updated>\n    </task>\n    <servers />\n  </component>\n  <component name=\"ToolWindowManager\">\n    <frame x=\"110\" y=\"104\" width=\"1462\" height=\"1024\" extended-state=\"0\" />\n    <editor active=\"false\" />\n    <layout>\n      <window_info id=\"Palette\" active=\"false\" anchor=\"right\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"3\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"TODO\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"6\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Messages\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.32879582\" sideWeight=\"0.4841109\" order=\"7\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Palette&#9;\" active=\"false\" anchor=\"left\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"2\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Event Log\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.3960177\" sideWeight=\"0.5111562\" order=\"7\" side_tool=\"true\" content_ui=\"tabs\" />\n      <window_info id=\"Maven Projects\" active=\"false\" anchor=\"right\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"3\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Version Control\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"7\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Run\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.32964602\" sideWeight=\"0.49763355\" order=\"2\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Terminal\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"7\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Designer\" active=\"false\" anchor=\"right\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"3\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Project\" active=\"false\" anchor=\"left\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"true\" show_stripe_button=\"true\" weight=\"0.31874144\" sideWeight=\"0.61465967\" order=\"0\" side_tool=\"false\" content_ui=\"combo\" />\n      <window_info id=\"Structure\" active=\"false\" anchor=\"left\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"true\" show_stripe_button=\"true\" weight=\"0.31874144\" sideWeight=\"0.3853403\" order=\"1\" side_tool=\"true\" content_ui=\"tabs\" />\n      <window_info id=\"Ant Build\" active=\"false\" anchor=\"right\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.25\" sideWeight=\"0.5\" order=\"1\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"UI Designer\" active=\"false\" anchor=\"left\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"3\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Favorites\" active=\"false\" anchor=\"left\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.30628803\" sideWeight=\"0.3329646\" order=\"2\" side_tool=\"true\" content_ui=\"tabs\" />\n      <window_info id=\"Debug\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.39895287\" sideWeight=\"0.49763355\" order=\"3\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Cvs\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.25\" sideWeight=\"0.5\" order=\"4\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Message\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"0\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Commander\" active=\"false\" anchor=\"right\" auto_hide=\"false\" internal_type=\"SLIDING\" type=\"SLIDING\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.4\" sideWeight=\"0.5\" order=\"0\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Application Servers\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"7\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Hierarchy\" active=\"false\" anchor=\"right\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.25\" sideWeight=\"0.5\" order=\"2\" side_tool=\"false\" content_ui=\"combo\" />\n      <window_info id=\"Changes\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"7\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Inspection\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.4\" sideWeight=\"0.5\" order=\"5\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"JetGradle\" active=\"false\" anchor=\"right\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.33\" sideWeight=\"0.5\" order=\"3\" side_tool=\"false\" content_ui=\"tabs\" />\n      <window_info id=\"Find\" active=\"false\" anchor=\"bottom\" auto_hide=\"false\" internal_type=\"DOCKED\" type=\"DOCKED\" visible=\"false\" show_stripe_button=\"true\" weight=\"0.32964602\" sideWeight=\"0.5\" order=\"1\" side_tool=\"false\" content_ui=\"tabs\" />\n    </layout>\n  </component>\n  <component name=\"Vcs.Log.UiProperties\">\n    <option name=\"RECENTLY_FILTERED_USER_GROUPS\">\n      <collection />\n    </option>\n    <option name=\"RECENTLY_FILTERED_BRANCH_GROUPS\">\n      <collection />\n    </option>\n  </component>\n  <component name=\"VcsContentAnnotationSettings\">\n    <option name=\"myLimit\" value=\"2678400000\" />\n  </component>\n  <component name=\"XDebuggerManager\">\n    <breakpoint-manager />\n    <watches-manager />\n  </component>\n  <component name=\"antWorkspaceConfiguration\">\n    <option name=\"IS_AUTOSCROLL_TO_SOURCE\" value=\"false\" />\n    <option name=\"FILTER_TARGETS\" value=\"false\" />\n  </component>\n  <component name=\"editorHistoryManager\">\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/util/ExecUtil.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"27\" column=\"22\" selection-start-line=\"27\" selection-start-column=\"22\" selection-end-line=\"27\" selection-end-column=\"22\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/META-INF/plugin.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/com/injectionforxcode/InjectionAppAction.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"15\" column=\"11\" selection-start-line=\"15\" selection-start-column=\"11\" selection-end-line=\"15\" selection-end-column=\"11\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/util/ExecUtil.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"27\" column=\"22\" selection-start-line=\"27\" selection-start-column=\"22\" selection-end-line=\"27\" selection-end-column=\"22\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/META-INF/plugin.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"36\" column=\"30\" selection-start-line=\"36\" selection-start-column=\"30\" selection-end-line=\"36\" selection-end-column=\"30\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/com/injectionforxcode/InjectionAppAction.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"15\" column=\"11\" selection-start-line=\"15\" selection-start-column=\"11\" selection-end-line=\"15\" selection-end-column=\"11\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/util/ExecUtil.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"27\" column=\"22\" selection-start-line=\"27\" selection-start-column=\"22\" selection-end-line=\"27\" selection-end-column=\"22\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/META-INF/plugin.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"3\" column=\"14\" selection-start-line=\"3\" selection-start-column=\"14\" selection-end-line=\"3\" selection-end-column=\"14\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/util/ExecUtil.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"27\" column=\"52\" selection-start-line=\"27\" selection-start-column=\"22\" selection-end-line=\"27\" selection-end-column=\"22\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/META-INF/plugin.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"22\" column=\"30\" selection-start-line=\"22\" selection-start-column=\"30\" selection-end-line=\"22\" selection-end-column=\"30\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/util/ExecUtil.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"27\" column=\"52\" selection-start-line=\"27\" selection-start-column=\"52\" selection-end-line=\"27\" selection-end-column=\"52\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/META-INF/plugin.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"22\" column=\"30\" selection-start-line=\"22\" selection-start-column=\"30\" selection-end-line=\"22\" selection-end-column=\"30\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/util/ExecUtil.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"27\" column=\"52\" selection-start-line=\"27\" selection-start-column=\"52\" selection-end-line=\"27\" selection-end-column=\"52\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/META-INF/plugin.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar:///Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home/src.jar!/src/java/net/SocketAddress.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"22\" column=\"22\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar:///Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home/src.jar!/src/java/lang/Thread.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"230\" column=\"28\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/openapi/project/Project.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.73630136\">\n          <caret line=\"44\" column=\"9\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar:///Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home/src.jar!/src/java/io/OutputStream.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"56\" column=\"16\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar:///Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home/src.jar!/src/java/io/BufferedReader.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"360\" column=\"18\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar:///Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home/src.jar!/src/java/io/InputStream.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"80\" column=\"15\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/openapi/actionSystem/PlatformDataKeys.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"7\" column=\"104\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/openapi/actionSystem/AnActionEvent.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"6\" column=\"26\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar:///Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home/src.jar!/src/java/net/ServerSocket.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.33333334\">\n          <caret line=\"309\" column=\"16\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/openapi/actionSystem/LangDataKeys.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"12\" column=\"90\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/process/CapturingProcessHandler.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"15\" column=\"34\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/process/ProcessOutput.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.08690614\">\n          <caret line=\"6\" column=\"13\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$APPLICATION_HOME_DIR$/lib/openapi.jar!/com/intellij/execution/util/ExecUtil.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"27\" column=\"22\" selection-start-line=\"27\" selection-start-column=\"22\" selection-end-line=\"27\" selection-end-column=\"22\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/Injection.iml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/dictionaries/johnholdsworth.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/copyright/profiles_settings.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/ant.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/compiler.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/misc.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/InjectionAppCode.iml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/uiDesigner.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/modules.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/workspace.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.0\">\n          <caret line=\"0\" column=\"0\" selection-start-line=\"0\" selection-start-column=\"0\" selection-end-line=\"0\" selection-end-column=\"0\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/META-INF/plugin.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"-7.5\">\n          <caret line=\"12\" column=\"33\" selection-start-line=\"12\" selection-start-column=\"26\" selection-end-line=\"12\" selection-end-column=\"26\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/src/com/injectionforxcode/InjectionAppAction.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state vertical-scroll-proportion=\"0.46925566\">\n          <caret line=\"36\" column=\"46\" selection-start-line=\"36\" selection-start-column=\"25\" selection-end-line=\"36\" selection-end-column=\"25\" />\n          <folding />\n        </state>\n      </provider>\n    </entry>\n  </component>\n  <component name=\"masterDetails\">\n    <states>\n      <state key=\"ArtifactsStructureConfigurable.UI\">\n        <settings>\n          <artifact-editor />\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"FacetStructureConfigurable.UI\">\n        <settings>\n          <last-edited>No facets are configured</last-edited>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"GlobalLibrariesConfigurable.UI\">\n        <settings>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"JdkListConfigurable.UI\">\n        <settings>\n          <last-edited>IDEA IC-123.169</last-edited>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"ModuleStructureConfigurable.UI\">\n        <settings>\n          <last-edited>Injection</last-edited>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n                <option value=\"0.5\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"ProjectLibrariesConfigurable.UI\">\n        <settings>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"ScopeChooserConfigurable.UI\">\n        <settings>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n    </states>\n  </component>\n</project>"
  },
  {
    "path": "InjectionAppCode/Injection.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"PLUGIN_MODULE\" version=\"4\">\n  <component name=\"DevKit.ModuleBuildProperties\" url=\"file://$MODULE_DIR$/META-INF/plugin.xml\" />\n  <component name=\"NewModuleRootManager\" inherit-compiler-output=\"true\">\n    <exclude-output />\n    <content url=\"file://$MODULE_DIR$\">\n      <sourceFolder url=\"file://$MODULE_DIR$/src\" isTestSource=\"false\" />\n    </content>\n    <orderEntry type=\"inheritedJdk\" />\n    <orderEntry type=\"sourceFolder\" forTests=\"false\" />\n  </component>\n</module>\n\n"
  },
  {
    "path": "InjectionAppCode/META-INF/plugin.xml",
    "content": "<idea-plugin version=\"2\">\n  <id>com.injectionforxcode.injectionapp.plugin.id</id>\n  <name>Injection App for AppCode</name>\n  <version>8.0</version>\n  <vendor email=\"support@injectionforxcode.com\" url=\"http://www.injectionforxcode.com\">Injection for Xcode</vendor>\n\n  <description><![CDATA[\n      Dynamic Objective-C/Swift Code Injection for App Code.<br>\n      <small>Requires Injection for Xcode plugin to work.</small>\n      ]]></description>\n\n  <change-notes><![CDATA[\n      Initial Release.<br>\n      ]]>\n  </change-notes>\n\n  <!-- please see http://confluence.jetbrains.net/display/IDEADEV/Build+Number+Ranges for description -->\n  <idea-version since-build=\"107.105\"/>\n\n  <!-- please see http://confluence.jetbrains.net/display/IDEADEV/Plugin+Compatibility+with+IntelliJ+Platform+Products\n       on how to target different products -->\n  <!-- uncomment to enable plugin in all products -->\n  <depends>com.intellij.modules.lang</depends>\n\n  <application-components>\n    <!-- Add your application components here -->\n  </application-components>\n\n  <project-components>\n    <!-- Add your project components here -->\n  </project-components>\n\n  <actions>\n    <!-- Add your actions here -->\n      <group id=\"MyPlugin.SampleMenu\" text=\"_Sample Menu\" description=\"Sample menu\">\n          <add-to-group group-id=\"RunMenu\" anchor=\"last\"/>\n      <action id=\"InjectionApp.Inject\" class=\"com.injectionforxcode.InjectionAppAction\" text=\"AppInject Source\" description=\"App Inject Source\">\n          <keyboard-shortcut keymap=\"$default\" first-keystroke=\"meta EQUALS\"/>\n      </action>\n      </group>\n  </actions>\n\n  <extensions defaultExtensionNs=\"com.intellij\">\n    <!-- Add your extensions here -->\n  </extensions>\n</idea-plugin>"
  },
  {
    "path": "InjectionAppCode/src/com/injectionforxcode/InjectionAppAction.java",
    "content": "package com.injectionforxcode;\n\nimport com.intellij.openapi.actionSystem.AnAction;\nimport com.intellij.openapi.actionSystem.AnActionEvent;\nimport com.intellij.openapi.actionSystem.PlatformDataKeys;\nimport com.intellij.openapi.fileEditor.FileDocumentManager;\nimport com.intellij.openapi.project.Project;\nimport com.intellij.openapi.vfs.VirtualFile;\nimport com.intellij.openapi.ui.Messages;\nimport com.intellij.util.ui.UIUtil;\n\n/**\n * Copyright (c) 2013 John Holdsworth. All rights reserved.\n *\n * Created with IntelliJ IDEA.\n * Date: 05/01/2016\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * If you want to \"support the cause\", consider a paypal donation to:\n *\n * injectionforxcode@johnholdsworth.com\n *\n */\n\npublic class InjectionAppAction extends AnAction {\n\n    public void actionPerformed(AnActionEvent event) {\n        Project project = event.getData(PlatformDataKeys.PROJECT);\n        VirtualFile vf = event.getData(PlatformDataKeys.VIRTUAL_FILE);\n        if ( vf == null )\n            return;\n\n        FileDocumentManager.getInstance().saveAllDocuments();\n        try {\n            Runtime.getRuntime().exec(new String[]{\"/Applications/Injection.app/Contents/Resources/injectSource\",\n                    vf.getCanonicalPath()}, null, null).waitFor();\n        }\n        catch ( final Exception e ) {\n            UIUtil.invokeAndWaitIfNeeded(new Runnable() {\n                public void run() {\n                    Messages.showMessageDialog(e.getMessage(), \"InjectionApp Plugin\", Messages.getInformationIcon());\n                }\n            } );\n        }\n    }\n\n}\n"
  },
  {
    "path": "InjectionBootstrap/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2016 John Holdsworth. All rights reserved.</string>\n\t<key>NSPrincipalClass</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "InjectionHelper/Info-Launchd.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>Label</key>\n\t<string>com.johnholdsworth.Injectorator.Helper</string>\n\t<key>MachServices</key>\n\t<dict>\n\t\t<key>com.johnholdsworth.Injectorator.Helper.mach</key>\n\t\t<true/>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "InjectionHelper/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.johnholdsworth.Injectorator.Helper</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2016 John Holdsworth. All rights reserved.</string>\n\t<key>NSPrincipalClass</key>\n\t<string></string>\n\t<key>SMAuthorizedClients</key>\n\t<array>\n\t\t<string>identifier com.johnholdsworth.Injectorator</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "InjectionLoader/BundleContents.h",
    "content": "//\n//  BundleContents.h\n//  InjectionLoader\n//\n//  Created by John Holdsworth on 17/01/2012.\n//  Copyright (c) 2012 John Holdsworth. All rights reserved.\n//\n\n// move along, nothing to see here.."
  },
  {
    "path": "InjectionLoader/BundleContents.mm",
    "content": "//\n//  BundleContents.m\n//  InjectionLoader\n//\n//  Created by John Holdsworth on 17/01/2012.\n//  Copyright (c) 2012 John Holdsworth. All rights reserved.\n//\n\n#import <stddef.h>\n\nstatic char _inMainFilePath[] = __FILE__;\nstatic const char *_inIPAddresses[] = {\"127.0.0.1\", NULL};\n\n#define INJECTION_LOADER\n#define INJECTION_ENABLED\n#import \"../../XprobePlugin/Classes/Xtrace.h\"\n#import \"../../XprobePlugin/Classes/Xprobe.mm\"\n#import \"../../injectionforxcode/InjectionPluginLite/Classes/BundleInjection.h\"\n\n#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED\n#import <UIKit/UIKit.h>\n\n//@interface CCDirector\n//+ (CCDirector *)sharedDirector;\n//+ (id)sharedDeviceConnection;\n//+ (id)startRemoteInterface;\n//+ (id)sharedInstance;\n//@end\n#else\n#import <Cocoa/Cocoa.h>\n#endif\n\n#if 0\nstatic char _inMainFilePath[] = __FILE__;\nstatic const char *_inIPAddresses[] = {\"127.0.0.1\", NULL};\n\n#define INJECTION_ENABLED\n#import \"BundleInjection.h\"\n#else\n//@interface BundleInjection\n//+ (float *)_inParameters;\n//+ (void)loadedNotify:(int)notify hook:(void *)hook;\n//@end\n#endif\n\n@implementation Xprobe(Seeding)\n\n//+ (void)load {\n//#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR\n//    [self connectTo:NULL retainObjects:YES];\n//#else\n//    [self connectTo:\"127.0.0.1\" retainObjects:YES];\n//#endif\n//    [self search:@\"\"];\n//\n//    Class injection = NSClassFromString(@\"BundleInjection\");\n//    if ( [injection respondsToSelector:@selector(_inParameters)] )\n//        [injection loadedNotify:0 hook:NULL];\n//}\n\n#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED\n+ (NSArray *)xprobeSeeds {\n    UIApplication *app = [UIApplication sharedApplication];\n    NSMutableArray *seeds = [[app windows] mutableCopy];\n    [seeds insertObject:app atIndex:0];\n\n    // support for cocos2d\n    Class ccDirectorClass = NSClassFromString(@\"CCDirector\");\n    CCDirector *ccDirector = [ccDirectorClass sharedDirector];\n    if ( ccDirector )\n        [seeds addObject:ccDirector];\n\n    if ( !seeds ) {\n        seeds = [NSMutableArray new];\n\n//        Class deviceClass = NSClassFromString(@\"SPDeviceConnection\");\n//        id deviceInstance = [deviceClass sharedDeviceConnection];\n//        if ( deviceInstance )\n//            [seeds addObject:deviceInstance];\n//\n//        Class interfaceClass = NSClassFromString(@\"SPRemoteInterface\");\n//        id interfaceInstance = [interfaceClass startRemoteInterface];\n//        if ( interfaceInstance )\n//            [seeds addObject:interfaceInstance];\n\n        Class cacheClass = NSClassFromString(@\"SPCompanionAssetCache\");\n        id cacheInstance = [cacheClass sharedInstance];\n        if ( cacheInstance )\n            [seeds addObject:cacheInstance];\n    }\n\n    return seeds;\n}\n#else\n+ (NSArray *)xprobeSeeds {\n    NSApplication *app = [NSApplication sharedApplication];\n    NSMutableArray *seeds = [[app windows] mutableCopy];\n    if ( app.delegate )\n        [seeds insertObject:app.delegate atIndex:0];\n    return seeds;\n}\n#endif\n@end\n"
  },
  {
    "path": "InjectionLoader/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2016 John Holdsworth. All rights reserved.</string>\n\t<key>NSPrincipalClass</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "InjectionLoader/InjectionLoader.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\tBB356B701E0B1A5C0056B10F /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BB356B6F1E0B1A5C0056B10F /* libz.tbd */; };\n\t\tBB356B741E0B1AAE0056B10F /* BundleContents.mm in Sources */ = {isa = PBXBuildFile; fileRef = BB356B721E0B1AAE0056B10F /* BundleContents.mm */; };\n\t\tBB356B751E0B1AAE0056B10F /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB356B731E0B1AAE0056B10F /* Info.plist */; };\n\t\tBB356B931E0B807B0056B10F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB356B921E0B807B0056B10F /* UIKit.framework */; };\n\t\tBB356BC31E0B93CC0056B10F /* Xprobe+Service.mm in Sources */ = {isa = PBXBuildFile; fileRef = BB356BC21E0B93CC0056B10F /* Xprobe+Service.mm */; };\n\t\tBB356BCC1E0BC3FE0056B10F /* Xtrace.mm in Sources */ = {isa = PBXBuildFile; fileRef = BB356BCA1E0BC3FE0056B10F /* Xtrace.mm */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n\t\tBB356B531E0B184C0056B10F /* InjectionLoader.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InjectionLoader.bundle; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tBB356B6F1E0B1A5C0056B10F /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = \"sourcecode.text-based-dylib-definition\"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };\n\t\tBB356B711E0B1AAE0056B10F /* BundleContents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BundleContents.h; sourceTree = SOURCE_ROOT; };\n\t\tBB356B721E0B1AAE0056B10F /* BundleContents.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BundleContents.mm; sourceTree = SOURCE_ROOT; };\n\t\tBB356B731E0B1AAE0056B10F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };\n\t\tBB356B921E0B807B0056B10F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };\n\t\tBB356BC21E0B93CC0056B10F /* Xprobe+Service.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = \"Xprobe+Service.mm\"; path = \"../../XprobePlugin/Classes/Xprobe+Service.mm\"; sourceTree = \"<group>\"; };\n\t\tBB356BC71E0BC3FE0056B10F /* Xprobe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Xprobe.h; path = ../../XprobePlugin/Classes/Xprobe.h; sourceTree = \"<group>\"; };\n\t\tBB356BC81E0BC3FE0056B10F /* Xprobe.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Xprobe.mm; path = ../../XprobePlugin/Classes/Xprobe.mm; sourceTree = \"<group>\"; };\n\t\tBB356BC91E0BC3FE0056B10F /* Xtrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Xtrace.h; path = ../../XprobePlugin/Classes/Xtrace.h; sourceTree = \"<group>\"; };\n\t\tBB356BCA1E0BC3FE0056B10F /* Xtrace.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Xtrace.mm; path = ../../XprobePlugin/Classes/Xtrace.mm; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tBB356B501E0B184C0056B10F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356B931E0B807B0056B10F /* UIKit.framework in Frameworks */,\n\t\t\t\tBB356B701E0B1A5C0056B10F /* libz.tbd in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\tBB356B4A1E0B184C0056B10F = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356BC91E0BC3FE0056B10F /* Xtrace.h */,\n\t\t\t\tBB356BCA1E0BC3FE0056B10F /* Xtrace.mm */,\n\t\t\t\tBB356BC71E0BC3FE0056B10F /* Xprobe.h */,\n\t\t\t\tBB356BC81E0BC3FE0056B10F /* Xprobe.mm */,\n\t\t\t\tBB356BC21E0B93CC0056B10F /* Xprobe+Service.mm */,\n\t\t\t\tBB356B711E0B1AAE0056B10F /* BundleContents.h */,\n\t\t\t\tBB356B721E0B1AAE0056B10F /* BundleContents.mm */,\n\t\t\t\tBB356B731E0B1AAE0056B10F /* Info.plist */,\n\t\t\t\tBB356B541E0B184C0056B10F /* Products */,\n\t\t\t\tBB356B6E1E0B1A5C0056B10F /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356B541E0B184C0056B10F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356B531E0B184C0056B10F /* InjectionLoader.bundle */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356B6E1E0B1A5C0056B10F /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356B921E0B807B0056B10F /* UIKit.framework */,\n\t\t\t\tBB356B6F1E0B1A5C0056B10F /* libz.tbd */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tBB356B521E0B184C0056B10F /* InjectionLoader */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = BB356B591E0B184C0056B10F /* Build configuration list for PBXNativeTarget \"InjectionLoader\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tBB356B4F1E0B184C0056B10F /* Sources */,\n\t\t\t\tBB356B501E0B184C0056B10F /* Frameworks */,\n\t\t\t\tBB356B511E0B184C0056B10F /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = InjectionLoader;\n\t\t\tproductName = InjectionLoader;\n\t\t\tproductReference = BB356B531E0B184C0056B10F /* InjectionLoader.bundle */;\n\t\t\tproductType = \"com.apple.product-type.bundle\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tBB356B4B1E0B184C0056B10F /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 0820;\n\t\t\t\tORGANIZATIONNAME = \"John Holdsworth\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tBB356B521E0B184C0056B10F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tDevelopmentTeam = 9V5A8WE85E;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = BB356B4E1E0B184C0056B10F /* Build configuration list for PBXProject \"InjectionLoader\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = BB356B4A1E0B184C0056B10F;\n\t\t\tproductRefGroup = BB356B541E0B184C0056B10F /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tBB356B521E0B184C0056B10F /* InjectionLoader */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tBB356B511E0B184C0056B10F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356B751E0B1AAE0056B10F /* Info.plist in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tBB356B4F1E0B184C0056B10F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356BCC1E0BC3FE0056B10F /* Xtrace.mm in Sources */,\n\t\t\t\tBB356BC31E0B93CC0056B10F /* Xprobe+Service.mm in Sources */,\n\t\t\t\tBB356B741E0B1AAE0056B10F /* BundleContents.mm in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin XCBuildConfiguration section */\n\t\tBB356B571E0B184C0056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD)\";\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"INJECTION_PORT=$INJECTION_PORT\",\n\t\t\t\t\t\"XPROBE_PORT=$XPROBE_PORT\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356B581E0B184C0056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD)\";\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"INJECTION_PORT=$INJECTION_PORT\",\n\t\t\t\t\t\"XPROBE_PORT=$XPROBE_PORT\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tBB356B5A1E0B184C0056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Bundles\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.InjectionLoader;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tWRAPPER_EXTENSION = bundle;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356B5B1E0B184C0056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Bundles\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.InjectionLoader;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tWRAPPER_EXTENSION = bundle;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tBB356B4E1E0B184C0056B10F /* Build configuration list for PBXProject \"InjectionLoader\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356B571E0B184C0056B10F /* Debug */,\n\t\t\t\tBB356B581E0B184C0056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tBB356B591E0B184C0056B10F /* Build configuration list for PBXNativeTarget \"InjectionLoader\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356B5A1E0B184C0056B10F /* Debug */,\n\t\t\t\tBB356B5B1E0B184C0056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = BB356B4B1E0B184C0056B10F /* Project object */;\n}\n"
  },
  {
    "path": "Injectorator/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"16x16\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"16x16\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"32x32\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"32x32\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"128x128\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"128x128\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"256x256\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"256x256\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"512x512\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"size\" : \"512x512\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Injectorator/Benchmark.swift",
    "content": "//\n//  Benchmark.swift\n//  Injectorator\n//\n//  Created by John Holdsworth on 07/01/2017.\n//  Copyright © 2017 John Holdsworth. All rights reserved.\n//\n\nimport Foundation\n\nextension Integration {\n\n    @IBAction func optimise(sender: AnyObject!) {\n        appDelegate.state.setup()\n        var html = \"\"\n        for line in LogParser(logDir: appDelegate.state.project!.derivedData+\"/Logs/Build\").profileLines() {\n            let tabsep = line.components(separatedBy: \"\\t\"), time = tabsep[0], location = tabsep[1], decl = tabsep[2]\n            let colonsep = location.components(separatedBy: \":\"), file = colonsep[0], line = colonsep[1], col = colonsep[2]\n            html += \"<tr><td><pre>\\(time) <td><pre><a href='#' onclick='return gotoFile(\\\"\\(file)\\\", \\(line))'>\\(file.url.lastPathComponent):\\(line)</a>:\\(col) <td><pre>\\(decl)\\n\"\n        }\n\n        appDelegate.state.setChangesSource(header: \"Compile time measurements...\")\n        if html == \"\" {\n            html = \"Add \\\"-Xfrontend -debug-time-function-bodies\\\" to \\\"Other Swift Flags\\\" of your project and build to benchmark compilation times\"\n        }\n        else {\n            html = \"<table cellspacing=0 cellpadding=0>\\(html)</table>\"\n        }\n        appDelegate.state.appendSource(title: \"\", text: html)\n    }\n\n    @IBAction func findSpace(sender: AnyObject!) {\n        if delegate == nil {\n            Bundle.main.loadNibNamed(\"DiskTree\", owner: self, topLevelObjects: nil)\n        }\n        let notification = Notification(name: .NSApplicationDidFinishLaunching)\n        delegate.applicationDidFinishLaunching!(notification)\n    }\n\n}\n\nextension LogParser {\n\n    func profileLines() -> [NSString] {\n        var out = [NSString]()\n        for line in TaskGenerator( command: \"gunzip <\\\"\\(recentFirstLogs.first ?? \"blah\")\\\"\", lineSeparator: \"\\r\" ).sequence {\n            if line.contains(\"ms\\t/\") {\n                let line = line.replacingOccurrences(of: \"^.*\\\"(\\\\d+\\\\.\\\\dms\\t)\", with: \"$1\", options: .regularExpression)\n                if !line.hasPrefix(\"0.0ms\") {\n                    out.append(line as NSString)\n                }\n            }\n        }\n        return Set( out ).sorted {\n            return $0.floatValue > $1.floatValue\n        }\n    }\n\n}\n"
  },
  {
    "path": "Injectorator/Credits.rtf",
    "content": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf1504\\cocoasubrtf830\n{\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;\\f1\\fnil\\fcharset0 Menlo-Regular;\\f2\\fnil\\fcharset0 HelveticaNeue;\n\\f3\\fmodern\\fcharset0 Courier;}\n{\\colortbl;\\red255\\green255\\blue255;\\red83\\green98\\blue108;}\n{\\*\\expandedcolortbl;;\\csgenericrgb\\c32549\\c38431\\c42353;}\n\\paperw11900\\paperh16840\\vieww9600\\viewh8400\\viewkind0\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\partightenfactor0\n\n\\f0\\fs24 \\cf0 The Injection plugin for Xcode is now a standalone app. This allows you to inject changes to class method implementations into a running application in the simulator or a macOS app. Injecting is now as simple as downloading the app and run having it running in the background while you are working on a project in Xcode and using the menu bar item \"Inject Source\" (don't forget to save the file!)\\\n\\\nInjection will communicate with Xcode using AppleScript to determine the current file and project then insert code into the the simulator which is then used to load in and swizzle the new version of the code into the app. Injection can also be used as a service or from the command line using the \"injectSource\" binary in the app package.\\\n\\\nFor OSX you'll need to patch the project's main.m (create an empty one for Swift projects) using \"macOS Project/Patch\" on the menu bar, after which, it should connect as before. If you patch your project or once you have performed an initial injection you can use a file watcher which injects each time a file in your project is saved. Unfortunately, injecting on the device is no longer possible due to iOS 10's sandboxing.\\\n\\\nFor further help go to {\\field{\\*\\fldinst{HYPERLINK \"http://johnholdsworth.com/injection.html\"}}{\\fldrslt http://johnholdsworth.com/injection.html}}\\\n\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n\n\\f1\\fs22 \\cf0 Copyright (C) 2016-7 John Holdsworth {\\field{\\*\\fldinst{HYPERLINK \"mailto:injectionapp@johnholdsworth.com\"}}{\\fldrslt injectionapp@johnholdsworth.com}} {\\field{\\*\\fldinst{HYPERLINK \"https://twitter.com/Injection4Xcode\"}}{\\fldrslt \n\\f2\\fs24 \\cf2 \\expnd0\\expndtw0\\kerning0\n@Injection4Xcode}}\\\n\\\n\\pard\\pardeftab720\\partightenfactor0\n\n\\f3\\fs24 \\cf0 \\expnd0\\expndtw0\\kerning0\nPermission is hereby granted, free of charge, to any person obtaining a copy\\\nof this software and associated documentation files (the \"Software\"), to deal\\\nin the Software without restriction, including without limitation the rights\\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\\ncopies of the Software, and to permit persons to whom the Software is\\\nfurnished to do so, subject to the following conditions:\\\n\\\nThe above copyright notice and this permission notice shall be included in\\\nall copies or substantial portions of the Software.\\\n\\\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT \\\nLIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. \\\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, \\\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE \\\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n\n\\f1\\fs22 \\cf0 \\kerning1\\expnd0\\expndtw0 \\\nThis release includes software licensed by the original copyright holder to be used under the terms of this license:\\\n\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/johnno1962/injectionforxcode\"}}{\\fldrslt \\cf0 injectionforxcode}} - engine for build and reload of code\\\n\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/johnno1962/Smuggler\"}}{\\fldrslt \\cf0 Smuggler}} - prototype for injecting code into simulator\\\n\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/johnno1962/Xprobe\"}}{\\fldrslt \\cf0 Xprobe}} - realtime app memory browser\\\n\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/johnno1962/Xtrace\"}}{\\fldrslt \\cf0 Xtrace}} - Objective-C message tracing\\\n\\\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/johnno1962/Refactorator\"}}{\\fldrslt Refactorator}} - original Xcode refactoring plugin\\\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/johnno1962/RefactoratorApp\"}}{\\fldrslt RefactoratorApp}} - App version of Refactorator\\\n\\\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/johnno1962/Remote\"}}{\\fldrslt Remote}} - remote control of iOS devices\\\n\\\nIncluded in this release is software from the following sources under their respective licenses:\\\n\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/davedelong/DDHotKey\"}}{\\fldrslt \\cf0 davedelong/DDHotKey}} - create ^= hotkey for injection\\\n\\\n\\pard\\pardeftab720\\partightenfactor0\n\n\\f3 \\cf0 \\expnd0\\expndtw0\\kerning0\nThe license for this framework is included in every source file, and is repoduced in its entirety here:\\\n\\\nPermission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.  The software is provided \"as is\", without warranty of any kind, including all implied warranties of merchantability and fitness. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n\n\\f1 \\cf0 \\kerning1\\expnd0\\expndtw0 \\\n\\pard\\tx543\\pardeftab543\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/jpsim/SourceKitten\"}}{\\fldrslt \\cf0 jpsim/SourceKitten}} - dynamic loading of SourceKit on demand\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n\\cf0 \\\n\\pard\\pardeftab720\\partightenfactor0\n\n\\f3 \\cf0 \\expnd0\\expndtw0\\kerning0\nThe MIT License (MIT)\\\n\\\nCopyright (c) 2014 JP Simard.\\\n\\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\\nof this software and associated documentation files (the \"Software\"), to deal\\\nin the Software without restriction, including without limitation the rights\\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\\ncopies of the Software, and to permit persons to whom the Software is\\\nfurnished to do so, subject to the following conditions:\\\n\\\nThe above copyright notice and this permission notice shall be included in all\\\ncopies or substantial portions of the Software.\\\n\\\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\\nSOFTWARE.\\\n\\pard\\pardeftab720\\partightenfactor0\n\n\\f1 \\cf0 \\kerning1\\expnd0\\expndtw0 \\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://github.com/rentzsch/mach_inject\"}}{\\fldrslt \\cf0 rentzsch/mach_inject}} - inter-process code injection\\\n\\\n\\pard\\pardeftab720\\partightenfactor0\n\n\\f3 \\cf0 \\expnd0\\expndtw0\\kerning0\n//   Copyright (c) 2003-2016 Jonathan 'Wolf' Rentzsch: http://rentzsch.com\\\n//   Some rights reserved: http://opensource.org/licenses/mit\\\n//   https://github.com/rentzsch/mach_inject\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n\n\\f1 \\cf0 \\kerning1\\expnd0\\expndtw0 \\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://code.google.com/archive/p/canviz\"}}{\\fldrslt \\cf0 canviz}} - Visualisation of dot graphs in WebView canvas\\\n\\\nLicense in application package.\\\n\\\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\pardirnatural\\partightenfactor0\n{\\field{\\*\\fldinst{HYPERLINK \"https://codemirror.net/\"}}{\\fldrslt \\cf0 codemirror.net}} - Code editor for Xprobe eval against instance\\\n\\\nLicense in application package.}"
  },
  {
    "path": "Injectorator/INController.swift",
    "content": "//\n//  InjectionMenuController.swift\n//  Injectorator\n//\n//  Created by John Holdsworth on 22/12/2016.\n//  Copyright © 2016 John Holdsworth. All rights reserved.\n//\n\nimport Cocoa\n\nclass INController: INPluginMenuController {\n\n    var project: Project? {\n        if Integration.shared.appDelegate.state.project == nil {\n            Integration.shared.appDelegate.state.project = Project(target: nil)\n        }\n        return Integration.shared.appDelegate.state.project\n    }\n\n    override func workspacePath() -> String! {\n        return project?.workspacePath\n    }\n\n    override func buildDirectory() -> String! {\n        return project?.derivedData.url.appendingPathComponent(\"Build\").path ?? \"Unknown project deerived data\"\n    }\n\n    override func logDirectory() -> String! {\n        return project?.derivedData.url.appendingPathComponent(\"Logs/Build\").path ?? \"Unknown project deerived data\"\n    }\n\n    override func enableFileWatcher(_ enabled: Bool) {\n        super.enableFileWatcher(enabled)\n        Integration.shared.updateState(newState: enabled ? .connected : .idle)\n    }\n\n    @IBAction func showTunable(sender: AnyObject!) {\n        client.paramsPanel.makeKeyAndOrderFront(sender)\n    }\n\n    @IBAction func showConsole(sender: AnyObject!) {\n        client.consolePanel.makeKeyAndOrderFront(sender)\n    }\n\n    @objc (injectSource:)\n    @IBAction func injectSource(_ sender: AnyObject!) {\n        Integration.shared.injectSource(sender: sender)\n    }\n\n    override func xcodeApp() -> String! {\n        if let xcodeApp = NSRunningApplication.runningApplications(withBundleIdentifier: \"com.apple.dt.Xcode\")\n            .first?.bundleURL?.path {\n            return xcodeApp\n        }\n        let appName = project?.xCode?.className.replacingOccurrences(of: \"Application\", with: \"\")\n        return \"/Applications/\\(appName ?? \"Xcode\").app\"\n    }\n\n}\n"
  },
  {
    "path": "Injectorator/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleDocumentTypes</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>CFBundleTypeExtensions</key>\n\t\t\t<array>\n\t\t\t\t<string>swift</string>\n\t\t\t\t<string>m</string>\n\t\t\t\t<string>h</string>\n\t\t\t</array>\n\t\t\t<key>CFBundleTypeIconFile</key>\n\t\t\t<string>document.icns</string>\n\t\t\t<key>CFBundleTypeMIMETypes</key>\n\t\t\t<array>\n\t\t\t\t<string>text/css</string>\n\t\t\t</array>\n\t\t\t<key>CFBundleTypeName</key>\n\t\t\t<string>Swift Source</string>\n\t\t\t<key>CFBundleTypeRole</key>\n\t\t\t<string>Viewer</string>\n\t\t\t<key>NSDocumentClass</key>\n\t\t\t<string>AppDelegate</string>\n\t\t</dict>\n\t</array>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIconFile</key>\n\t<string>App</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>2.7</string>\n\t<key>CFBundleVersion</key>\n\t<string>625</string>\n\t<key>LSApplicationCategoryType</key>\n\t<string>public.app-category.developer-tools</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2016 John Holdsworth. All rights reserved.</string>\n\t<key>NSMainNibFile</key>\n\t<string>MainMenu</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n\t<key>NSServices</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>NSKeyEquivalent</key>\n\t\t\t<dict>\n\t\t\t\t<key>default</key>\n\t\t\t\t<string>~</string>\n\t\t\t</dict>\n\t\t\t<key>NSMenuItem</key>\n\t\t\t<dict>\n\t\t\t\t<key>default</key>\n\t\t\t\t<string>Injection/Inject Source</string>\n\t\t\t</dict>\n\t\t\t<key>NSMessage</key>\n\t\t\t<string>inject</string>\n\t\t\t<key>NSPortName</key>\n\t\t\t<string>Injection</string>\n\t\t\t<key>NSRequiredContext</key>\n\t\t\t<dict/>\n\t\t\t<key>NSSendTypes</key>\n\t\t\t<array>\n\t\t\t\t<string>NSStringPboardType</string>\n\t\t\t\t<string>public.plain-text</string>\n\t\t\t</array>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>NSMenuItem</key>\n\t\t\t<dict>\n\t\t\t\t<key>default</key>\n\t\t\t\t<string>Injection/Inject File</string>\n\t\t\t</dict>\n\t\t\t<key>NSMessage</key>\n\t\t\t<string>injectFile</string>\n\t\t\t<key>NSPortName</key>\n\t\t\t<string>Injection</string>\n\t\t\t<key>NSRequiredContext</key>\n\t\t\t<dict>\n\t\t\t\t<key>NSTextContent</key>\n\t\t\t\t<array>\n\t\t\t\t\t<string>FilePath</string>\n\t\t\t\t</array>\n\t\t\t</dict>\n\t\t\t<key>NSSendTypes</key>\n\t\t\t<array>\n\t\t\t\t<string>NSStringPboardType</string>\n\t\t\t\t<string>public.plain-text</string>\n\t\t\t\t<string>NSURLPboardType</string>\n\t\t\t\t<string>public.url</string>\n\t\t\t\t<string>public.file-url</string>\n\t\t\t</array>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>NSMenuItem</key>\n\t\t\t<dict>\n\t\t\t\t<key>default</key>\n\t\t\t\t<string>Injection/Load Xprobe</string>\n\t\t\t</dict>\n\t\t\t<key>NSMessage</key>\n\t\t\t<string>xprobe</string>\n\t\t\t<key>NSPortName</key>\n\t\t\t<string>Injection</string>\n\t\t\t<key>NSRequiredContext</key>\n\t\t\t<dict/>\n\t\t\t<key>NSSendTypes</key>\n\t\t\t<array>\n\t\t\t\t<string>NSStringPboardType</string>\n\t\t\t\t<string>public.plain-text</string>\n\t\t\t</array>\n\t\t</dict>\n\t</array>\n\t<key>SMPrivilegedExecutables</key>\n\t<dict>\n\t\t<key>com.johnholdsworth.Injectorator.Helper</key>\n\t\t<string>identifier com.johnholdsworth.Injectorator.Helper</string>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "Injectorator/Injectorator-Bridging-Header.h",
    "content": "//\n//  Use this file to import your target's public headers that you would like to expose to Swift.\n//\n\n#import <sqlite3.h>\n#import <regex.h>\n\n#import \"sourcekitd.h\"\n#import \"Xcode.h\"\n\n#import \"Utils.h\"\n\n#import \"INPluginMenuController.h\"\n#import \"INPluginClientController.h\"\n#import \"XprobePluginMenuController.h\"\n#import \"RMPluginController.h\"\n\n#import \"HelperInstaller.h\"\n#import \"HelperProxy.h\"\n\n#import <Carbon/Carbon.h>\n#import <AppKit/NSEvent.h>\n#import \"DDHotKeyCenter.h\"\n\n#define SWIFT_INJECTION_PORT INJECTION_PORT\n#define SWIFT_REMOTE_PORT REMOTE_PORT\n"
  },
  {
    "path": "Injectorator/Integration.swift",
    "content": "//\n//  SubApp.swift\n//  Injectorator\n//\n//  Created by John Holdsworth on 21/12/2016.\n//  Copyright © 2016 John Holdsworth. All rights reserved.\n//\n\nimport Foundation\n\n//let kVK_ANSI_Equal: UInt16 = 0x18\n\nclass Integration: NSObject {\n\n    static var shared: Integration!\n\n    @IBOutlet var injection: INPluginMenuController!\n    @IBOutlet var xprobe: XprobePluginMenuController!\n\n    @IBOutlet var mainMenu: NSMenu!\n    @IBOutlet var statusMenu: NSMenu!\n    private var statusItem: NSStatusItem!\n\n    var remote: RMPluginController!\n    var appDelegate: AppDelegate!\n\n    @IBOutlet var delegate: NSApplicationDelegate!\n\n    init(appDelegate: AppDelegate, count: Int) {\n        super.init()\n        Integration.shared = self\n        self.appDelegate = appDelegate\n\n        setenv(\"IS_INJECTION_APP\", Bundle.main.bundlePath, 1)\n        signal(SIGPIPE, SIG_IGN)\n\n        guard let appMenu = NSApplication.shared().mainMenu else { return }\n        Bundle(for:Integration.self).loadNibNamed(\"Integration\", owner: self, topLevelObjects: nil)\n\n        let notification = Notification(name: .NSApplicationDidFinishLaunching)\n        injection.applicationDidFinishLaunching(notification)\n        xprobe.applicationDidFinishLaunching(notification)\n\n        xprobe.injectionPlugin = INPluginMenuController.self\n        injectionPlugin = injection\n        xprobePlugin = xprobe\n\n        appMenu.item(at: 0)?.submenu = mainMenu\n        #if swift(>=3.2)\n        appMenu.removeItem(at: 1)\n        statusMenu.item(withTitle: \"Refactor Swift\")?.isHidden = true\n        #else\n        appMenu.item(at: 1)?.submenu?.title = \"Refactorator\"\n        #endif\n\n        let statusBar = NSStatusBar.system()\n        statusItem = statusBar.statusItem(withLength: statusBar.thickness)\n        statusItem.toolTip = \"Injectorator\"\n        statusItem.highlightMode = true\n        statusItem.menu = statusMenu\n        statusItem.isEnabled = true\n        statusItem.title = \"\"\n\n        updateState(newState: .idle)\n\n        _ = DDHotKeyCenter.shared()?.registerHotKey(withKeyCode: UInt16(kVK_ANSI_Equal),\n                                                    modifierFlags: NSEventModifierFlags.control.rawValue,\n                                                    target: self, action: #selector(injectSource(sender:)), object: nil)\n\n        let expires = Date(timeIntervalSince1970: 1515929737.02325)//timeIntervalSinceNow:(2*31+8)*24*60*60)\n        print(\"If not licensed, this copy will expire on: \\(expires) \\(expires.timeIntervalSince1970)\")\n\n        if !appDelegate.licensed && Date() > expires {\n            let alert = NSAlert()\n            alert.messageText = \"Injection\"\n            alert.informativeText = \"An update is available for Injection, please download a new copy\"\n            alert.runModal()\n            appDelegate.help(sender: nil)\n            NSApp.terminate(nil)\n            return\n        }\n    }\n\n    @discardableResult\n    func error(_ msg: String) -> NSModalResponse {\n        NSApp.activate(ignoringOtherApps: true)\n        print(\"Error: \\(msg)\")\n        let alert = NSAlert()\n        alert.messageText = \"Injection App\"\n        alert.informativeText = msg\n        return alert.runModal()\n    }\n\n    func pathForResource( name: String, ofType ext: String! ) -> String! {\n        if let path = Bundle.main.path(forResource: name, ofType: ext) {\n            return path\n        } else {\n            error(\"Could not locate resource \\(name).\\(ext)\" )\n            return nil\n        }\n    }\n\n    func setMenuIcon( tiffName: String ) {\n        if let path = pathForResource( name: tiffName, ofType:\"tif\" ) {\n            statusItem.image = NSImage( contentsOfFile:path )\n            statusItem.alternateImage = statusItem.image\n        }\n    }\n\n    func updateState( newState: INBundleState ) {\n        switch (newState) {\n        case .idle:\n            setMenuIcon(tiffName: \"InjectionIdle\")\n        case .connected:\n            setMenuIcon(tiffName: \"InjectionOK\")\n        default:\n            error(\"Invalid status \\(newState.rawValue)\")\n            break\n        }\n    }\n\n    func injectTooling(file: String? = nil) -> String? {\n        let bundlePath = pathForResource(name: \"InjectionLoader\", ofType: \"bundle\")\n        appDelegate.state.project = Project(target: file != nil ? Entity(file: file!) : nil)\n        do {\n            if !injection.client.connected() {\n                if !HelperInstaller.isInstalled() {\n                    error( \"Injection needs to install a privileged helper to be able to inject code into \" +\n                        \"an app running in the simulator. This is a standard macOS mechanism. \" +\n                        \"You can remove the helper at any time by deleting:\\n \" +\n                        \"/Library/PrivilegedHelperTools/com.johnholdsworth.Injectorator.Helper.\\n\" +\n                        \"If you'd rather not authorize, you can select \\\"macOS Project/Patch App\\\" \" +\n                        \"and use patched injection instead.\" )\n                    try HelperInstaller.install()\n                }\n                try HelperProxy.inject( bundlePath )\n                for _ in 0..<50 {\n                    RunLoop.main.run(until: Date(timeIntervalSinceNow: 0.1))\n                    if injection.client.connected() {\n                        NSApp.hide(nil)\n                        return appDelegate.state.project?.entity?.file\n                    }\n                }\n                error( \"Timeout waiting for connection from client app\" )\n                return nil\n            }\n            NSApp.hide(nil)\n            return appDelegate.state.project?.entity?.file\n        }\n        catch (let err as NSError) {\n            print(\"Couldn't install Injection Helper (domain: \\(err.domain) code: \\(err.code))\")\n            error( \"Injection Error:\\n\\(err.localizedDescription)\" )\n        }\n        return nil\n    }\n\n    func runInjection( file: String ) {\n        injection.client.runScript(\"injectSource.pl\", withArg: file)\n        injection.lastInjected[file] = NSDate()\n        injection.lastFile = file\n    }\n\n    @IBAction func injectSource(sender: AnyObject!) {\n        if let file = injectTooling() {\n            runInjection(file: file)\n        }\n    }\n\n    @IBAction func fileWatcher(sender: NSMenuItem!) {\n        sender.state = 1-sender.state\n        injection.watchButton.state = sender.state\n        injection.watchChanged(sender)\n    }\n\n    @IBAction func patchProject(sender: AnyObject!) {\n        appDelegate.state.project = Project(target: nil)\n        injection.client.runScript(\"patchProject.pl\", withArg: \"\\(SWIFT_INJECTION_PORT)\")\n    }\n\n    @IBAction func revertProject(sender: AnyObject!) {\n        appDelegate.state.project = Project(target: nil)\n        injection.client.runScript(\"revertProject.pl\", withArg: \"\")\n    }\n\n    @IBAction func bundleProject(sender: AnyObject!) {\n        appDelegate.state.project = Project(target: nil)\n        injection.client.runScript(\"openBundle.pl\", withArg: \"\")\n    }\n\n    @IBAction func osxXprobe(sender: AnyObject!) {\n        if let path = pathForResource(name: \"XprobeBundle\", ofType: \"loader\") {\n            injection.client.write(\"/\"+path)\n        }\n    }\n\n    @IBAction func loadXprobe(sender: AnyObject!) {\n        _ = injectTooling()\n        injection.client.write(\"+\")\n        NSApp.activate(ignoringOtherApps: true)\n    }\n\n    @IBAction func refactorSwift(sender: AnyObject!) {\n        if let appDelegate = NSApplication.shared().delegate as? AppDelegate {\n            appDelegate.state.setup()\n            appDelegate.window.makeKeyAndOrderFront(sender)\n        }\n    }\n\n    func initRemote() -> RMPluginController {\n        if remote == nil {\n            remote = RMController()\n            setenv(\"REMOTE_PORT\", \"\\(SWIFT_REMOTE_PORT)\", 1 )\n            let notification = Notification(name: .NSApplicationDidFinishLaunching)\n            remote.applicationDidFinishLaunching(notification)\n            let title = \"Remote Control\"\n            let index = statusMenu.indexOfItem(withTitle: title)\n            statusMenu.removeItem(at: index)\n            remote.remoteMenu.title = title\n            statusMenu.insertItem(remote.remoteMenu, at: index)\n\n            remote.remoteMenu.submenu?.item(at: 0)?.isHidden = true\n        }\n        return remote\n    }\n\n    @IBAction func remotePatch(sender: AnyObject!) {\n        appDelegate.state.project = Project(target: nil)\n        initRemote().runScript(\"patch\")\n    }\n\n    @IBAction func remoteUnpatch(sender: AnyObject!) {\n        appDelegate.state.project = Project(target: nil)\n        initRemote().runScript(\"unpatch\")\n    }\n\n    @IBAction func terminate(sender: AnyObject!) {\n        NSApp.terminate(sender)\n    }\n\n}\n\nextension AppDelegate {\n\n    func applicationWillTerminate(_ notification: Notification) {\n        _ = DDHotKeyCenter.shared()?.unregisterHotKey(withKeyCode: UInt16(kVK_ANSI_Equal),\n                                                    modifierFlags: NSEventModifierFlags.control.rawValue)\n    }\n\n    @IBAction func help(sender: NSMenuItem!) {\n        state.open(url: \"http://johnholdsworth.com/injection.html?index=\\(myIndex)\")\n    }\n\n    @IBAction func donate(sender: NSMenuItem!) {\n        state.open(url: \"http://johnholdsworth.com/cgi-bin/injection.cgi?index=\\(myIndex)\")\n    }\n    \n    @objc func inject(_ pboard: NSPasteboard, userData: String, error: NSErrorPointer) {\n        _ = pboard.string(forType: NSPasteboardTypeString)\n        Integration.shared.injectSource(sender: nil)\n    }\n\n    @objc func injectFile(_ pboard: NSPasteboard, userData: String, error: NSErrorPointer) {\n        let options = [NSPasteboardURLReadingFileURLsOnlyKey:true]\n        if let fileURLs = pboard.readObjects(forClasses: [NSURL.self], options: options),\n            let file = (fileURLs.first as? NSURL)?.path {\n            _ = Integration.shared.injectTooling(file: file)\n            Integration.shared.runInjection(file: file)\n        }\n    }\n\n    @objc func xprobe(_ pboard: NSPasteboard, userData: String, error: NSErrorPointer) {\n        _ = pboard.string(forType: NSPasteboardTypeString)\n        Integration.shared.loadXprobe(sender: nil)\n    }\n\n}\n\n// ['Snow', 'DarkKhaki', 'IndianRed', 'MistyRose', 'DarkGrey', 'FloralWhite', 'LightGreen', 'DeepSkyBlue', 'Gainsboro', 'Aquamarine', 'Khaki', 'Sienna', 'Purple', 'SlateGray', 'HotPink', 'White', 'PowderBlue', 'DarkGreen', 'PapayaWhip', 'OliveDrab', 'DarkOrange', 'Yellow', 'Crimson', 'MediumBlue', 'DarkMagenta', 'PeachPuff', 'LightCyan', 'MediumOrchid', 'Lime', 'GreenYellow', 'Gold', 'SlateGrey', 'LightYellow', 'Linen', 'DarkSlateGrey', 'PaleVioletRed', 'AliceBlue', 'MediumSeaGreen', 'LightSlateGrey', 'LawnGreen', 'LightGoldenRodYellow', 'SpringGreen', 'Chocolate', 'RoyalBlue', 'DimGrey', 'MediumSlateBlue', 'DarkOrchid', 'CadetBlue', 'PaleGoldenRod', 'BlanchedAlmond', 'Cornsilk', 'CornflowerBlue', 'PaleTurquoise', 'ForestGreen', 'YellowGreen', 'GoldenRod', 'Coral', 'SandyBrown', 'Wheat', 'Tan', 'Black', 'LavenderBlush', 'Turquoise', 'DarkCyan', 'WhiteSmoke', 'OldLace', 'SeaGreen', 'LightSteelBlue', 'DimGray', 'Ivory', 'Salmon', 'Olive', 'HoneyDew', 'Red', 'Beige', 'DarkGray', 'Green', 'DarkBlue', 'Bisque', 'Moccasin', 'Pink', 'LightSalmon', 'DarkSeaGreen', 'LightSlateGray', 'BlueViolet', 'GhostWhite', 'FireBrick', 'DarkRed', 'Orange', 'OrangeRed', 'DarkOliveGreen', 'LightSkyBlue', 'MediumTurquoise', 'DarkSalmon', 'NavajoWhite', 'RosyBrown', 'SteelBlue', 'LightBlue', 'SeaShell', 'SkyBlue', 'DarkSlateGray', 'LimeGreen', 'LightCoral', 'LightSeaGreen', 'SaddleBrown', 'MediumVioletRed', 'Azure', 'Thistle', 'Lavender', 'DarkSlateBlue', 'LightGrey', 'Chartreuse', 'Navy', 'Teal', 'Indigo', 'MediumSpringGreen', 'RebeccaPurple', 'Orchid', 'Tomato', 'PaleGreen', 'Aqua', 'Grey', 'MediumAquaMarine', 'DarkGoldenRod', 'LightGray', 'Violet', 'Fuchsia', 'Magenta', 'DodgerBlue', 'Maroon', 'DarkViolet', 'DeepPink', 'MidnightBlue', 'AntiqueWhite', 'SlateBlue', 'Blue', 'BurlyWood', 'Brown', 'Peru', 'Silver', 'LightPink', 'MediumPurple', 'MintCream', 'Plum', 'Cyan', 'Gray', 'DarkTurquoise', 'LemonChiffon']\n\nlet colors = String(data: Data(base64Encoded: \"U25vdzpEYXJrS2hha2k6SW5kaWFuUmVkOk1pc3R5Um9zZTpEYXJrR3JleTpGbG9yYWxXaGl0ZTpMaWdodEdyZWVuOkRlZXBTa3lCbHVlOkdhaW5zYm9ybzpBcXVhbWFyaW5lOktoYWtpOlNpZW5uYTpQdXJwbGU6U2xhdGVHcmF5OkhvdFBpbms6V2hpdGU6UG93ZGVyQmx1ZTpEYXJrR3JlZW46UGFwYXlhV2hpcDpPbGl2ZURyYWI6RGFya09yYW5nZTpZZWxsb3c6Q3JpbXNvbjpNZWRpdW1CbHVlOkRhcmtNYWdlbnRhOlBlYWNoUHVmZjpMaWdodEN5YW46TWVkaXVtT3JjaGlkOkxpbWU6R3JlZW5ZZWxsb3c6R29sZDpTbGF0ZUdyZXk6TGlnaHRZZWxsb3c6TGluZW46RGFya1NsYXRlR3JleTpQYWxlVmlvbGV0UmVkOkFsaWNlQmx1ZTpNZWRpdW1TZWFHcmVlbjpMaWdodFNsYXRlR3JleTpMYXduR3JlZW46TGlnaHRHb2xkZW5Sb2RZZWxsb3c6U3ByaW5nR3JlZW46Q2hvY29sYXRlOlJveWFsQmx1ZTpEaW1HcmV5Ok1lZGl1bVNsYXRlQmx1ZTpEYXJrT3JjaGlkOkNhZGV0Qmx1ZTpQYWxlR29sZGVuUm9kOkJsYW5jaGVkQWxtb25kOkNvcm5zaWxrOkNvcm5mbG93ZXJCbHVlOlBhbGVUdXJxdW9pc2U6Rm9yZXN0R3JlZW46WWVsbG93R3JlZW46R29sZGVuUm9kOkNvcmFsOlNhbmR5QnJvd246V2hlYXQ6VGFuOkJsYWNrOkxhdmVuZGVyQmx1c2g6VHVycXVvaXNlOkRhcmtDeWFuOldoaXRlU21va2U6T2xkTGFjZTpTZWFHcmVlbjpMaWdodFN0ZWVsQmx1ZTpEaW1HcmF5Okl2b3J5OlNhbG1vbjpPbGl2ZTpIb25leURldzpSZWQ6QmVpZ2U6RGFya0dyYXk6R3JlZW46RGFya0JsdWU6QmlzcXVlOk1vY2Nhc2luOlBpbms6TGlnaHRTYWxtb246RGFya1NlYUdyZWVuOkxpZ2h0U2xhdGVHcmF5OkJsdWVWaW9sZXQ6R2hvc3RXaGl0ZTpGaXJlQnJpY2s6RGFya1JlZDpPcmFuZ2U6T3JhbmdlUmVkOkRhcmtPbGl2ZUdyZWVuOkxpZ2h0U2t5Qmx1ZTpNZWRpdW1UdXJxdW9pc2U6RGFya1NhbG1vbjpOYXZham9XaGl0ZTpSb3N5QnJvd246U3RlZWxCbHVlOkxpZ2h0Qmx1ZTpTZWFTaGVsbDpTa3lCbHVlOkRhcmtTbGF0ZUdyYXk6TGltZUdyZWVuOkxpZ2h0Q29yYWw6TGlnaHRTZWFHcmVlbjpTYWRkbGVCcm93bjpNZWRpdW1WaW9sZXRSZWQ6QXp1cmU6VGhpc3RsZTpMYXZlbmRlcjpEYXJrU2xhdGVCbHVlOkxpZ2h0R3JleTpDaGFydHJldXNlOk5hdnk6VGVhbDpJbmRpZ286TWVkaXVtU3ByaW5nR3JlZW46UmViZWNjYVB1cnBsZTpPcmNoaWQ6VG9tYXRvOlBhbGVHcmVlbjpBcXVhOkdyZXk6TWVkaXVtQXF1YU1hcmluZTpEYXJrR29sZGVuUm9kOkxpZ2h0R3JheTpWaW9sZXQ6RnVjaHNpYTpNYWdlbnRhOkRvZGdlckJsdWU6TWFyb29uOkRhcmtWaW9sZXQ6RGVlcFBpbms6TWlkbmlnaHRCbHVlOkFudGlxdWVXaGl0ZTpTbGF0ZUJsdWU6Qmx1ZTpCdXJseVdvb2Q6QnJvd246UGVydTpTaWx2ZXI6TGlnaHRQaW5rOk1lZGl1bVB1cnBsZTpNaW50Q3JlYW06UGx1bTpDeWFuOkdyYXk6RGFya1R1cnF1b2lzZTpMZW1vbkNoaWZmb24=\")!, encoding: .utf8 )!.components(separatedBy: \":\")\n"
  },
  {
    "path": "Injectorator/Integration.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion=\"13196\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\" useAutolayout=\"YES\" customObjectInstantitationMethod=\"direct\">\n    <dependencies>\n        <deployment identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"13196\"/>\n    </dependencies>\n    <objects>\n        <customObject id=\"-2\" userLabel=\"File's Owner\" customClass=\"Integration\" customModule=\"Injection\">\n            <connections>\n                <outlet property=\"injection\" destination=\"iBO-ge-fcE\" id=\"VuU-lO-zNL\"/>\n                <outlet property=\"mainMenu\" destination=\"FnL-iN-58C\" id=\"VGn-7L-8tz\"/>\n                <outlet property=\"statusMenu\" destination=\"Z8g-4w-jDN\" id=\"I06-vc-G3L\"/>\n                <outlet property=\"xprobe\" destination=\"7lV-Oe-TVG\" id=\"r0u-km-uIK\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"-1\" userLabel=\"First Responder\" customClass=\"FirstResponder\"/>\n        <customObject id=\"-3\" userLabel=\"Application\" customClass=\"NSObject\"/>\n        <menu id=\"Z8g-4w-jDN\">\n            <items>\n                <menuItem title=\"Inject Source\" keyEquivalent=\"=\" id=\"Ser-op-cgk\">\n                    <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\"/>\n                    <connections>\n                        <action selector=\"injectSourceWithSender:\" target=\"-2\" id=\"EfL-aT-94P\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Load Xprobe\" id=\"8bq-lQ-9Wz\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"loadXprobeWithSender:\" target=\"-2\" id=\"H0T-Xb-HT4\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"File Watcher\" id=\"29j-cv-WKN\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"fileWatcherWithSender:\" target=\"-2\" id=\"er3-j3-KZq\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"macOS Project\" id=\"HAG-oL-hVX\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"macOS Project\" id=\"jKi-Uv-Uj1\">\n                        <items>\n                            <menuItem title=\"Patch\" toolTip=\"for macOS add a main.m to your project and patch it\" id=\"Xgo-b5-QQX\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"patchProjectWithSender:\" target=\"-2\" id=\"cXD-Wi-Zvb\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Unpatch\" toolTip=\"Remove patch code\" id=\"jYC-I2-k5H\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"revertProjectWithSender:\" target=\"-2\" id=\"97s-HZ-eTf\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Xprobe\" toolTip=\"Load Xprobe\" id=\"S0D-cg-BxB\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"osxXprobeWithSender:\" target=\"-2\" id=\"Rgg-Ia-NJy\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Remote Control\" id=\"X7x-Zi-AHw\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Remote Control\" id=\"wGl-td-HOu\">\n                        <items>\n                            <menuItem title=\"Patch &amp; Start\" id=\"G4f-mR-ovP\" userLabel=\"Patch App\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"remotePatchWithSender:\" target=\"-2\" id=\"p2U-D5-mG2\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Unpatch App\" id=\"3Tl-Vk-guG\" userLabel=\"Unpatch App\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"remoteUnpatchWithSender:\" target=\"-2\" id=\"Lb9-AK-O7Q\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Injection Prefs\" hidden=\"YES\" id=\"G5j-r6-sYf\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"showTunableWithSender:\" target=\"iBO-ge-fcE\" id=\"GJQ-bJ-qSj\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Bundle Project\" id=\"IZ1-Vm-3bQ\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"bundleProjectWithSender:\" target=\"-2\" id=\"UNL-d9-Njb\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"View Console\" id=\"tuX-XB-hha\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"showConsoleWithSender:\" target=\"iBO-ge-fcE\" id=\"yL7-0i-ERF\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Refactor Swift\" id=\"qpD-Nx-3dB\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"refactorSwiftWithSender:\" target=\"-2\" id=\"wee-W4-dqL\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Optimise Build\" id=\"VPe-S7-P0R\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"optimiseWithSender:\" target=\"-2\" id=\"vQq-xF-CfY\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Find Space\" id=\"XGq-Qc-78P\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"findSpaceWithSender:\" target=\"-2\" id=\"lPa-Sl-Ssh\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Quit\" id=\"E5g-n4-OkI\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"terminateWithSender:\" target=\"-2\" id=\"f24-1D-I9R\"/>\n                    </connections>\n                </menuItem>\n            </items>\n        </menu>\n        <customObject id=\"iBO-ge-fcE\" customClass=\"INController\" customModule=\"Injection\" customModuleProvider=\"target\"/>\n        <customObject id=\"7lV-Oe-TVG\" customClass=\"XprobePluginMenuController\"/>\n        <menu title=\"Injection\" systemMenu=\"apple\" id=\"FnL-iN-58C\">\n            <items>\n                <menuItem title=\"About Injection\" id=\"iYI-N7-UuY\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"orderFrontStandardAboutPanel:\" target=\"-1\" id=\"YNB-o9-B79\"/>\n                    </connections>\n                </menuItem>\n                <menuItem isSeparatorItem=\"YES\" hidden=\"YES\" id=\"vVR-s5-sfb\"/>\n                <menuItem title=\"Preferences…\" hidden=\"YES\" keyEquivalent=\",\" id=\"clR-w1-P1U\"/>\n                <menuItem isSeparatorItem=\"YES\" id=\"dqK-8c-Mck\"/>\n                <menuItem title=\"Services\" id=\"0sd-CV-YJA\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Services\" systemMenu=\"services\" id=\"y2P-Ji-Xvv\"/>\n                </menuItem>\n                <menuItem isSeparatorItem=\"YES\" id=\"BvO-7C-9ev\"/>\n                <menuItem title=\"Hide Injection\" keyEquivalent=\"h\" id=\"n5b-gx-YgL\">\n                    <connections>\n                        <action selector=\"hide:\" target=\"-1\" id=\"iev-qH-lEX\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Hide Others\" keyEquivalent=\"h\" id=\"tpm-wb-SBt\">\n                    <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                    <connections>\n                        <action selector=\"hideOtherApplications:\" target=\"-1\" id=\"mPC-3Y-DeQ\"/>\n                    </connections>\n                </menuItem>\n                <menuItem title=\"Show All\" id=\"2dS-1E-4ua\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <connections>\n                        <action selector=\"unhideAllApplications:\" target=\"-1\" id=\"e17-kQ-c6H\"/>\n                    </connections>\n                </menuItem>\n                <menuItem isSeparatorItem=\"YES\" id=\"6bM-y3-jPc\"/>\n                <menuItem title=\"Quit Injection\" keyEquivalent=\"q\" id=\"PhC-v3-F8O\">\n                    <connections>\n                        <action selector=\"terminate:\" target=\"-1\" id=\"3m3-FP-8H0\"/>\n                    </connections>\n                </menuItem>\n            </items>\n        </menu>\n    </objects>\n</document>\n"
  },
  {
    "path": "Injectorator/RMController.swift",
    "content": "//\n//  RMController.swift\n//  Injectorator\n//\n//  Created by John Holdsworth on 06/01/2017.\n//  Copyright © 2017 John Holdsworth. All rights reserved.\n//\n\nimport Foundation\n\nclass RMController: RMPluginController {\n\n    var project: Project? {\n        return Integration.shared.appDelegate.state.project\n    }\n\n    @objc override func workspacePath() -> String! {\n        return project?.workspacePath\n    }\n\n    @IBAction override func patch(_ sender: NSMenuItem!) {\n        Integration.shared.remotePatch(sender: sender)\n    }\n\n    @IBAction override func unpatch(_ sender: NSMenuItem!) {\n        Integration.shared.remoteUnpatch(sender: sender)\n    }\n\n}\n"
  },
  {
    "path": "Injectorator.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\tBB010BD91E1F3A0B00C3AACA /* iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = BB010BD41E1F3A0B00C3AACA /* iphone.png */; };\n\t\tBB010BDA1E1F3A0B00C3AACA /* log.html in Resources */ = {isa = PBXBuildFile; fileRef = BB010BD51E1F3A0B00C3AACA /* log.html */; };\n\t\tBB010BDC1E1F3A0B00C3AACA /* patch.py in Resources */ = {isa = PBXBuildFile; fileRef = BB010BD71E1F3A0B00C3AACA /* patch.py */; };\n\t\tBB010BDD1E1F3A0B00C3AACA /* unpatch.py in Resources */ = {isa = PBXBuildFile; fileRef = BB010BD81E1F3A0B00C3AACA /* unpatch.py */; };\n\t\tBB010BDE1E1F3A5600C3AACA /* RemoteCapture.h in Resources */ = {isa = PBXBuildFile; fileRef = BB010BCC1E1F39E800C3AACA /* RemoteCapture.h */; };\n\t\tBB010BDF1E1F3A5600C3AACA /* RemoteHeaders.h in Resources */ = {isa = PBXBuildFile; fileRef = BB010BCD1E1F39E800C3AACA /* RemoteHeaders.h */; };\n\t\tBB010BE01E1F3C2300C3AACA /* RMPluginController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB010BC11E1F39E800C3AACA /* RMPluginController.m */; };\n\t\tBB010BE11E1F3C2300C3AACA /* RMWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB010BC41E1F39E800C3AACA /* RMWindowController.m */; };\n\t\tBB010BE21E1F3C2300C3AACA /* RMMacroManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BB010BC71E1F39E800C3AACA /* RMMacroManager.m */; };\n\t\tBB010BE31E1F3C2300C3AACA /* RMDeviceController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB010BC91E1F39E800C3AACA /* RMDeviceController.m */; };\n\t\tBB010BE41E1F3C2300C3AACA /* RMImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = BB010BCB1E1F39E800C3AACA /* RMImageView.m */; };\n\t\tBB010BE61E1F3D5A00C3AACA /* RMController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB010BE51E1F3D5A00C3AACA /* RMController.swift */; };\n\t\tBB010BE71E1F437C00C3AACA /* RMPluginController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB010BC21E1F39E800C3AACA /* RMPluginController.xib */; };\n\t\tBB010BE81E1F437C00C3AACA /* RMWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB010BC51E1F39E800C3AACA /* RMWindowController.xib */; };\n\t\tBB010C0F1E1F85FF00C3AACA /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB010C0E1E1F85FF00C3AACA /* QTKit.framework */; };\n\t\tBB20D57A1E1F98640013C59F /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = BB7D5F0D1E15B94200393CA1 /* README.md */; };\n\t\tBB248A941E210FCC003F0DF6 /* Benchmark.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB248A921E210E2F003F0DF6 /* Benchmark.swift */; };\n\t\tBB25263E1F65CC9700898347 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = BB25263D1F65CC9700898347 /* LICENSE */; };\n\t\tBB356A531E0AF2780056B10F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB356A521E0AF2780056B10F /* Assets.xcassets */; };\n\t\tBB356A631E0AF2AD0056B10F /* AppController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A5E1E0AF2AD0056B10F /* AppController.swift */; };\n\t\tBB356A641E0AF2AD0056B10F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A5F1E0AF2AD0056B10F /* AppDelegate.swift */; };\n\t\tBB356A651E0AF2AD0056B10F /* Common.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A601E0AF2AD0056B10F /* Common.swift */; };\n\t\tBB356A661E0AF2AD0056B10F /* Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A611E0AF2AD0056B10F /* Formatter.swift */; };\n\t\tBB356A671E0AF2AD0056B10F /* Project.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A621E0AF2AD0056B10F /* Project.swift */; };\n\t\tBB356A701E0AF2E20056B10F /* ByteRegex.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A681E0AF2E20056B10F /* ByteRegex.swift */; };\n\t\tBB356A711E0AF2E20056B10F /* Entity.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A691E0AF2E20056B10F /* Entity.swift */; };\n\t\tBB356A721E0AF2E20056B10F /* IndexDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A6A1E0AF2E20056B10F /* IndexDB.swift */; };\n\t\tBB356A731E0AF2E20056B10F /* IndexStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A6B1E0AF2E20056B10F /* IndexStrings.swift */; };\n\t\tBB356A741E0AF2E20056B10F /* LineGenerators.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A6C1E0AF2E20056B10F /* LineGenerators.swift */; };\n\t\tBB356A751E0AF2E20056B10F /* LogParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A6D1E0AF2E20056B10F /* LogParser.swift */; };\n\t\tBB356A761E0AF2E20056B10F /* SourceKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356A6E1E0AF2E20056B10F /* SourceKit.swift */; };\n\t\tBB356A7B1E0AF36F0056B10F /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB356A791E0AF36E0056B10F /* MainMenu.xib */; };\n\t\tBB356A801E0AF37A0056B10F /* Source.html in Resources */ = {isa = PBXBuildFile; fileRef = BB356A7C1E0AF37A0056B10F /* Source.html */; };\n\t\tBB356A811E0AF37A0056B10F /* canviz.html in Resources */ = {isa = PBXBuildFile; fileRef = BB356A7D1E0AF37A0056B10F /* canviz.html */; };\n\t\tBB356A821E0AF37A0056B10F /* canviz2.html in Resources */ = {isa = PBXBuildFile; fileRef = BB356A7E1E0AF37A0056B10F /* canviz2.html */; };\n\t\tBB356A831E0AF37A0056B10F /* Intro.html in Resources */ = {isa = PBXBuildFile; fileRef = BB356A7F1E0AF37A0056B10F /* Intro.html */; };\n\t\tBB356A851E0AF3910056B10F /* canviz-0.1 in Resources */ = {isa = PBXBuildFile; fileRef = BB356A841E0AF3910056B10F /* canviz-0.1 */; };\n\t\tBB356A881E0AF3E10056B10F /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356A871E0AF3E10056B10F /* Utils.m */; };\n\t\tBB356A8B1E0AF40B0056B10F /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BB356A8A1E0AF40B0056B10F /* libsqlite3.tbd */; };\n\t\tBB356A8C1E0AF42A0056B10F /* Xcode.h in Resources */ = {isa = PBXBuildFile; fileRef = BB356A771E0AF30B0056B10F /* Xcode.h */; };\n\t\tBB356A8E1E0AF4890056B10F /* App.icns in Resources */ = {isa = PBXBuildFile; fileRef = BB356A8D1E0AF4890056B10F /* App.icns */; };\n\t\tBB356A901E0AF4AC0056B10F /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB356A8F1E0AF4AC0056B10F /* WebKit.framework */; };\n\t\tBB356A9F1E0AF6BB0056B10F /* XprobeConsole.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356A9A1E0AF6BB0056B10F /* XprobeConsole.m */; };\n\t\tBB356AA01E0AF6BB0056B10F /* XprobeConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB356A9B1E0AF6BB0056B10F /* XprobeConsole.xib */; };\n\t\tBB356AA11E0AF6BB0056B10F /* XprobePluginMenuController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356A9D1E0AF6BB0056B10F /* XprobePluginMenuController.m */; };\n\t\tBB356AA21E0AF6BB0056B10F /* XprobePluginMenuController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB356A9E1E0AF6BB0056B10F /* XprobePluginMenuController.xib */; };\n\t\tBB356AAE1E0AF6D80056B10F /* INPluginMenuController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356AA41E0AF6D80056B10F /* INPluginMenuController.m */; };\n\t\tBB356AAF1E0AF6D80056B10F /* INPluginMenuController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB356AA51E0AF6D80056B10F /* INPluginMenuController.xib */; };\n\t\tBB356AB01E0AF6D80056B10F /* INPluginClientController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356AA71E0AF6D80056B10F /* INPluginClientController.m */; };\n\t\tBB356AB11E0AF6D80056B10F /* FileWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356AA91E0AF6D80056B10F /* FileWatcher.m */; };\n\t\tBB356AB71E0AF7F40056B10F /* Xtrace.mm in Sources */ = {isa = PBXBuildFile; fileRef = BB356AB31E0AF7F40056B10F /* Xtrace.mm */; };\n\t\tBB356AB81E0AF7F40056B10F /* Xprobe.mm in Sources */ = {isa = PBXBuildFile; fileRef = BB356AB51E0AF7F40056B10F /* Xprobe.mm */; };\n\t\tBB356AB91E0AF7F40056B10F /* Xprobe+Service.mm in Sources */ = {isa = PBXBuildFile; fileRef = BB356AB61E0AF7F40056B10F /* Xprobe+Service.mm */; };\n\t\tBB356ABB1E0AF8130056B10F /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BB356ABA1E0AF8130056B10F /* libz.tbd */; };\n\t\tBB356ABD1E0B03220056B10F /* injection.png in Resources */ = {isa = PBXBuildFile; fileRef = BB356ABC1E0B03220056B10F /* injection.png */; };\n\t\tBB356AE21E0B09610056B10F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356ADD1E0B09610056B10F /* main.m */; };\n\t\tBB356AE31E0B09610056B10F /* Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356ADF1E0B09610056B10F /* Helper.m */; };\n\t\tBB356AE41E0B09610056B10F /* mach_inject.c in Sources */ = {isa = PBXBuildFile; fileRef = BB356AE11E0B09610056B10F /* mach_inject.c */; };\n\t\tBB356B041E0B0BA20056B10F /* mach_inject_bundle_stub.c in Sources */ = {isa = PBXBuildFile; fileRef = BB356B031E0B0BA20056B10F /* mach_inject_bundle_stub.c */; };\n\t\tBB356B051E0B0BC40056B10F /* Bootstrap.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BB356AFC1E0B0B8A0056B10F /* Bootstrap.bundle */; };\n\t\tBB356B0C1E0B0D0A0056B10F /* HelperInstaller.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356B091E0B0D0A0056B10F /* HelperInstaller.m */; };\n\t\tBB356B0D1E0B0D0A0056B10F /* HelperProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356B0B1E0B0D0A0056B10F /* HelperProxy.m */; };\n\t\tBB356B131E0B0E680056B10F /* InjectionOK.tif in Resources */ = {isa = PBXBuildFile; fileRef = BB356B121E0B0E680056B10F /* InjectionOK.tif */; };\n\t\tBB356B7C1E0B4A9A0056B10F /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = BB356B7B1E0B4A9A0056B10F /* Credits.rtf */; };\n\t\tBB356B7E1E0B542F0056B10F /* com.johnholdsworth.Injectorator.Helper in CopyFiles */ = {isa = PBXBuildFile; fileRef = BB356AD61E0B09000056B10F /* com.johnholdsworth.Injectorator.Helper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };\n\t\tBB356B851E0B5A500056B10F /* InjectionIdle.tif in Resources */ = {isa = PBXBuildFile; fileRef = BB356B841E0B5A500056B10F /* InjectionIdle.tif */; };\n\t\tBB356B871E0B5D450056B10F /* INController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356B861E0B5D450056B10F /* INController.swift */; };\n\t\tBB356B891E0B72270056B10F /* common.pm in Resources */ = {isa = PBXBuildFile; fileRef = BB356B881E0B72270056B10F /* common.pm */; };\n\t\tBB356B8C1E0B72890056B10F /* iOSBundleTemplate in Resources */ = {isa = PBXBuildFile; fileRef = BB356B8A1E0B72890056B10F /* iOSBundleTemplate */; };\n\t\tBB356B8D1E0B72890056B10F /* OSXBundleTemplate in Resources */ = {isa = PBXBuildFile; fileRef = BB356B8B1E0B72890056B10F /* OSXBundleTemplate */; };\n\t\tBB356B8E1E0B747B0056B10F /* BundleInterface.h in Resources */ = {isa = PBXBuildFile; fileRef = BB356AAA1E0AF6D80056B10F /* BundleInterface.h */; };\n\t\tBB356B8F1E0B747B0056B10F /* BundleInjection.h in Resources */ = {isa = PBXBuildFile; fileRef = BB356AAB1E0AF6D80056B10F /* BundleInjection.h */; };\n\t\tBB356B911E0B75030056B10F /* injectSource.pl in Resources */ = {isa = PBXBuildFile; fileRef = BB356B901E0B75030056B10F /* injectSource.pl */; };\n\t\tBB356B981E0B8A7F0056B10F /* xprobe.html in Resources */ = {isa = PBXBuildFile; fileRef = BB356B961E0B8A7F0056B10F /* xprobe.html */; };\n\t\tBB356B991E0B8A7F0056B10F /* tiny_red.gif in Resources */ = {isa = PBXBuildFile; fileRef = BB356B971E0B8A7F0056B10F /* tiny_red.gif */; };\n\t\tBB356B9B1E0B8B0D0056B10F /* CodeMirror in Resources */ = {isa = PBXBuildFile; fileRef = BB356B9A1E0B8B0D0056B10F /* CodeMirror */; };\n\t\tBB356BC51E0B976E0056B10F /* evalCode.pl in Resources */ = {isa = PBXBuildFile; fileRef = BB356BC41E0B976E0056B10F /* evalCode.pl */; };\n\t\tBB356BD41E0C4C0F0056B10F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356BD31E0C4C0F0056B10F /* main.m */; };\n\t\tBB356BDA1E0C4C2A0056B10F /* injectSource in Resources */ = {isa = PBXBuildFile; fileRef = BB356BD11E0C4C0E0056B10F /* injectSource */; };\n\t\tBB356BE31E0C761E0056B10F /* Integration.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356BDF1E0C758F0056B10F /* Integration.swift */; };\n\t\tBB356C041E0D9FC20056B10F /* Integration.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB356C001E0D9B410056B10F /* Integration.xib */; };\n\t\tBB356C071E0DA11C0056B10F /* patchProject.pl in Resources */ = {isa = PBXBuildFile; fileRef = BB356C051E0DA0E40056B10F /* patchProject.pl */; };\n\t\tBB356C091E0DA37C0056B10F /* revertProject.pl in Resources */ = {isa = PBXBuildFile; fileRef = BB356C081E0DA37C0056B10F /* revertProject.pl */; };\n\t\tBB356C311E0DA78B0056B10F /* BundleSweeper.h in Resources */ = {isa = PBXBuildFile; fileRef = BB356AAC1E0AF6D80056B10F /* BundleSweeper.h */; };\n\t\tBB356C321E0DA7970056B10F /* IvarAccess.h in Resources */ = {isa = PBXBuildFile; fileRef = BB356AAD1E0AF6D80056B10F /* IvarAccess.h */; };\n\t\tBB4847C01E380E1000622FA4 /* DDHotKeyCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = BB4847BD1E380E1000622FA4 /* DDHotKeyCenter.m */; };\n\t\tBB4847C11E380E1000622FA4 /* DDHotKeyUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BB4847BF1E380E1000622FA4 /* DDHotKeyUtilities.m */; };\n\t\tBB4847C81E38155D00622FA4 /* DDHotKeyCenter.h in Resources */ = {isa = PBXBuildFile; fileRef = BB4847BC1E380E1000622FA4 /* DDHotKeyCenter.h */; };\n\t\tBB5A60A31E221EA600B6C1D9 /* closed_folder_orange.png in Resources */ = {isa = PBXBuildFile; fileRef = BB5A609E1E221EA600B6C1D9 /* closed_folder_orange.png */; };\n\t\tBB5A60A41E221EA600B6C1D9 /* open_folder_orange.png in Resources */ = {isa = PBXBuildFile; fileRef = BB5A609F1E221EA600B6C1D9 /* open_folder_orange.png */; };\n\t\tBB5A60A51E221EA600B6C1D9 /* document.png in Resources */ = {isa = PBXBuildFile; fileRef = BB5A60A01E221EA600B6C1D9 /* document.png */; };\n\t\tBB5A60A61E221EA600B6C1D9 /* scan2.png in Resources */ = {isa = PBXBuildFile; fileRef = BB5A60A11E221EA600B6C1D9 /* scan2.png */; };\n\t\tBB5A60A71E221EA600B6C1D9 /* scan.png in Resources */ = {isa = PBXBuildFile; fileRef = BB5A60A21E221EA600B6C1D9 /* scan.png */; };\n\t\tBB5A60AB1E221EB400B6C1D9 /* DiskTreeAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = BB5A60A91E221EB400B6C1D9 /* DiskTreeAppDelegate.m */; settings = {COMPILER_FLAGS = \"-fno-objc-arc\"; }; };\n\t\tBB5A60B31E221F5C00B6C1D9 /* DiskTree.html in Resources */ = {isa = PBXBuildFile; fileRef = BB5A60B11E221F5C00B6C1D9 /* DiskTree.html */; };\n\t\tBB5A60B41E221F5C00B6C1D9 /* DiskTree.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5A60B21E221F5C00B6C1D9 /* DiskTree.xib */; };\n\t\tBB5A60C81E22220B00B6C1D9 /* tree.c in Sources */ = {isa = PBXBuildFile; fileRef = BB5A60C61E2221EC00B6C1D9 /* tree.c */; };\n\t\tBB63C9DB1F7862A30048D83B /* docs in Resources */ = {isa = PBXBuildFile; fileRef = BB63C9D81F7862A30048D83B /* docs */; };\n\t\tBB6528321E698C4100B8FB95 /* coverage.rb in Resources */ = {isa = PBXBuildFile; fileRef = BB6528301E698C4100B8FB95 /* coverage.rb */; };\n\t\tBB6528331E698C4100B8FB95 /* Coverage.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6528311E698C4100B8FB95 /* Coverage.swift */; };\n\t\tBB8192D41F8855F100C96522 /* InjectUnitTests.pm in Resources */ = {isa = PBXBuildFile; fileRef = BB63C9D21F78105D0048D83B /* InjectUnitTests.pm */; };\n\t\tBBCE04D81E0E16350097E1E6 /* openBundle.pl in Resources */ = {isa = PBXBuildFile; fileRef = BBCE04D71E0E16350097E1E6 /* openBundle.pl */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tBB356AEA1E0B09F60056B10F /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = BB356A451E0AF2780056B10F /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = BB356AD51E0B09000056B10F;\n\t\t\tremoteInfo = com.johnholdsworth.Injectorator.Helper;\n\t\t};\n\t\tBB356B061E0B0BCE0056B10F /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = BB356A451E0AF2780056B10F /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = BB356AFB1E0B0B8A0056B10F;\n\t\t\tremoteInfo = InjectionBootstrap;\n\t\t};\n\t\tBB356B601E0B184D0056B10F /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = BB356B5C1E0B184C0056B10F /* InjectionLoader.xcodeproj */;\n\t\t\tproxyType = 2;\n\t\t\tremoteGlobalIDString = BB356B531E0B184C0056B10F;\n\t\t\tremoteInfo = InjectionLoader;\n\t\t};\n\t\tBB356BB21E0B8E940056B10F /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = BB356BAE1E0B8E930056B10F /* XprobeSwift.xcodeproj */;\n\t\t\tproxyType = 2;\n\t\t\tremoteGlobalIDString = BB356BA51E0B8E930056B10F;\n\t\t\tremoteInfo = XprobeSwift;\n\t\t};\n\t\tBB356BD81E0C4C1B0056B10F /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = BB356A451E0AF2780056B10F /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = BB356BD01E0C4C0E0056B10F;\n\t\t\tremoteInfo = injectSource;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\tBB356AD41E0B09000056B10F /* CopyFiles */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = /usr/share/man/man1/;\n\t\t\tdstSubfolderSpec = 0;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 1;\n\t\t};\n\t\tBB356B7D1E0B54240056B10F /* CopyFiles */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = Contents/Library/LaunchServices;\n\t\t\tdstSubfolderSpec = 1;\n\t\t\tfiles = (\n\t\t\t\tBB356B7E1E0B542F0056B10F /* com.johnholdsworth.Injectorator.Helper in CopyFiles */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB356BCF1E0C4C0E0056B10F /* CopyFiles */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = /usr/share/man/man1/;\n\t\t\tdstSubfolderSpec = 0;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 1;\n\t\t};\n\t\tBB5A60B71E22211900B6C1D9 /* CopyFiles */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = /usr/share/man/man1/;\n\t\t\tdstSubfolderSpec = 0;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 1;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\tBB010BC01E1F39E800C3AACA /* RMPluginController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RMPluginController.h; path = ../Remote/Classes/RMPluginController.h; sourceTree = \"<group>\"; };\n\t\tBB010BC11E1F39E800C3AACA /* RMPluginController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RMPluginController.m; path = ../Remote/Classes/RMPluginController.m; sourceTree = \"<group>\"; };\n\t\tBB010BC21E1F39E800C3AACA /* RMPluginController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RMPluginController.xib; path = ../Remote/Classes/RMPluginController.xib; sourceTree = \"<group>\"; };\n\t\tBB010BC31E1F39E800C3AACA /* RMWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RMWindowController.h; path = ../Remote/Classes/RMWindowController.h; sourceTree = \"<group>\"; };\n\t\tBB010BC41E1F39E800C3AACA /* RMWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RMWindowController.m; path = ../Remote/Classes/RMWindowController.m; sourceTree = \"<group>\"; };\n\t\tBB010BC51E1F39E800C3AACA /* RMWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = RMWindowController.xib; path = ../Remote/Classes/RMWindowController.xib; sourceTree = \"<group>\"; };\n\t\tBB010BC61E1F39E800C3AACA /* RMMacroManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RMMacroManager.h; path = ../Remote/Classes/RMMacroManager.h; sourceTree = \"<group>\"; };\n\t\tBB010BC71E1F39E800C3AACA /* RMMacroManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RMMacroManager.m; path = ../Remote/Classes/RMMacroManager.m; sourceTree = \"<group>\"; };\n\t\tBB010BC81E1F39E800C3AACA /* RMDeviceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RMDeviceController.h; path = ../Remote/Classes/RMDeviceController.h; sourceTree = \"<group>\"; };\n\t\tBB010BC91E1F39E800C3AACA /* RMDeviceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RMDeviceController.m; path = ../Remote/Classes/RMDeviceController.m; sourceTree = \"<group>\"; };\n\t\tBB010BCA1E1F39E800C3AACA /* RMImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RMImageView.h; path = ../Remote/Classes/RMImageView.h; sourceTree = \"<group>\"; };\n\t\tBB010BCB1E1F39E800C3AACA /* RMImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RMImageView.m; path = ../Remote/Classes/RMImageView.m; sourceTree = \"<group>\"; };\n\t\tBB010BCC1E1F39E800C3AACA /* RemoteCapture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteCapture.h; path = ../Remote/Classes/RemoteCapture.h; sourceTree = \"<group>\"; };\n\t\tBB010BCD1E1F39E800C3AACA /* RemoteHeaders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteHeaders.h; path = ../Remote/Classes/RemoteHeaders.h; sourceTree = \"<group>\"; };\n\t\tBB010BD41E1F3A0B00C3AACA /* iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iphone.png; path = ../Remote/iphone.png; sourceTree = \"<group>\"; };\n\t\tBB010BD51E1F3A0B00C3AACA /* log.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = log.html; path = ../Remote/log.html; sourceTree = \"<group>\"; };\n\t\tBB010BD71E1F3A0B00C3AACA /* patch.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = patch.py; path = ../Remote/patch.py; sourceTree = \"<group>\"; };\n\t\tBB010BD81E1F3A0B00C3AACA /* unpatch.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = unpatch.py; path = ../Remote/unpatch.py; sourceTree = \"<group>\"; };\n\t\tBB010BE51E1F3D5A00C3AACA /* RMController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RMController.swift; sourceTree = \"<group>\"; };\n\t\tBB010C0E1E1F85FF00C3AACA /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; };\n\t\tBB248A921E210E2F003F0DF6 /* Benchmark.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Benchmark.swift; sourceTree = \"<group>\"; };\n\t\tBB25263D1F65CC9700898347 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = \"<group>\"; };\n\t\tBB356A4D1E0AF2780056B10F /* Injection.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Injection.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tBB356A521E0AF2780056B10F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\tBB356A571E0AF2780056B10F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tBB356A5D1E0AF2AC0056B10F /* Injectorator-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"Injectorator-Bridging-Header.h\"; sourceTree = \"<group>\"; };\n\t\tBB356A5E1E0AF2AD0056B10F /* AppController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppController.swift; path = ../../RefactoratorApp/Refactorator/AppController.swift; sourceTree = \"<group>\"; };\n\t\tBB356A5F1E0AF2AD0056B10F /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = ../../RefactoratorApp/Refactorator/AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\tBB356A601E0AF2AD0056B10F /* Common.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Common.swift; path = ../../RefactoratorApp/Refactorator/Common.swift; sourceTree = \"<group>\"; };\n\t\tBB356A611E0AF2AD0056B10F /* Formatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Formatter.swift; path = ../../RefactoratorApp/Refactorator/Formatter.swift; sourceTree = \"<group>\"; };\n\t\tBB356A621E0AF2AD0056B10F /* Project.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Project.swift; path = ../../RefactoratorApp/Refactorator/Project.swift; sourceTree = \"<group>\"; };\n\t\tBB356A681E0AF2E20056B10F /* ByteRegex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ByteRegex.swift; path = ../../Refactorator/refactord/ByteRegex.swift; sourceTree = \"<group>\"; };\n\t\tBB356A691E0AF2E20056B10F /* Entity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Entity.swift; path = ../../Refactorator/refactord/Entity.swift; sourceTree = \"<group>\"; };\n\t\tBB356A6A1E0AF2E20056B10F /* IndexDB.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = IndexDB.swift; path = ../../Refactorator/refactord/IndexDB.swift; sourceTree = \"<group>\"; };\n\t\tBB356A6B1E0AF2E20056B10F /* IndexStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = IndexStrings.swift; path = ../../Refactorator/refactord/IndexStrings.swift; sourceTree = \"<group>\"; };\n\t\tBB356A6C1E0AF2E20056B10F /* LineGenerators.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LineGenerators.swift; path = ../../Refactorator/refactord/LineGenerators.swift; sourceTree = \"<group>\"; };\n\t\tBB356A6D1E0AF2E20056B10F /* LogParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LogParser.swift; path = ../../Refactorator/refactord/LogParser.swift; sourceTree = \"<group>\"; };\n\t\tBB356A6E1E0AF2E20056B10F /* SourceKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; name = SourceKit.swift; path = ../../Refactorator/refactord/SourceKit.swift; sourceTree = \"<group>\"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };\n\t\tBB356A6F1E0AF2E20056B10F /* sourcekitd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sourcekitd.h; path = ../../Refactorator/refactord/sourcekitd.h; sourceTree = \"<group>\"; };\n\t\tBB356A771E0AF30B0056B10F /* Xcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Xcode.h; path = ../../RefactoratorApp/Refactorator/Xcode.h; sourceTree = \"<group>\"; };\n\t\tBB356A7A1E0AF36F0056B10F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = ../../RefactoratorApp/Refactorator/Base.lproj/MainMenu.xib; sourceTree = \"<group>\"; };\n\t\tBB356A7C1E0AF37A0056B10F /* Source.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = Source.html; path = ../../RefactoratorApp/Refactorator/Source.html; sourceTree = \"<group>\"; };\n\t\tBB356A7D1E0AF37A0056B10F /* canviz.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = canviz.html; path = ../../RefactoratorApp/Refactorator/canviz.html; sourceTree = \"<group>\"; };\n\t\tBB356A7E1E0AF37A0056B10F /* canviz2.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = canviz2.html; path = ../../RefactoratorApp/Refactorator/canviz2.html; sourceTree = \"<group>\"; };\n\t\tBB356A7F1E0AF37A0056B10F /* Intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = Intro.html; path = ../../RefactoratorApp/Refactorator/Intro.html; sourceTree = \"<group>\"; };\n\t\tBB356A841E0AF3910056B10F /* canviz-0.1 */ = {isa = PBXFileReference; lastKnownFileType = folder; name = \"canviz-0.1\"; path = \"../../RefactoratorApp/canviz-0.1\"; sourceTree = \"<group>\"; };\n\t\tBB356A861E0AF3E10056B10F /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../RefactoratorApp/Refactorator/Utils.h; sourceTree = \"<group>\"; };\n\t\tBB356A871E0AF3E10056B10F /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../RefactoratorApp/Refactorator/Utils.m; sourceTree = \"<group>\"; };\n\t\tBB356A8A1E0AF40B0056B10F /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = \"sourcecode.text-based-dylib-definition\"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; };\n\t\tBB356A8D1E0AF4890056B10F /* App.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = App.icns; sourceTree = \"<group>\"; };\n\t\tBB356A8F1E0AF4AC0056B10F /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };\n\t\tBB356A911E0AF4C40056B10F /* sourcekitd.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = sourcekitd.framework; path = Toolchains/XcodeDefault.xctoolchain/usr/lib/sourcekitd.framework; sourceTree = DEVELOPER_DIR; };\n\t\tBB356A991E0AF6BB0056B10F /* XprobeConsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = XprobeConsole.h; path = ../../XprobePlugin/Classes/XprobeConsole.h; sourceTree = \"<group>\"; };\n\t\tBB356A9A1E0AF6BB0056B10F /* XprobeConsole.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = XprobeConsole.m; path = ../../XprobePlugin/Classes/XprobeConsole.m; sourceTree = \"<group>\"; };\n\t\tBB356A9B1E0AF6BB0056B10F /* XprobeConsole.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = XprobeConsole.xib; path = ../../XprobePlugin/Classes/XprobeConsole.xib; sourceTree = \"<group>\"; };\n\t\tBB356A9C1E0AF6BB0056B10F /* XprobePluginMenuController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = XprobePluginMenuController.h; path = ../../XprobePlugin/Classes/XprobePluginMenuController.h; sourceTree = \"<group>\"; };\n\t\tBB356A9D1E0AF6BB0056B10F /* XprobePluginMenuController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = XprobePluginMenuController.m; path = ../../XprobePlugin/Classes/XprobePluginMenuController.m; sourceTree = \"<group>\"; };\n\t\tBB356A9E1E0AF6BB0056B10F /* XprobePluginMenuController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = XprobePluginMenuController.xib; path = ../../XprobePlugin/Classes/XprobePluginMenuController.xib; sourceTree = \"<group>\"; };\n\t\tBB356AA31E0AF6D80056B10F /* INPluginMenuController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = INPluginMenuController.h; path = ../../injectionforxcode/InjectionPluginLite/Classes/INPluginMenuController.h; sourceTree = \"<group>\"; };\n\t\tBB356AA41E0AF6D80056B10F /* INPluginMenuController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = INPluginMenuController.m; path = ../../injectionforxcode/InjectionPluginLite/Classes/INPluginMenuController.m; sourceTree = \"<group>\"; };\n\t\tBB356AA51E0AF6D80056B10F /* INPluginMenuController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = INPluginMenuController.xib; path = ../../injectionforxcode/InjectionPluginLite/Classes/INPluginMenuController.xib; sourceTree = \"<group>\"; };\n\t\tBB356AA61E0AF6D80056B10F /* INPluginClientController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = INPluginClientController.h; path = ../../injectionforxcode/InjectionPluginLite/Classes/INPluginClientController.h; sourceTree = \"<group>\"; };\n\t\tBB356AA71E0AF6D80056B10F /* INPluginClientController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = INPluginClientController.m; path = ../../injectionforxcode/InjectionPluginLite/Classes/INPluginClientController.m; sourceTree = \"<group>\"; };\n\t\tBB356AA81E0AF6D80056B10F /* FileWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileWatcher.h; path = ../../injectionforxcode/InjectionPluginLite/Classes/FileWatcher.h; sourceTree = \"<group>\"; };\n\t\tBB356AA91E0AF6D80056B10F /* FileWatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FileWatcher.m; path = ../../injectionforxcode/InjectionPluginLite/Classes/FileWatcher.m; sourceTree = \"<group>\"; };\n\t\tBB356AAA1E0AF6D80056B10F /* BundleInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BundleInterface.h; path = ../../injectionforxcode/InjectionPluginLite/Classes/BundleInterface.h; sourceTree = \"<group>\"; };\n\t\tBB356AAB1E0AF6D80056B10F /* BundleInjection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BundleInjection.h; path = ../../injectionforxcode/InjectionPluginLite/Classes/BundleInjection.h; sourceTree = \"<group>\"; };\n\t\tBB356AAC1E0AF6D80056B10F /* BundleSweeper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BundleSweeper.h; path = ../../injectionforxcode/InjectionPluginLite/Classes/BundleSweeper.h; sourceTree = \"<group>\"; };\n\t\tBB356AAD1E0AF6D80056B10F /* IvarAccess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IvarAccess.h; path = ../../injectionforxcode/InjectionPluginLite/Classes/IvarAccess.h; sourceTree = \"<group>\"; };\n\t\tBB356AB21E0AF7F40056B10F /* Xtrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Xtrace.h; path = ../../XprobePlugin/Classes/Xtrace.h; sourceTree = \"<group>\"; };\n\t\tBB356AB31E0AF7F40056B10F /* Xtrace.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Xtrace.mm; path = ../../XprobePlugin/Classes/Xtrace.mm; sourceTree = \"<group>\"; };\n\t\tBB356AB41E0AF7F40056B10F /* Xprobe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Xprobe.h; path = ../../XprobePlugin/Classes/Xprobe.h; sourceTree = \"<group>\"; };\n\t\tBB356AB51E0AF7F40056B10F /* Xprobe.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Xprobe.mm; path = ../../XprobePlugin/Classes/Xprobe.mm; sourceTree = \"<group>\"; };\n\t\tBB356AB61E0AF7F40056B10F /* Xprobe+Service.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = \"Xprobe+Service.mm\"; path = \"../../XprobePlugin/Classes/Xprobe+Service.mm\"; sourceTree = \"<group>\"; };\n\t\tBB356ABA1E0AF8130056B10F /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = \"sourcecode.text-based-dylib-definition\"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };\n\t\tBB356ABC1E0B03220056B10F /* injection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = injection.png; path = ../../injectionforxcode/InjectionPluginLite/injection.png; sourceTree = \"<group>\"; };\n\t\tBB356AD61E0B09000056B10F /* com.johnholdsworth.Injectorator.Helper */ = {isa = PBXFileReference; explicitFileType = \"compiled.mach-o.executable\"; includeInIndex = 0; path = com.johnholdsworth.Injectorator.Helper; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tBB356ADD1E0B09610056B10F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../Smuggler/Helper/main.m; sourceTree = \"<group>\"; };\n\t\tBB356ADE1E0B09610056B10F /* Helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Helper.h; path = ../../Smuggler/Helper/Helper.h; sourceTree = \"<group>\"; };\n\t\tBB356ADF1E0B09610056B10F /* Helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Helper.m; path = ../../Smuggler/Helper/Helper.m; sourceTree = \"<group>\"; };\n\t\tBB356AE01E0B09610056B10F /* mach_inject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mach_inject.h; path = ../../Smuggler/Helper/mach_inject.h; sourceTree = \"<group>\"; };\n\t\tBB356AE11E0B09610056B10F /* mach_inject.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mach_inject.c; path = ../../Smuggler/Helper/mach_inject.c; sourceTree = \"<group>\"; };\n\t\tBB356AE51E0B096D0056B10F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tBB356AE61E0B096D0056B10F /* Info-Launchd.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = \"Info-Launchd.plist\"; sourceTree = \"<group>\"; };\n\t\tBB356AFC1E0B0B8A0056B10F /* Bootstrap.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Bootstrap.bundle; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tBB356AFE1E0B0B8A0056B10F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tBB356B021E0B0BA20056B10F /* mach_inject_bundle_stub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mach_inject_bundle_stub.h; path = ../../Smuggler/Bootstrap/mach_inject_bundle_stub.h; sourceTree = \"<group>\"; };\n\t\tBB356B031E0B0BA20056B10F /* mach_inject_bundle_stub.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mach_inject_bundle_stub.c; path = ../../Smuggler/Bootstrap/mach_inject_bundle_stub.c; sourceTree = \"<group>\"; };\n\t\tBB356B081E0B0D0A0056B10F /* HelperInstaller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HelperInstaller.h; path = ../../Smuggler/Smuggler/HelperInstaller.h; sourceTree = \"<group>\"; };\n\t\tBB356B091E0B0D0A0056B10F /* HelperInstaller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HelperInstaller.m; path = ../../Smuggler/Smuggler/HelperInstaller.m; sourceTree = \"<group>\"; };\n\t\tBB356B0A1E0B0D0A0056B10F /* HelperProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HelperProxy.h; path = ../../Smuggler/Smuggler/HelperProxy.h; sourceTree = \"<group>\"; };\n\t\tBB356B0B1E0B0D0A0056B10F /* HelperProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HelperProxy.m; path = ../../Smuggler/Smuggler/HelperProxy.m; sourceTree = \"<group>\"; };\n\t\tBB356B121E0B0E680056B10F /* InjectionOK.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = InjectionOK.tif; sourceTree = \"<group>\"; };\n\t\tBB356B5C1E0B184C0056B10F /* InjectionLoader.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.pb-project\"; name = InjectionLoader.xcodeproj; path = InjectionLoader/InjectionLoader.xcodeproj; sourceTree = \"<group>\"; };\n\t\tBB356B7B1E0B4A9A0056B10F /* Credits.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = \"<group>\"; };\n\t\tBB356B841E0B5A500056B10F /* InjectionIdle.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = InjectionIdle.tif; sourceTree = \"<group>\"; };\n\t\tBB356B861E0B5D450056B10F /* INController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = INController.swift; sourceTree = \"<group>\"; };\n\t\tBB356B881E0B72270056B10F /* common.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = common.pm; path = ../../injectionforxcode/InjectionPluginLite/common.pm; sourceTree = \"<group>\"; };\n\t\tBB356B8A1E0B72890056B10F /* iOSBundleTemplate */ = {isa = PBXFileReference; lastKnownFileType = folder; name = iOSBundleTemplate; path = ../injectionforxcode/InjectionPluginLite/iOSBundleTemplate; sourceTree = \"<group>\"; };\n\t\tBB356B8B1E0B72890056B10F /* OSXBundleTemplate */ = {isa = PBXFileReference; lastKnownFileType = folder; name = OSXBundleTemplate; path = ../injectionforxcode/InjectionPluginLite/OSXBundleTemplate; sourceTree = \"<group>\"; };\n\t\tBB356B901E0B75030056B10F /* injectSource.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = injectSource.pl; path = ../../injectionforxcode/InjectionPluginLite/injectSource.pl; sourceTree = \"<group>\"; };\n\t\tBB356B961E0B8A7F0056B10F /* xprobe.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = xprobe.html; path = ../../XprobePlugin/xprobe.html; sourceTree = \"<group>\"; };\n\t\tBB356B971E0B8A7F0056B10F /* tiny_red.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; name = tiny_red.gif; path = ../../XprobePlugin/tiny_red.gif; sourceTree = \"<group>\"; };\n\t\tBB356B9A1E0B8B0D0056B10F /* CodeMirror */ = {isa = PBXFileReference; lastKnownFileType = folder; name = CodeMirror; path = ../../XprobePlugin/CodeMirror; sourceTree = \"<group>\"; };\n\t\tBB356BAE1E0B8E930056B10F /* XprobeSwift.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.pb-project\"; name = XprobeSwift.xcodeproj; path = XprobeSwift/XprobeSwift.xcodeproj; sourceTree = \"<group>\"; };\n\t\tBB356BC41E0B976E0056B10F /* evalCode.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = evalCode.pl; path = ../../injectionforxcode/InjectionPluginLite/evalCode.pl; sourceTree = \"<group>\"; };\n\t\tBB356BD11E0C4C0E0056B10F /* injectSource */ = {isa = PBXFileReference; explicitFileType = \"compiled.mach-o.executable\"; includeInIndex = 0; path = injectSource; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tBB356BD31E0C4C0F0056B10F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\tBB356BDF1E0C758F0056B10F /* Integration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Integration.swift; sourceTree = \"<group>\"; };\n\t\tBB356C001E0D9B410056B10F /* Integration.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = Integration.xib; sourceTree = \"<group>\"; };\n\t\tBB356C051E0DA0E40056B10F /* patchProject.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = patchProject.pl; path = ../../injectionforxcode/InjectionPluginLite/patchProject.pl; sourceTree = \"<group>\"; };\n\t\tBB356C081E0DA37C0056B10F /* revertProject.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = revertProject.pl; path = ../../injectionforxcode/InjectionPluginLite/revertProject.pl; sourceTree = \"<group>\"; };\n\t\tBB4847BC1E380E1000622FA4 /* DDHotKeyCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDHotKeyCenter.h; path = ../../DDHotKey/DDHotKeyCenter.h; sourceTree = \"<group>\"; };\n\t\tBB4847BD1E380E1000622FA4 /* DDHotKeyCenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDHotKeyCenter.m; path = ../../DDHotKey/DDHotKeyCenter.m; sourceTree = \"<group>\"; };\n\t\tBB4847BE1E380E1000622FA4 /* DDHotKeyUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDHotKeyUtilities.h; path = ../../DDHotKey/DDHotKeyUtilities.h; sourceTree = \"<group>\"; };\n\t\tBB4847BF1E380E1000622FA4 /* DDHotKeyUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDHotKeyUtilities.m; path = ../../DDHotKey/DDHotKeyUtilities.m; sourceTree = \"<group>\"; };\n\t\tBB5A609E1E221EA600B6C1D9 /* closed_folder_orange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = closed_folder_orange.png; path = ../DiskTree/closed_folder_orange.png; sourceTree = \"<group>\"; };\n\t\tBB5A609F1E221EA600B6C1D9 /* open_folder_orange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = open_folder_orange.png; path = ../DiskTree/open_folder_orange.png; sourceTree = \"<group>\"; };\n\t\tBB5A60A01E221EA600B6C1D9 /* document.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = document.png; path = ../DiskTree/document.png; sourceTree = \"<group>\"; };\n\t\tBB5A60A11E221EA600B6C1D9 /* scan2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = scan2.png; path = ../DiskTree/scan2.png; sourceTree = \"<group>\"; };\n\t\tBB5A60A21E221EA600B6C1D9 /* scan.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = scan.png; path = ../DiskTree/scan.png; sourceTree = \"<group>\"; };\n\t\tBB5A60A81E221EB400B6C1D9 /* DiskTreeAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DiskTreeAppDelegate.h; path = ../DiskTree/DiskTreeAppDelegate.h; sourceTree = \"<group>\"; };\n\t\tBB5A60A91E221EB400B6C1D9 /* DiskTreeAppDelegate.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = DiskTreeAppDelegate.m; path = ../DiskTree/DiskTreeAppDelegate.m; sourceTree = \"<group>\"; };\n\t\tBB5A60B11E221F5C00B6C1D9 /* DiskTree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = DiskTree.html; path = DiskTree/DiskTree.html; sourceTree = \"<group>\"; };\n\t\tBB5A60B21E221F5C00B6C1D9 /* DiskTree.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = DiskTree.xib; path = DiskTree/DiskTree.xib; sourceTree = \"<group>\"; };\n\t\tBB5A60B91E22211900B6C1D9 /* tree */ = {isa = PBXFileReference; explicitFileType = \"compiled.mach-o.executable\"; includeInIndex = 0; path = tree; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tBB5A60C61E2221EC00B6C1D9 /* tree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tree.c; path = DiskTree/tree.c; sourceTree = \"<group>\"; };\n\t\tBB5A60C91E2222A200B6C1D9 /* objcpp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = objcpp.h; path = ../ObjCpp/objcpp.h; sourceTree = \"<group>\"; };\n\t\tBB5A60CA1E2222A200B6C1D9 /* objstr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = objstr.h; path = ../ObjCpp/objstr.h; sourceTree = \"<group>\"; };\n\t\tBB63C9D21F78105D0048D83B /* InjectUnitTests.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = InjectUnitTests.pm; path = ../../injectionforxcode/InjectionPluginLite/InjectUnitTests.pm; sourceTree = \"<group>\"; };\n\t\tBB63C9D81F7862A30048D83B /* docs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = docs; sourceTree = \"<group>\"; };\n\t\tBB6528301E698C4100B8FB95 /* coverage.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; name = coverage.rb; path = ../../RefactoratorApp/Refactorator/coverage.rb; sourceTree = \"<group>\"; };\n\t\tBB6528311E698C4100B8FB95 /* Coverage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Coverage.swift; path = ../../RefactoratorApp/Refactorator/Coverage.swift; sourceTree = \"<group>\"; };\n\t\tBB7D5F0D1E15B94200393CA1 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = \"<group>\"; };\n\t\tBBCE04D71E0E16350097E1E6 /* openBundle.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = openBundle.pl; path = ../../injectionforxcode/InjectionPluginLite/openBundle.pl; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tBB356A4A1E0AF2780056B10F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356A901E0AF4AC0056B10F /* WebKit.framework in Frameworks */,\n\t\t\t\tBB010C0F1E1F85FF00C3AACA /* QTKit.framework in Frameworks */,\n\t\t\t\tBB356A8B1E0AF40B0056B10F /* libsqlite3.tbd in Frameworks */,\n\t\t\t\tBB356ABB1E0AF8130056B10F /* libz.tbd in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB356AD31E0B09000056B10F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB356AF91E0B0B8A0056B10F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB356BCE1E0C4C0E0056B10F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB5A60B61E22211900B6C1D9 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\tBB010BBD1E1F39BE00C3AACA /* Remote */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB010BC01E1F39E800C3AACA /* RMPluginController.h */,\n\t\t\t\tBB010BC11E1F39E800C3AACA /* RMPluginController.m */,\n\t\t\t\tBB010BC21E1F39E800C3AACA /* RMPluginController.xib */,\n\t\t\t\tBB010BC31E1F39E800C3AACA /* RMWindowController.h */,\n\t\t\t\tBB010BC41E1F39E800C3AACA /* RMWindowController.m */,\n\t\t\t\tBB010BC51E1F39E800C3AACA /* RMWindowController.xib */,\n\t\t\t\tBB010BC61E1F39E800C3AACA /* RMMacroManager.h */,\n\t\t\t\tBB010BC71E1F39E800C3AACA /* RMMacroManager.m */,\n\t\t\t\tBB010BC81E1F39E800C3AACA /* RMDeviceController.h */,\n\t\t\t\tBB010BC91E1F39E800C3AACA /* RMDeviceController.m */,\n\t\t\t\tBB010BCA1E1F39E800C3AACA /* RMImageView.h */,\n\t\t\t\tBB010BCB1E1F39E800C3AACA /* RMImageView.m */,\n\t\t\t\tBB010BCC1E1F39E800C3AACA /* RemoteCapture.h */,\n\t\t\t\tBB010BCD1E1F39E800C3AACA /* RemoteHeaders.h */,\n\t\t\t\tBB010BD31E1F39FE00C3AACA /* Resources */,\n\t\t\t);\n\t\t\tname = Remote;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB010BD31E1F39FE00C3AACA /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB010BD41E1F3A0B00C3AACA /* iphone.png */,\n\t\t\t\tBB010BD51E1F3A0B00C3AACA /* log.html */,\n\t\t\t\tBB010BD71E1F3A0B00C3AACA /* patch.py */,\n\t\t\t\tBB010BD81E1F3A0B00C3AACA /* unpatch.py */,\n\t\t\t);\n\t\t\tname = Resources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356A441E0AF2780056B10F = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB63C9D81F7862A30048D83B /* docs */,\n\t\t\t\tBB25263D1F65CC9700898347 /* LICENSE */,\n\t\t\t\tBB7D5F0D1E15B94200393CA1 /* README.md */,\n\t\t\t\tBB356A4F1E0AF2780056B10F /* Injectorator */,\n\t\t\t\tBB356ABE1E0B04B80056B10F /* Refactorator */,\n\t\t\t\tBB356A971E0AF6710056B10F /* Injection */,\n\t\t\t\tBB356A981E0AF67D0056B10F /* Xprobe */,\n\t\t\t\tBB010BBD1E1F39BE00C3AACA /* Remote */,\n\t\t\t\tBB5A609B1E221E7000B6C1D9 /* DiskTree */,\n\t\t\t\tBB356AD71E0B09000056B10F /* InjectionHelper */,\n\t\t\t\tBB356AFD1E0B0B8A0056B10F /* InjectionBootstrap */,\n\t\t\t\tBB356B5C1E0B184C0056B10F /* InjectionLoader.xcodeproj */,\n\t\t\t\tBB356BAE1E0B8E930056B10F /* XprobeSwift.xcodeproj */,\n\t\t\t\tBB356B8A1E0B72890056B10F /* iOSBundleTemplate */,\n\t\t\t\tBB356B8B1E0B72890056B10F /* OSXBundleTemplate */,\n\t\t\t\tBB356BD21E0C4C0F0056B10F /* injectSource */,\n\t\t\t\tBB356A891E0AF40A0056B10F /* Frameworks */,\n\t\t\t\tBB356A4E1E0AF2780056B10F /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356A4E1E0AF2780056B10F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356A4D1E0AF2780056B10F /* Injection.app */,\n\t\t\t\tBB356AD61E0B09000056B10F /* com.johnholdsworth.Injectorator.Helper */,\n\t\t\t\tBB356AFC1E0B0B8A0056B10F /* Bootstrap.bundle */,\n\t\t\t\tBB356BD11E0C4C0E0056B10F /* injectSource */,\n\t\t\t\tBB5A60B91E22211900B6C1D9 /* tree */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356A4F1E0AF2780056B10F /* Injectorator */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356BDF1E0C758F0056B10F /* Integration.swift */,\n\t\t\t\tBB356C001E0D9B410056B10F /* Integration.xib */,\n\t\t\t\tBB248A921E210E2F003F0DF6 /* Benchmark.swift */,\n\t\t\t\tBB356B861E0B5D450056B10F /* INController.swift */,\n\t\t\t\tBB010BE51E1F3D5A00C3AACA /* RMController.swift */,\n\t\t\t\tBB356B081E0B0D0A0056B10F /* HelperInstaller.h */,\n\t\t\t\tBB356B091E0B0D0A0056B10F /* HelperInstaller.m */,\n\t\t\t\tBB356B0A1E0B0D0A0056B10F /* HelperProxy.h */,\n\t\t\t\tBB356B0B1E0B0D0A0056B10F /* HelperProxy.m */,\n\t\t\t\tBB4847BC1E380E1000622FA4 /* DDHotKeyCenter.h */,\n\t\t\t\tBB4847BD1E380E1000622FA4 /* DDHotKeyCenter.m */,\n\t\t\t\tBB4847BE1E380E1000622FA4 /* DDHotKeyUtilities.h */,\n\t\t\t\tBB4847BF1E380E1000622FA4 /* DDHotKeyUtilities.m */,\n\t\t\t\tBB356B841E0B5A500056B10F /* InjectionIdle.tif */,\n\t\t\t\tBB356B121E0B0E680056B10F /* InjectionOK.tif */,\n\t\t\t\tBB356B881E0B72270056B10F /* common.pm */,\n\t\t\t\tBB356C051E0DA0E40056B10F /* patchProject.pl */,\n\t\t\t\tBB356C081E0DA37C0056B10F /* revertProject.pl */,\n\t\t\t\tBB356B901E0B75030056B10F /* injectSource.pl */,\n\t\t\t\tBBCE04D71E0E16350097E1E6 /* openBundle.pl */,\n\t\t\t\tBB356BC41E0B976E0056B10F /* evalCode.pl */,\n\t\t\t\tBB63C9D21F78105D0048D83B /* InjectUnitTests.pm */,\n\t\t\t\tBB356A5D1E0AF2AC0056B10F /* Injectorator-Bridging-Header.h */,\n\t\t\t\tBB356A781E0AF32A0056B10F /* Resources */,\n\t\t\t);\n\t\t\tpath = Injectorator;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356A781E0AF32A0056B10F /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356A521E0AF2780056B10F /* Assets.xcassets */,\n\t\t\t\tBB356A791E0AF36E0056B10F /* MainMenu.xib */,\n\t\t\t\tBB356B7B1E0B4A9A0056B10F /* Credits.rtf */,\n\t\t\t\tBB356A8D1E0AF4890056B10F /* App.icns */,\n\t\t\t\tBB356A571E0AF2780056B10F /* Info.plist */,\n\t\t\t\tBB356A7C1E0AF37A0056B10F /* Source.html */,\n\t\t\t\tBB356A7D1E0AF37A0056B10F /* canviz.html */,\n\t\t\t\tBB356A7E1E0AF37A0056B10F /* canviz2.html */,\n\t\t\t\tBB356A7F1E0AF37A0056B10F /* Intro.html */,\n\t\t\t\tBB356A841E0AF3910056B10F /* canviz-0.1 */,\n\t\t\t);\n\t\t\tname = Resources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356A891E0AF40A0056B10F /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB010C0E1E1F85FF00C3AACA /* QTKit.framework */,\n\t\t\t\tBB356ABA1E0AF8130056B10F /* libz.tbd */,\n\t\t\t\tBB356A911E0AF4C40056B10F /* sourcekitd.framework */,\n\t\t\t\tBB356A8F1E0AF4AC0056B10F /* WebKit.framework */,\n\t\t\t\tBB356A8A1E0AF40B0056B10F /* libsqlite3.tbd */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356A971E0AF6710056B10F /* Injection */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356AA31E0AF6D80056B10F /* INPluginMenuController.h */,\n\t\t\t\tBB356AA41E0AF6D80056B10F /* INPluginMenuController.m */,\n\t\t\t\tBB356AA51E0AF6D80056B10F /* INPluginMenuController.xib */,\n\t\t\t\tBB356AA61E0AF6D80056B10F /* INPluginClientController.h */,\n\t\t\t\tBB356AA71E0AF6D80056B10F /* INPluginClientController.m */,\n\t\t\t\tBB356AA81E0AF6D80056B10F /* FileWatcher.h */,\n\t\t\t\tBB356AA91E0AF6D80056B10F /* FileWatcher.m */,\n\t\t\t\tBB356AAA1E0AF6D80056B10F /* BundleInterface.h */,\n\t\t\t\tBB356AAB1E0AF6D80056B10F /* BundleInjection.h */,\n\t\t\t\tBB356AAC1E0AF6D80056B10F /* BundleSweeper.h */,\n\t\t\t\tBB356AAD1E0AF6D80056B10F /* IvarAccess.h */,\n\t\t\t\tBB356ABC1E0B03220056B10F /* injection.png */,\n\t\t\t);\n\t\t\tname = Injection;\n\t\t\tpath = Injectorator;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356A981E0AF67D0056B10F /* Xprobe */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356AB21E0AF7F40056B10F /* Xtrace.h */,\n\t\t\t\tBB356AB31E0AF7F40056B10F /* Xtrace.mm */,\n\t\t\t\tBB356AB41E0AF7F40056B10F /* Xprobe.h */,\n\t\t\t\tBB356AB51E0AF7F40056B10F /* Xprobe.mm */,\n\t\t\t\tBB356AB61E0AF7F40056B10F /* Xprobe+Service.mm */,\n\t\t\t\tBB356A991E0AF6BB0056B10F /* XprobeConsole.h */,\n\t\t\t\tBB356A9A1E0AF6BB0056B10F /* XprobeConsole.m */,\n\t\t\t\tBB356A9B1E0AF6BB0056B10F /* XprobeConsole.xib */,\n\t\t\t\tBB356A9C1E0AF6BB0056B10F /* XprobePluginMenuController.h */,\n\t\t\t\tBB356A9D1E0AF6BB0056B10F /* XprobePluginMenuController.m */,\n\t\t\t\tBB356A9E1E0AF6BB0056B10F /* XprobePluginMenuController.xib */,\n\t\t\t\tBB356B961E0B8A7F0056B10F /* xprobe.html */,\n\t\t\t\tBB356B971E0B8A7F0056B10F /* tiny_red.gif */,\n\t\t\t\tBB356B9A1E0B8B0D0056B10F /* CodeMirror */,\n\t\t\t);\n\t\t\tname = Xprobe;\n\t\t\tpath = Injectorator;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356ABE1E0B04B80056B10F /* Refactorator */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356A5F1E0AF2AD0056B10F /* AppDelegate.swift */,\n\t\t\t\tBB356A5E1E0AF2AD0056B10F /* AppController.swift */,\n\t\t\t\tBB356A611E0AF2AD0056B10F /* Formatter.swift */,\n\t\t\t\tBB356A601E0AF2AD0056B10F /* Common.swift */,\n\t\t\t\tBB356A621E0AF2AD0056B10F /* Project.swift */,\n\t\t\t\tBB356A691E0AF2E20056B10F /* Entity.swift */,\n\t\t\t\tBB356A6A1E0AF2E20056B10F /* IndexDB.swift */,\n\t\t\t\tBB356A681E0AF2E20056B10F /* ByteRegex.swift */,\n\t\t\t\tBB356A6B1E0AF2E20056B10F /* IndexStrings.swift */,\n\t\t\t\tBB356A6C1E0AF2E20056B10F /* LineGenerators.swift */,\n\t\t\t\tBB356A6D1E0AF2E20056B10F /* LogParser.swift */,\n\t\t\t\tBB356A6E1E0AF2E20056B10F /* SourceKit.swift */,\n\t\t\t\tBB6528311E698C4100B8FB95 /* Coverage.swift */,\n\t\t\t\tBB6528301E698C4100B8FB95 /* coverage.rb */,\n\t\t\t\tBB356A6F1E0AF2E20056B10F /* sourcekitd.h */,\n\t\t\t\tBB356A771E0AF30B0056B10F /* Xcode.h */,\n\t\t\t\tBB356A861E0AF3E10056B10F /* Utils.h */,\n\t\t\t\tBB356A871E0AF3E10056B10F /* Utils.m */,\n\t\t\t);\n\t\t\tname = Refactorator;\n\t\t\tpath = Injectorator;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356AD71E0B09000056B10F /* InjectionHelper */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356ADD1E0B09610056B10F /* main.m */,\n\t\t\t\tBB356ADE1E0B09610056B10F /* Helper.h */,\n\t\t\t\tBB356ADF1E0B09610056B10F /* Helper.m */,\n\t\t\t\tBB356AE01E0B09610056B10F /* mach_inject.h */,\n\t\t\t\tBB356AE11E0B09610056B10F /* mach_inject.c */,\n\t\t\t\tBB356AE51E0B096D0056B10F /* Info.plist */,\n\t\t\t\tBB356AE61E0B096D0056B10F /* Info-Launchd.plist */,\n\t\t\t);\n\t\t\tpath = InjectionHelper;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356AFD1E0B0B8A0056B10F /* InjectionBootstrap */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356B021E0B0BA20056B10F /* mach_inject_bundle_stub.h */,\n\t\t\t\tBB356B031E0B0BA20056B10F /* mach_inject_bundle_stub.c */,\n\t\t\t\tBB356AFE1E0B0B8A0056B10F /* Info.plist */,\n\t\t\t);\n\t\t\tpath = InjectionBootstrap;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356B5D1E0B184C0056B10F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356B611E0B184D0056B10F /* InjectionLoader.bundle */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356BAF1E0B8E930056B10F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356BB31E0B8E940056B10F /* XprobeSwift.bundle */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356BD21E0C4C0F0056B10F /* injectSource */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356BD31E0C4C0F0056B10F /* main.m */,\n\t\t\t);\n\t\t\tpath = injectSource;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB5A609B1E221E7000B6C1D9 /* DiskTree */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB5A60C91E2222A200B6C1D9 /* objcpp.h */,\n\t\t\t\tBB5A60CA1E2222A200B6C1D9 /* objstr.h */,\n\t\t\t\tBB5A60B21E221F5C00B6C1D9 /* DiskTree.xib */,\n\t\t\t\tBB5A60B11E221F5C00B6C1D9 /* DiskTree.html */,\n\t\t\t\tBB5A60A81E221EB400B6C1D9 /* DiskTreeAppDelegate.h */,\n\t\t\t\tBB5A60A91E221EB400B6C1D9 /* DiskTreeAppDelegate.m */,\n\t\t\t\tBB5A609E1E221EA600B6C1D9 /* closed_folder_orange.png */,\n\t\t\t\tBB5A609F1E221EA600B6C1D9 /* open_folder_orange.png */,\n\t\t\t\tBB5A60A01E221EA600B6C1D9 /* document.png */,\n\t\t\t\tBB5A60A11E221EA600B6C1D9 /* scan2.png */,\n\t\t\t\tBB5A60A21E221EA600B6C1D9 /* scan.png */,\n\t\t\t\tBB5A60C61E2221EC00B6C1D9 /* tree.c */,\n\t\t\t);\n\t\t\tname = DiskTree;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tBB356A4C1E0AF2780056B10F /* Injection */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = BB356A5A1E0AF2780056B10F /* Build configuration list for PBXNativeTarget \"Injection\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tBBE9E2F51E32274A00CF0929 /* ShellScript */,\n\t\t\t\tBB356A491E0AF2780056B10F /* Sources */,\n\t\t\t\tBB356A4A1E0AF2780056B10F /* Frameworks */,\n\t\t\t\tBB356A4B1E0AF2780056B10F /* Resources */,\n\t\t\t\tBB356B7D1E0B54240056B10F /* CopyFiles */,\n\t\t\t\tBB356B6D1E0B192C0056B10F /* ShellScript */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tBB356AEB1E0B09F60056B10F /* PBXTargetDependency */,\n\t\t\t\tBB356B071E0B0BCE0056B10F /* PBXTargetDependency */,\n\t\t\t\tBB356BD91E0C4C1B0056B10F /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = Injection;\n\t\t\tproductName = Injectorator;\n\t\t\tproductReference = BB356A4D1E0AF2780056B10F /* Injection.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tBB356AD51E0B09000056B10F /* com.johnholdsworth.Injectorator.Helper */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = BB356ADA1E0B09000056B10F /* Build configuration list for PBXNativeTarget \"com.johnholdsworth.Injectorator.Helper\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tBB356AD21E0B09000056B10F /* Sources */,\n\t\t\t\tBB356AD31E0B09000056B10F /* Frameworks */,\n\t\t\t\tBB356AD41E0B09000056B10F /* CopyFiles */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = com.johnholdsworth.Injectorator.Helper;\n\t\t\tproductName = InjectionHelper;\n\t\t\tproductReference = BB356AD61E0B09000056B10F /* com.johnholdsworth.Injectorator.Helper */;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\tBB356AFB1E0B0B8A0056B10F /* InjectionBootstrap */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = BB356AFF1E0B0B8A0056B10F /* Build configuration list for PBXNativeTarget \"InjectionBootstrap\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tBB356AF81E0B0B8A0056B10F /* Sources */,\n\t\t\t\tBB356AF91E0B0B8A0056B10F /* Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = InjectionBootstrap;\n\t\t\tproductName = InjectionBootstrap;\n\t\t\tproductReference = BB356AFC1E0B0B8A0056B10F /* Bootstrap.bundle */;\n\t\t\tproductType = \"com.apple.product-type.bundle\";\n\t\t};\n\t\tBB356BD01E0C4C0E0056B10F /* injectSource */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = BB356BD71E0C4C130056B10F /* Build configuration list for PBXNativeTarget \"injectSource\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tBB356BCD1E0C4C0E0056B10F /* Sources */,\n\t\t\t\tBB356BCE1E0C4C0E0056B10F /* Frameworks */,\n\t\t\t\tBB356BCF1E0C4C0E0056B10F /* CopyFiles */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = injectSource;\n\t\t\tproductName = injectSource;\n\t\t\tproductReference = BB356BD11E0C4C0E0056B10F /* injectSource */;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\tBB5A60B81E22211900B6C1D9 /* tree */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = BB5A60BD1E22211900B6C1D9 /* Build configuration list for PBXNativeTarget \"tree\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tBB5A60B51E22211900B6C1D9 /* Sources */,\n\t\t\t\tBB5A60B61E22211900B6C1D9 /* Frameworks */,\n\t\t\t\tBB5A60B71E22211900B6C1D9 /* CopyFiles */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = tree;\n\t\t\tproductName = tree;\n\t\t\tproductReference = BB5A60B91E22211900B6C1D9 /* tree */;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tBB356A451E0AF2780056B10F /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 0820;\n\t\t\t\tLastUpgradeCheck = 0820;\n\t\t\t\tORGANIZATIONNAME = \"John Holdsworth\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tBB356A4C1E0AF2780056B10F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tDevelopmentTeam = 9V5A8WE85E;\n\t\t\t\t\t\tLastSwiftMigration = 0820;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t\tBB356AD51E0B09000056B10F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tDevelopmentTeam = 9V5A8WE85E;\n\t\t\t\t\t\tLastSwiftMigration = 0820;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t\tBB356AFB1E0B0B8A0056B10F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tDevelopmentTeam = 9V5A8WE85E;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t\tBB356BD01E0C4C0E0056B10F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tDevelopmentTeam = 9V5A8WE85E;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t\tBB5A60B81E22211900B6C1D9 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tDevelopmentTeam = 9V5A8WE85E;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = BB356A481E0AF2780056B10F /* Build configuration list for PBXProject \"Injectorator\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = BB356A441E0AF2780056B10F;\n\t\t\tproductRefGroup = BB356A4E1E0AF2780056B10F /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectReferences = (\n\t\t\t\t{\n\t\t\t\t\tProductGroup = BB356B5D1E0B184C0056B10F /* Products */;\n\t\t\t\t\tProjectRef = BB356B5C1E0B184C0056B10F /* InjectionLoader.xcodeproj */;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tProductGroup = BB356BAF1E0B8E930056B10F /* Products */;\n\t\t\t\t\tProjectRef = BB356BAE1E0B8E930056B10F /* XprobeSwift.xcodeproj */;\n\t\t\t\t},\n\t\t\t);\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tBB356A4C1E0AF2780056B10F /* Injection */,\n\t\t\t\tBB356AD51E0B09000056B10F /* com.johnholdsworth.Injectorator.Helper */,\n\t\t\t\tBB356AFB1E0B0B8A0056B10F /* InjectionBootstrap */,\n\t\t\t\tBB356BD01E0C4C0E0056B10F /* injectSource */,\n\t\t\t\tBB5A60B81E22211900B6C1D9 /* tree */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXReferenceProxy section */\n\t\tBB356B611E0B184D0056B10F /* InjectionLoader.bundle */ = {\n\t\t\tisa = PBXReferenceProxy;\n\t\t\tfileType = wrapper.cfbundle;\n\t\t\tpath = InjectionLoader.bundle;\n\t\t\tremoteRef = BB356B601E0B184D0056B10F /* PBXContainerItemProxy */;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\tBB356BB31E0B8E940056B10F /* XprobeSwift.bundle */ = {\n\t\t\tisa = PBXReferenceProxy;\n\t\t\tfileType = wrapper.cfbundle;\n\t\t\tpath = XprobeSwift.bundle;\n\t\t\tremoteRef = BB356BB21E0B8E940056B10F /* PBXContainerItemProxy */;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n/* End PBXReferenceProxy section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tBB356A4B1E0AF2780056B10F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB4847C81E38155D00622FA4 /* DDHotKeyCenter.h in Resources */,\n\t\t\t\tBB20D57A1E1F98640013C59F /* README.md in Resources */,\n\t\t\t\tBB010BE71E1F437C00C3AACA /* RMPluginController.xib in Resources */,\n\t\t\t\tBB5A60A61E221EA600B6C1D9 /* scan2.png in Resources */,\n\t\t\t\tBB010BE81E1F437C00C3AACA /* RMWindowController.xib in Resources */,\n\t\t\t\tBB356C091E0DA37C0056B10F /* revertProject.pl in Resources */,\n\t\t\t\tBBCE04D81E0E16350097E1E6 /* openBundle.pl in Resources */,\n\t\t\t\tBB356BDA1E0C4C2A0056B10F /* injectSource in Resources */,\n\t\t\t\tBB356B051E0B0BC40056B10F /* Bootstrap.bundle in Resources */,\n\t\t\t\tBB356B8E1E0B747B0056B10F /* BundleInterface.h in Resources */,\n\t\t\t\tBB010BDC1E1F3A0B00C3AACA /* patch.py in Resources */,\n\t\t\t\tBB010BDA1E1F3A0B00C3AACA /* log.html in Resources */,\n\t\t\t\tBB356B8F1E0B747B0056B10F /* BundleInjection.h in Resources */,\n\t\t\t\tBB356C311E0DA78B0056B10F /* BundleSweeper.h in Resources */,\n\t\t\t\tBB356C321E0DA7970056B10F /* IvarAccess.h in Resources */,\n\t\t\t\tBB25263E1F65CC9700898347 /* LICENSE in Resources */,\n\t\t\t\tBB356B891E0B72270056B10F /* common.pm in Resources */,\n\t\t\t\tBB356C071E0DA11C0056B10F /* patchProject.pl in Resources */,\n\t\t\t\tBB356B911E0B75030056B10F /* injectSource.pl in Resources */,\n\t\t\t\tBB356BC51E0B976E0056B10F /* evalCode.pl in Resources */,\n\t\t\t\tBB8192D41F8855F100C96522 /* InjectUnitTests.pm in Resources */,\n\t\t\t\tBB356B8C1E0B72890056B10F /* iOSBundleTemplate in Resources */,\n\t\t\t\tBB356B8D1E0B72890056B10F /* OSXBundleTemplate in Resources */,\n\t\t\t\tBB356AAF1E0AF6D80056B10F /* INPluginMenuController.xib in Resources */,\n\t\t\t\tBB356AA21E0AF6BB0056B10F /* XprobePluginMenuController.xib in Resources */,\n\t\t\t\tBB63C9DB1F7862A30048D83B /* docs in Resources */,\n\t\t\t\tBB356AA01E0AF6BB0056B10F /* XprobeConsole.xib in Resources */,\n\t\t\t\tBB356B991E0B8A7F0056B10F /* tiny_red.gif in Resources */,\n\t\t\t\tBB6528321E698C4100B8FB95 /* coverage.rb in Resources */,\n\t\t\t\tBB356B981E0B8A7F0056B10F /* xprobe.html in Resources */,\n\t\t\t\tBB356A831E0AF37A0056B10F /* Intro.html in Resources */,\n\t\t\t\tBB356A801E0AF37A0056B10F /* Source.html in Resources */,\n\t\t\t\tBB356A811E0AF37A0056B10F /* canviz.html in Resources */,\n\t\t\t\tBB356A821E0AF37A0056B10F /* canviz2.html in Resources */,\n\t\t\t\tBB010BDD1E1F3A0B00C3AACA /* unpatch.py in Resources */,\n\t\t\t\tBB356A851E0AF3910056B10F /* canviz-0.1 in Resources */,\n\t\t\t\tBB5A60A71E221EA600B6C1D9 /* scan.png in Resources */,\n\t\t\t\tBB356B9B1E0B8B0D0056B10F /* CodeMirror in Resources */,\n\t\t\t\tBB356A531E0AF2780056B10F /* Assets.xcassets in Resources */,\n\t\t\t\tBB356C041E0D9FC20056B10F /* Integration.xib in Resources */,\n\t\t\t\tBB356A7B1E0AF36F0056B10F /* MainMenu.xib in Resources */,\n\t\t\t\tBB5A60B41E221F5C00B6C1D9 /* DiskTree.xib in Resources */,\n\t\t\t\tBB5A60B31E221F5C00B6C1D9 /* DiskTree.html in Resources */,\n\t\t\t\tBB356A8E1E0AF4890056B10F /* App.icns in Resources */,\n\t\t\t\tBB356B131E0B0E680056B10F /* InjectionOK.tif in Resources */,\n\t\t\t\tBB356B851E0B5A500056B10F /* InjectionIdle.tif in Resources */,\n\t\t\t\tBB356B7C1E0B4A9A0056B10F /* Credits.rtf in Resources */,\n\t\t\t\tBB010BD91E1F3A0B00C3AACA /* iphone.png in Resources */,\n\t\t\t\tBB356ABD1E0B03220056B10F /* injection.png in Resources */,\n\t\t\t\tBB356A8C1E0AF42A0056B10F /* Xcode.h in Resources */,\n\t\t\t\tBB010BDE1E1F3A5600C3AACA /* RemoteCapture.h in Resources */,\n\t\t\t\tBB010BDF1E1F3A5600C3AACA /* RemoteHeaders.h in Resources */,\n\t\t\t\tBB5A60A31E221EA600B6C1D9 /* closed_folder_orange.png in Resources */,\n\t\t\t\tBB5A60A41E221EA600B6C1D9 /* open_folder_orange.png in Resources */,\n\t\t\t\tBB5A60A51E221EA600B6C1D9 /* document.png in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\tBB356B6D1E0B192C0056B10F /* ShellScript */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = \"/bin/sh -x\";\n\t\t\tshellScript = \"SYMROOT=/tmp\\nchmod +x \\\"$CODESIGNING_FOLDER_PATH/Contents/Resources\\\"/*.pl &&\\ncd InjectionLoader && \\\"$DEVELOPER_BIN_DIR\\\"/xcodebuild SYMROOT=$SYMROOT -arch x86_64 -sdk iphonesimulator -config Debug && cd - &&\\ncp -rfv $SYMROOT/*-iphonesimulator/InjectionLoader.bundle \\\"$CODESIGNING_FOLDER_PATH/Contents/Resources\\\" &&\\ncd XprobeSwift && \\\"$DEVELOPER_BIN_DIR\\\"/xcodebuild SYMROOT=$SYMROOT -arch x86_64 -sdk iphonesimulator -config Debug && cd - &&\\nrm -rf \\\"$CODESIGNING_FOLDER_PATH/Contents/Resources/InjectionLoader.bundle/XprobeSwift.loader\\\" &&\\ncp -rfv $SYMROOT/*-iphonesimulator/XprobeSwift.bundle \\\"$CODESIGNING_FOLDER_PATH/Contents/Resources/InjectionLoader.bundle/XprobeSwift.loader\\\" &&\\ncd ../XprobePlugin/XprobeBundle &&\\n\\\"$DEVELOPER_BIN_DIR\\\"/xcodebuild SYMROOT=$SYMROOT -arch x86_64 -sdk macosx -config Debug &&\\ncp -rfv $SYMROOT/Debug/XprobeBundle.loader \\\"$CODESIGNING_FOLDER_PATH/Contents/Resources\\\" && cd -\\ncd XprobeSwift && \\\"$DEVELOPER_BIN_DIR\\\"/xcodebuild SYMROOT=$SYMROOT -arch x86_64 -sdk macosx -config Debug && cd - &&\\nrm -rf \\\"$CODESIGNING_FOLDER_PATH/Contents/Resources/XprobeBundle.loader/XprobeSwift.loader\\\" &&\\ncp -rfv $SYMROOT/Debug/XprobeSwift.bundle \\\"$CODESIGNING_FOLDER_PATH/Contents/Resources/XprobeBundle.loader/XprobeSwift.loader\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\tBBE9E2F51E32274A00CF0929 /* ShellScript */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"buildNumber=$(/usr/libexec/PlistBuddy -c \\\"Print CFBundleVersion\\\" \\\"${PROJECT_DIR}/${INFOPLIST_FILE}\\\")\\nbuildNumber=$(($buildNumber + 1))\\nchmod +w \\\"${PROJECT_DIR}/${INFOPLIST_FILE}\\\"\\n/usr/libexec/PlistBuddy -c \\\"Set :CFBundleVersion $buildNumber\\\" \\\"${PROJECT_DIR}/${INFOPLIST_FILE}\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tBB356A491E0AF2780056B10F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356AB01E0AF6D80056B10F /* INPluginClientController.m in Sources */,\n\t\t\t\tBB356AAE1E0AF6D80056B10F /* INPluginMenuController.m in Sources */,\n\t\t\t\tBB356AA11E0AF6BB0056B10F /* XprobePluginMenuController.m in Sources */,\n\t\t\t\tBB5A60AB1E221EB400B6C1D9 /* DiskTreeAppDelegate.m in Sources */,\n\t\t\t\tBB356A9F1E0AF6BB0056B10F /* XprobeConsole.m in Sources */,\n\t\t\t\tBB356AB71E0AF7F40056B10F /* Xtrace.mm in Sources */,\n\t\t\t\tBB356AB81E0AF7F40056B10F /* Xprobe.mm in Sources */,\n\t\t\t\tBB356AB91E0AF7F40056B10F /* Xprobe+Service.mm in Sources */,\n\t\t\t\tBB010BE01E1F3C2300C3AACA /* RMPluginController.m in Sources */,\n\t\t\t\tBB6528331E698C4100B8FB95 /* Coverage.swift in Sources */,\n\t\t\t\tBB010BE11E1F3C2300C3AACA /* RMWindowController.m in Sources */,\n\t\t\t\tBB010BE21E1F3C2300C3AACA /* RMMacroManager.m in Sources */,\n\t\t\t\tBB010BE31E1F3C2300C3AACA /* RMDeviceController.m in Sources */,\n\t\t\t\tBB010BE41E1F3C2300C3AACA /* RMImageView.m in Sources */,\n\t\t\t\tBB356BE31E0C761E0056B10F /* Integration.swift in Sources */,\n\t\t\t\tBB248A941E210FCC003F0DF6 /* Benchmark.swift in Sources */,\n\t\t\t\tBB356B871E0B5D450056B10F /* INController.swift in Sources */,\n\t\t\t\tBB010BE61E1F3D5A00C3AACA /* RMController.swift in Sources */,\n\t\t\t\tBB356A641E0AF2AD0056B10F /* AppDelegate.swift in Sources */,\n\t\t\t\tBB356A631E0AF2AD0056B10F /* AppController.swift in Sources */,\n\t\t\t\tBB356A661E0AF2AD0056B10F /* Formatter.swift in Sources */,\n\t\t\t\tBB356A881E0AF3E10056B10F /* Utils.m in Sources */,\n\t\t\t\tBB356B0C1E0B0D0A0056B10F /* HelperInstaller.m in Sources */,\n\t\t\t\tBB356AB11E0AF6D80056B10F /* FileWatcher.m in Sources */,\n\t\t\t\tBB356B0D1E0B0D0A0056B10F /* HelperProxy.m in Sources */,\n\t\t\t\tBB356A651E0AF2AD0056B10F /* Common.swift in Sources */,\n\t\t\t\tBB356A711E0AF2E20056B10F /* Entity.swift in Sources */,\n\t\t\t\tBB356A671E0AF2AD0056B10F /* Project.swift in Sources */,\n\t\t\t\tBB4847C11E380E1000622FA4 /* DDHotKeyUtilities.m in Sources */,\n\t\t\t\tBB356A761E0AF2E20056B10F /* SourceKit.swift in Sources */,\n\t\t\t\tBB4847C01E380E1000622FA4 /* DDHotKeyCenter.m in Sources */,\n\t\t\t\tBB356A731E0AF2E20056B10F /* IndexStrings.swift in Sources */,\n\t\t\t\tBB356A721E0AF2E20056B10F /* IndexDB.swift in Sources */,\n\t\t\t\tBB356A751E0AF2E20056B10F /* LogParser.swift in Sources */,\n\t\t\t\tBB356A701E0AF2E20056B10F /* ByteRegex.swift in Sources */,\n\t\t\t\tBB356A741E0AF2E20056B10F /* LineGenerators.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB356AD21E0B09000056B10F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356AE21E0B09610056B10F /* main.m in Sources */,\n\t\t\t\tBB356AE31E0B09610056B10F /* Helper.m in Sources */,\n\t\t\t\tBB356AE41E0B09610056B10F /* mach_inject.c in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB356AF81E0B0B8A0056B10F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356B041E0B0BA20056B10F /* mach_inject_bundle_stub.c in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB356BCD1E0C4C0E0056B10F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356BD41E0C4C0F0056B10F /* main.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBB5A60B51E22211900B6C1D9 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB5A60C81E22220B00B6C1D9 /* tree.c in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\tBB356AEB1E0B09F60056B10F /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = BB356AD51E0B09000056B10F /* com.johnholdsworth.Injectorator.Helper */;\n\t\t\ttargetProxy = BB356AEA1E0B09F60056B10F /* PBXContainerItemProxy */;\n\t\t};\n\t\tBB356B071E0B0BCE0056B10F /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = BB356AFB1E0B0B8A0056B10F /* InjectionBootstrap */;\n\t\t\ttargetProxy = BB356B061E0B0BCE0056B10F /* PBXContainerItemProxy */;\n\t\t};\n\t\tBB356BD91E0C4C1B0056B10F /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = BB356BD01E0C4C0E0056B10F /* injectSource */;\n\t\t\ttargetProxy = BB356BD81E0C4C1B0056B10F /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\tBB356A791E0AF36E0056B10F /* MainMenu.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356A7A1E0AF36F0056B10F /* Base */,\n\t\t\t);\n\t\t\tname = MainMenu.xib;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tBB356A581E0AF2780056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"INJECTION_PORT=$INJECTION_PORT\",\n\t\t\t\t\t\"XPROBE_PORT=$XPROBE_PORT\",\n\t\t\t\t\t\"REMOTE_PORT=$REMOTE_PORT\",\n\t\t\t\t\t\"HELPER_MACH_ID=\\\\\\\"$HELPER_MACH_ID\\\\\\\"\",\n\t\t\t\t\t\"INJECTION_ADDR=INADDR_LOOPBACK\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tHEADER_SEARCH_PATHS = Injectorator;\n\t\t\t\tHELPER_MACH_ID = com.johnholdsworth.Injectorator.Helper.mach;\n\t\t\t\tINJECTION_PORT = 31452;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tREMOTE_PORT = 31459;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tXPROBE_PORT = 31458;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356A591E0AF2780056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"INJECTION_PORT=$INJECTION_PORT\",\n\t\t\t\t\t\"XPROBE_PORT=$XPROBE_PORT\",\n\t\t\t\t\t\"REMOTE_PORT=$REMOTE_PORT\",\n\t\t\t\t\t\"HELPER_MACH_ID=\\\\\\\"$HELPER_MACH_ID\\\\\\\"\",\n\t\t\t\t\t\"INJECTION_ADDR=INADDR_LOOPBACK\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tHEADER_SEARCH_PATHS = Injectorator;\n\t\t\t\tHELPER_MACH_ID = com.johnholdsworth.Injectorator.Helper.mach;\n\t\t\t\tINJECTION_PORT = 31452;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tREMOTE_PORT = 31459;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tXPROBE_PORT = 31458;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tBB356A5B1E0AF2780056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = Injectorator/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks\";\n\t\t\t\tOTHER_SWIFT_FLAGS = \"\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.Injectorator;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"Injectorator/Injectorator-Bridging-Header.h\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356A5C1E0AF2780056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = Injectorator/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks\";\n\t\t\t\tOTHER_SWIFT_FLAGS = \"\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.Injectorator;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"Injectorator/Injectorator-Bridging-Header.h\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tBB356ADB1E0B09000056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = InjectionHelper/Info.plist;\n\t\t\t\tINFOPLIST_PREPROCESS = YES;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks\";\n\t\t\t\tOTHER_LDFLAGS = (\n\t\t\t\t\t\"-sectcreate\",\n\t\t\t\t\t__TEXT,\n\t\t\t\t\t__info_plist,\n\t\t\t\t\tInjectionHelper/Info.plist,\n\t\t\t\t\t\"-sectcreate\",\n\t\t\t\t\t__TEXT,\n\t\t\t\t\t__launchd_plist,\n\t\t\t\t\t\"InjectionHelper/Info-Launchd.plist\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356ADC1E0B09000056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = InjectionHelper/Info.plist;\n\t\t\t\tINFOPLIST_PREPROCESS = YES;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks\";\n\t\t\t\tOTHER_LDFLAGS = (\n\t\t\t\t\t\"-sectcreate\",\n\t\t\t\t\t__TEXT,\n\t\t\t\t\t__info_plist,\n\t\t\t\t\tInjectionHelper/Info.plist,\n\t\t\t\t\t\"-sectcreate\",\n\t\t\t\t\t__TEXT,\n\t\t\t\t\t__launchd_plist,\n\t\t\t\t\t\"InjectionHelper/Info-Launchd.plist\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tBB356B001E0B0B8A0056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = InjectionBootstrap/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Bundles\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.InjectionBootstrap;\n\t\t\t\tPRODUCT_NAME = Bootstrap;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tWRAPPER_EXTENSION = bundle;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356B011E0B0B8A0056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = InjectionBootstrap/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Bundles\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.InjectionBootstrap;\n\t\t\t\tPRODUCT_NAME = Bootstrap;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tWRAPPER_EXTENSION = bundle;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tBB356BD51E0C4C0F0056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356BD61E0C4C0F0056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tBB5A60BE1E22211900B6C1D9 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB5A60BF1E22211900B6C1D9 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tBB356A481E0AF2780056B10F /* Build configuration list for PBXProject \"Injectorator\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356A581E0AF2780056B10F /* Debug */,\n\t\t\t\tBB356A591E0AF2780056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tBB356A5A1E0AF2780056B10F /* Build configuration list for PBXNativeTarget \"Injection\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356A5B1E0AF2780056B10F /* Debug */,\n\t\t\t\tBB356A5C1E0AF2780056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tBB356ADA1E0B09000056B10F /* Build configuration list for PBXNativeTarget \"com.johnholdsworth.Injectorator.Helper\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356ADB1E0B09000056B10F /* Debug */,\n\t\t\t\tBB356ADC1E0B09000056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tBB356AFF1E0B0B8A0056B10F /* Build configuration list for PBXNativeTarget \"InjectionBootstrap\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356B001E0B0B8A0056B10F /* Debug */,\n\t\t\t\tBB356B011E0B0B8A0056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tBB356BD71E0C4C130056B10F /* Build configuration list for PBXNativeTarget \"injectSource\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356BD51E0C4C0F0056B10F /* Debug */,\n\t\t\t\tBB356BD61E0C4C0F0056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tBB5A60BD1E22211900B6C1D9 /* Build configuration list for PBXNativeTarget \"tree\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB5A60BE1E22211900B6C1D9 /* Debug */,\n\t\t\t\tBB5A60BF1E22211900B6C1D9 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = BB356A451E0AF2780056B10F /* Project object */;\n}\n"
  },
  {
    "path": "Injectorator.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:Injectorator.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Injectorator.xcodeproj/project.xcworkspace/xcshareddata/Injectorator.xcscmblueprint",
    "content": "{\n  \"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey\" : \"A535CCAD0622E97CAD9CF9E1E3C6AC64A6475A1F\",\n  \"DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey\" : {\n\n  },\n  \"DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey\" : {\n    \"BABDEDA06CCA87E16844780F7D9DC681C475B08E\" : 9223372036854775807,\n    \"712D06E9AA7CE78ACFCEF81F916D46A7554837CA\" : 9223372036854775807,\n    \"34B8D32F162DAA64534774A997241F23597C24C7\" : 9223372036854775807,\n    \"3BB2D680EE898F051A0A693863548EC14D1896A2\" : 9223372036854775807,\n    \"1AC0D0FAF96863B8F1FFA7F31C9B03B84CBC01CB\" : 9223372036854775807,\n    \"A535CCAD0622E97CAD9CF9E1E3C6AC64A6475A1F\" : 9223372036854775807,\n    \"58DA89050E62AAF43BB0850208A8C8A005491B18\" : 9223372036854775807,\n    \"C62EC6336D5E5301D1CBDB1406DC28E8A62B5BDC\" : 9223372036854775807\n  },\n  \"DVTSourceControlWorkspaceBlueprintIdentifierKey\" : \"C63B3622-B7F9-45F3-ACA1-7509748DE8FF\",\n  \"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey\" : {\n    \"BABDEDA06CCA87E16844780F7D9DC681C475B08E\" : \"DDHotKey\\/\",\n    \"712D06E9AA7CE78ACFCEF81F916D46A7554837CA\" : \"injectionforxcode\\/\",\n    \"34B8D32F162DAA64534774A997241F23597C24C7\" : \"RefactoratorApp\\/\",\n    \"3BB2D680EE898F051A0A693863548EC14D1896A2\" : \"Smuggler\\/\",\n    \"1AC0D0FAF96863B8F1FFA7F31C9B03B84CBC01CB\" : \"Remote\\/\",\n    \"A535CCAD0622E97CAD9CF9E1E3C6AC64A6475A1F\" : \"Injectorator\\/\",\n    \"58DA89050E62AAF43BB0850208A8C8A005491B18\" : \"XprobePlugin\\/\",\n    \"C62EC6336D5E5301D1CBDB1406DC28E8A62B5BDC\" : \"Refactorator\\/\"\n  },\n  \"DVTSourceControlWorkspaceBlueprintNameKey\" : \"Injectorator\",\n  \"DVTSourceControlWorkspaceBlueprintVersion\" : 204,\n  \"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey\" : \"Injectorator.xcodeproj\",\n  \"DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey\" : [\n    {\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey\" : \"https:\\/\\/github.com\\/johnno1962\\/Remote.git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey\" : \"com.apple.dt.Xcode.sourcecontrol.Git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey\" : \"1AC0D0FAF96863B8F1FFA7F31C9B03B84CBC01CB\"\n    },\n    {\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey\" : \"https:\\/\\/github.com\\/johnno1962\\/RefactoratorApp.git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey\" : \"com.apple.dt.Xcode.sourcecontrol.Git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey\" : \"34B8D32F162DAA64534774A997241F23597C24C7\"\n    },\n    {\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey\" : \"https:\\/\\/github.com\\/johnno1962\\/Smuggler.git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey\" : \"com.apple.dt.Xcode.sourcecontrol.Git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey\" : \"3BB2D680EE898F051A0A693863548EC14D1896A2\"\n    },\n    {\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey\" : \"https:\\/\\/github.com\\/johnno1962\\/XprobePlugin.git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey\" : \"com.apple.dt.Xcode.sourcecontrol.Git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey\" : \"58DA89050E62AAF43BB0850208A8C8A005491B18\"\n    },\n    {\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey\" : \"https:\\/\\/github.com\\/johnno1962\\/injectionforxcode.git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey\" : \"com.apple.dt.Xcode.sourcecontrol.Git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey\" : \"712D06E9AA7CE78ACFCEF81F916D46A7554837CA\"\n    },\n    {\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey\" : \"https:\\/\\/github.com\\/johnno1962\\/InjectionApp.git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey\" : \"com.apple.dt.Xcode.sourcecontrol.Git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey\" : \"A535CCAD0622E97CAD9CF9E1E3C6AC64A6475A1F\"\n    },\n    {\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey\" : \"https:\\/\\/github.com\\/davedelong\\/DDHotKey.git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey\" : \"com.apple.dt.Xcode.sourcecontrol.Git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey\" : \"BABDEDA06CCA87E16844780F7D9DC681C475B08E\"\n    },\n    {\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey\" : \"https:\\/\\/github.com\\/johnno1962\\/Refactorator.git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey\" : \"com.apple.dt.Xcode.sourcecontrol.Git\",\n      \"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey\" : \"C62EC6336D5E5301D1CBDB1406DC28E8A62B5BDC\"\n    }\n  ]\n}"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2017 John Holdsworth\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# Injection as an App\n\n![Icon](http://johnholdsworth.com/menu.gif)\n\nIssue tracking Repo for the new Injection as an App\n\nThere is also the source and jar for a basic AppCode plugin [here](https://raw.githubusercontent.com/johnno1962/InjectionApp/master/InjectionAppCode/Injection.jar)\n\nTo download the beta [click here.](http://johnholdsworth.com/injection.html).\nFor more information consult the [FAQ](https://johnno1962.github.io/InjectionApp/injectionfaq.html).\n\nThe source for the application is posted here but it's not intended to suppport building it yourself.\nIn order to do so you will need to clone this project as well as:\n\n[injectionforxcode](https://github.com/johnno1962/injectionforxcode),\n[Xprobe](https://github.com/johnno1962/Xprobe),\n[Remote](https://github.com/johnno1962/Remote),\n[Refactorator](https://github.com/johnno1962/Refactorator),\n[RefactoratorApp](https://github.com/johnno1962/RefactoratorApp) &\n[Smuggler](https://github.com/johnno1962/Smuggler)\n\n...in the same directory, configure codesigning then build this project.\n"
  },
  {
    "path": "XprobeSwift/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © 2016 John Holdsworth. All rights reserved.</string>\n\t<key>NSPrincipalClass</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "XprobeSwift/XprobeSwift-Bridging-Header.h",
    "content": "//\n//  Use this file to import your target's public headers that you would like to expose to Swift.\n//\n\n#import \"SwiftTrace.h\"\n#import \"../../XprobePlugin/Classes/Xprobe.h\"\n\n@interface NSObject(InjectionSweep)\n- (void)bsweep;\n@end\n"
  },
  {
    "path": "XprobeSwift/XprobeSwift.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\tBB356BB51E0B8F090056B10F /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB356BB41E0B8F090056B10F /* Info.plist */; };\n\t\tBB356BB81E0B8F600056B10F /* XprobeSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356BB71E0B8F600056B10F /* XprobeSwift.swift */; };\n\t\tBB356BBD1E0B8FA10056B10F /* SwiftTrace.m in Sources */ = {isa = PBXBuildFile; fileRef = BB356BBA1E0B8FA10056B10F /* SwiftTrace.m */; };\n\t\tBB356BBE1E0B8FA10056B10F /* SwiftTrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356BBB1E0B8FA10056B10F /* SwiftTrace.swift */; };\n\t\tBB356BBF1E0B8FA10056B10F /* xt_forwarding_trampoline_x64.s in Sources */ = {isa = PBXBuildFile; fileRef = BB356BBC1E0B8FA10056B10F /* xt_forwarding_trampoline_x64.s */; };\n\t\tBB356BED1E0C91C80056B10F /* Internals.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB356BEC1E0C91C80056B10F /* Internals.swift */; };\n\t\tBB5133171E1AE34900C11990 /* SwiftSwizzler.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB5133161E1AE34900C11990 /* SwiftSwizzler.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n\t\tBB356BA51E0B8E930056B10F /* XprobeSwift.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XprobeSwift.bundle; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tBB356BB41E0B8F090056B10F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tBB356BB61E0B8F5F0056B10F /* XprobeSwift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"XprobeSwift-Bridging-Header.h\"; sourceTree = \"<group>\"; };\n\t\tBB356BB71E0B8F600056B10F /* XprobeSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = XprobeSwift.swift; path = ../../XprobePlugin/XprobeSwift/XprobeSwift/XprobeSwift.swift; sourceTree = \"<group>\"; };\n\t\tBB356BB91E0B8FA10056B10F /* SwiftTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SwiftTrace.h; path = ../../Smuggler/SwiftTrace/SwiftTrace/SwiftTrace.h; sourceTree = \"<group>\"; };\n\t\tBB356BBA1E0B8FA10056B10F /* SwiftTrace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SwiftTrace.m; path = ../../Smuggler/SwiftTrace/SwiftTrace/SwiftTrace.m; sourceTree = \"<group>\"; };\n\t\tBB356BBB1E0B8FA10056B10F /* SwiftTrace.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftTrace.swift; path = ../../Smuggler/SwiftTrace/SwiftTrace/SwiftTrace.swift; sourceTree = \"<group>\"; };\n\t\tBB356BBC1E0B8FA10056B10F /* xt_forwarding_trampoline_x64.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = xt_forwarding_trampoline_x64.s; path = ../../Smuggler/SwiftTrace/SwiftTrace/xt_forwarding_trampoline_x64.s; sourceTree = \"<group>\"; };\n\t\tBB356BEC1E0C91C80056B10F /* Internals.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Internals.swift; path = ../../XprobePlugin/XprobeSwift/XprobeSwift/Internals.swift; sourceTree = \"<group>\"; };\n\t\tBB5133161E1AE34900C11990 /* SwiftSwizzler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftSwizzler.swift; path = ../../XprobePlugin/XprobeSwift/XprobeSwift/SwiftSwizzler.swift; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tBB356BA21E0B8E930056B10F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\tBB356B9C1E0B8E930056B10F = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356BB91E0B8FA10056B10F /* SwiftTrace.h */,\n\t\t\t\tBB356BBA1E0B8FA10056B10F /* SwiftTrace.m */,\n\t\t\t\tBB356BEC1E0C91C80056B10F /* Internals.swift */,\n\t\t\t\tBB356BBB1E0B8FA10056B10F /* SwiftTrace.swift */,\n\t\t\t\tBB356BB71E0B8F600056B10F /* XprobeSwift.swift */,\n\t\t\t\tBB5133161E1AE34900C11990 /* SwiftSwizzler.swift */,\n\t\t\t\tBB356BBC1E0B8FA10056B10F /* xt_forwarding_trampoline_x64.s */,\n\t\t\t\tBB356BB61E0B8F5F0056B10F /* XprobeSwift-Bridging-Header.h */,\n\t\t\t\tBB356BB41E0B8F090056B10F /* Info.plist */,\n\t\t\t\tBB356BA61E0B8E930056B10F /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tBB356BA61E0B8E930056B10F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBB356BA51E0B8E930056B10F /* XprobeSwift.bundle */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tBB356BA41E0B8E930056B10F /* XprobeSwift */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = BB356BAB1E0B8E930056B10F /* Build configuration list for PBXNativeTarget \"XprobeSwift\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tBB356BA11E0B8E930056B10F /* Sources */,\n\t\t\t\tBB356BA21E0B8E930056B10F /* Frameworks */,\n\t\t\t\tBB356BA31E0B8E930056B10F /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = XprobeSwift;\n\t\t\tproductName = XprobeSwift;\n\t\t\tproductReference = BB356BA51E0B8E930056B10F /* XprobeSwift.bundle */;\n\t\t\tproductType = \"com.apple.product-type.bundle\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tBB356B9D1E0B8E930056B10F /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 0820;\n\t\t\t\tORGANIZATIONNAME = \"John Holdsworth\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tBB356BA41E0B8E930056B10F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tDevelopmentTeam = 9V5A8WE85E;\n\t\t\t\t\t\tLastSwiftMigration = 0820;\n\t\t\t\t\t\tProvisioningStyle = Manual;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = BB356BA01E0B8E930056B10F /* Build configuration list for PBXProject \"XprobeSwift\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = BB356B9C1E0B8E930056B10F;\n\t\t\tproductRefGroup = BB356BA61E0B8E930056B10F /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tBB356BA41E0B8E930056B10F /* XprobeSwift */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tBB356BA31E0B8E930056B10F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356BB51E0B8F090056B10F /* Info.plist in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tBB356BA11E0B8E930056B10F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBB356BED1E0C91C80056B10F /* Internals.swift in Sources */,\n\t\t\t\tBB356BBF1E0B8FA10056B10F /* xt_forwarding_trampoline_x64.s in Sources */,\n\t\t\t\tBB356BB81E0B8F600056B10F /* XprobeSwift.swift in Sources */,\n\t\t\t\tBB5133171E1AE34900C11990 /* SwiftSwizzler.swift in Sources */,\n\t\t\t\tBB356BBE1E0B8FA10056B10F /* SwiftTrace.swift in Sources */,\n\t\t\t\tBB356BBD1E0B8FA10056B10F /* SwiftTrace.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin XCBuildConfiguration section */\n\t\tBB356BA91E0B8E930056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356BAA1E0B8E930056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tBB356BAC1E0B8E930056B10F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Bundles\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks\";\n\t\t\t\tOTHER_LDFLAGS = (\n\t\t\t\t\t\"-undefined\",\n\t\t\t\t\tdynamic_lookup,\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.XprobeSwift;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"XprobeSwift-Bridging-Header.h\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tWRAPPER_EXTENSION = bundle;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tBB356BAD1E0B8E930056B10F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Developer ID Application\";\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 9V5A8WE85E;\n\t\t\t\tINFOPLIST_FILE = Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Bundles\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks\";\n\t\t\t\tOTHER_LDFLAGS = (\n\t\t\t\t\t\"-undefined\",\n\t\t\t\t\tdynamic_lookup,\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.johnholdsworth.XprobeSwift;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"XprobeSwift-Bridging-Header.h\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tWRAPPER_EXTENSION = bundle;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tBB356BA01E0B8E930056B10F /* Build configuration list for PBXProject \"XprobeSwift\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356BA91E0B8E930056B10F /* Debug */,\n\t\t\t\tBB356BAA1E0B8E930056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tBB356BAB1E0B8E930056B10F /* Build configuration list for PBXNativeTarget \"XprobeSwift\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tBB356BAC1E0B8E930056B10F /* Debug */,\n\t\t\t\tBB356BAD1E0B8E930056B10F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = BB356B9D1E0B8E930056B10F /* Project object */;\n}\n"
  },
  {
    "path": "docs/index.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html lang=\"en\" xml:lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\"/>\n<meta content=\"en-us\" http-equiv=\"Content-Language\"/>\n<title>Injection II, the App</title>\n<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"http://johnholdsworth.com/totallydope/Lato2OFLWeb/LatoLatin/LatoLatinLight-Regular.css\" />\n<style type=\"text/css\" media=\"screen\">\nbody, table { font-size: 24px; font-family: \"LatoLatinLight\", Georgia; }\na:link { color: black; }\na:visited { color: black; }\n</style>\n</head>\n<body>\n<p>\n<p>\n<p>\n<p>\n\n<table><tr><td width='10%'><td>\n<center style='font-size: 54px'><img width=64 src='http://johnholdsworth.com/injectionforxcode/injection.png' style='position:relative; top:10px;'> Injection II, the App&nbsp;&nbsp;</center>\n\n<p>\n<p>\n<center>To download the new version of Injection <a href='http://johnholdsworth.com/injection.html'>click here</a>.</center>\n<p>\n\nThe Injection plugin for Xcode is now a standalone app. This allows you to inject changes to class method implementations into a running application in the simulator or a macOS app. Injecting is now as simple as downloading the app and having it running in the background while you are working on a project in Xcode then using the menu bar item \"Inject Source\" (don't forget to save the file!)\n<p>\n<td width='10%'></table></body></html>\n"
  },
  {
    "path": "docs/injectionfaq.html",
    "content": "<html lang=\"en\" xml:lang=\"en\" xmlns=\n\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta content=\"text/html; charset=utf-8\" http-equiv=\n\"content-type\" />\n\n<meta content=\"en-us\" http-equiv=\"Content-Language\" />\n\n<title>Injection FAQ</title>\n\n<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\n\"https://birch.tchmachines.com/~johnhol/totallydope/Lato2OFLWeb/LatoLatin/LatoLatinLight-Regular.css\" />\n\n<style type=\"text/css\" media=\"screen\">\nbody, table { font-size: 24px; font-family: \"LatoLatinLight\", Georgia; }\na:link { color: black; }\na:visited { color: black; }\n\n</style>\n</head>\n<body>\n<table>\n<tr><td width=\"12%\"><td>\n    <br>\n    <center style=\"font-size: 54px\">\n    <img width=\"64\" src= \"http://johnholdsworth.com/injectionforxcode/injection.png\"\n    style=\"position:relative; top:10px;\" /> Injection, the Missing Manual</center>\n\n<center>To download the new beta version of Injection <a href= \"http://johnholdsworth.com/injection.html\">click here</a>.</center>\n\n<br>\n\n<h2>What is Injection?</h2>\n\nInjection is simple in principle. It can recompile an individual Swift or Objective-C class and is able to\nbind the new versions of the method implementations of the class into a program while it is running in the\nsimulator - without having to restart it. This avoids having to wait perhaps half a minute to rebuild your\nentire project and loose your application state when all you want to do is make the smallest change to\nyour code. A typical injection takes about a second.<p>\n\nLong an <a href=\"https://github.com/johnno1962/injectionforxcode\">Xcode Plugin</a>, with Xcode 8 and its\nnew signing requirements, Injection is now a standalone application that runs in the background while you\nare editing your code. No changes are need to your project in order to use it. When the injection app is\nrunning there is a global hot key \"control-=\" to inject the file being currently edited in Xcode into the\napp running in the simulator. This now includes XCTestCase subclasses for which the test will be run.</p>\n\n<h2>How does Injection work?</h2>\n\nInjection works by searching through Xcode's \".xcactivity\" build log files in \"Derived Data\" to find the\ncommand that was used to compile a class file and runs this then links the resulting object file into a\nbundle (a wrapped dynamic library) which can be loaded into the application. At this point, a piece of\ncode to load this bundle needs to be injected in a more traditional macOS sense into the program running\nin the simulator. This is performed by the interprocess communication feature of the machOS which macOS\nis built on, writing a piece of bootstrap code into the simulator process's memory and starting a new\nthread to execute it. This code connects back to the injection app through a socket which sends the\ncommand to load the bundle prepared just before.<p>\n\nThis is all by-the-by and the result is there are now two copies of the class that is being injected in\nmemory: the original as compiled by the project build and the new version compiled by the injection build.\nAs all instances in the app are of the original class what is required is to bind the method implementations\nof the new class onto the old one. In the Objective-C world this was achieved by \"Swizzling\" - setting a new\nlocation for the implementation of a method in the class' meta data using the runtime api. As Swift uses a\n\"vtable\" to dispatch methods that are not final, the same can be achieved by simply overwriting the original\nclass' vtable with that of the new class. This means all calls to these methods will be dispatched to their\nnew implementations.</p>\n\n<p></p>\n\n<h2>How do I know if injection has worked?</h2>\n\nIf injection has been able to compile your class, build its bundle and load it you will see a message on\nthe debugging console warning the class has been defined in two places and a message saying to ignore the\nwarning and that the class has been \"Swizzled\".\n\n<pre>\n    Ignore any warning, Swizzled MasterViewController 0x11be23740 -> 0x10c672070\n</pre>\n\nA frequent support issue at this point is: Why haven't the changes I've applied taken effect on the display?\nIn order to do this the code needs to have been re-executed and the simplest way to do this to is have an\ninstance method \"injected()\" in your class which calls the code that needs to be re-executed. For example,\nfor a View Controller, it would call viewDidLoad(). Unfortunately, adding this method can't be injected\nitself in Swift unless it is at the very end of the class definition as the vtable will get out of alignment\nso you may have to rebuild the project and re-run for your first injection.\n\n<h2>What are the limitations of injection?</h2>\n\nIn Objective-C, the limitations are relatively few. You have to be mind-full that your new version of the\nmethod implementations will be linked against the new version of the class so if there are references to\nstatic variables or singletons these will be duplicated. In Swift, the same applies and there are additional\ngotcha's about whether a method is \"direct dispatched\" i.e. statically linked rather than dispatched using\nthe vtable of the class object. The three ways Swift is dispatched are discussed in this\n<a href=\"https://www.raizlabs.com/dev/2016/12/swift-method-dispatch/\">excellent summary</a>.\nIn practice, this means you can not inject methods that have been declared final, are in final classes\nor are not declared \"open\" in frameworks which is as good as final with Swift3. This also means you can\nnot inject methods of structs or enums which are direct dispatched as they are not subject to possible\nsubclassing. Injection is also not compatible \"whole module optimisation\" which can decide a class is\nfinal as far as the project is concerned and use direct dispatch at the call site which can not be injected.\n\n<h2>Why isn't my -injected() method being called?</h2>\n\nThere are two injected() methods which can be used. A class method +injected() which was easy to implement\nand is called whenever a class is injected. As injection uses the Objective-C runtime to locate these methods\nthey must be prefixed with @objc from Swift 3.2. The instance level -injected() has a few caveats. In order to\nimplement it, injection needs to know all the instances of a class in an application so they can be messaged.\nTo do this injection performs a sweep of all instances starting with the UIApplication object, it's windows\nand delegate and all objects pointed to by those objects and so on recursively. As a result, to receive\nthe injected message your object needs to be visible from these seeds (which it generally is.) If not, you\ncan subscribe to the \"INJECTION_BUNDLE_NOTIFICATION\" in the notification centre and receive a notification\nwith the classes injected. Also as -injected is a dynamic dispatch from Objective-C code so your class will\nneed to inherit from NSObject.\n\n<h2>Can I use injection with AppCode?</h2>\n\nSure, there is a new version of the AppCode plugin available\n<a href=\"https://github.com/johnno1962/InjectionApp\">here</a>. This requires the project to have been built\nin Xcode at some stage to determine the compile commands for a class and that the injection App is running\nfrom \"/Applications\".\n\n<h2>Why does injection require an administrator password?</h2>\n\nInjecting code between processes as described in the second section above requires administrator privilege\nand to make this available injection installs a very small (36kb) \"Helper\" binary into\n/Library/PrivilegedHelperTools/ which is written to only be capable of injecting bundles into apps running\nin the simulator. In order to do this it requires the administrator password once - this is a standard macOS\nmechanism and the password is never known to the injection app. If you're not happy with this you can run\nusing \"patched\" injection which patches the injection loader into your project's main.m (for a Swift project\nyou'll need to add an empty main.m). This is also used when you're injecting a macOS application - menu item\n\"macOS Project/Patch\".<p>\n\n<a name=\"relink\"/>\nA new feature if you're using patched injection is that if you use \"Project/Perform Action/Run Without\nBuilding\" injection remembers your previous injections and re-applys them when you start the app. This is a\nway to avoid a potentially slow re-link of your entire app when you've only changed a class or two.\n\n<h2>Where can I get help if injection doesn't work?</h2>\n\nFirst place to go is the <a href=\"https://github.com/johnno1962/injectionforxcode\">original project</a> and\nthe new <a href=\"https://github.com/johnno1962/InjectionApp\">bug tracking repo</a>. If your problem isn't\ndescribed there please raise a new issue so I can help debug it with TeamViewer if need be. If you come\nacross anything you feel should be in the FAQ please file a PR on\n<a href=\"https://github.com/johnno1962/InjectionApp/blob/master/docs/injectionfaq.html\">this document</a>.\n\n<h2>What is the current injection license?</h2>\n\nThe code in the injection plugin has been licensed to the new InjectionApp under it's MIT license\nwhich are currently described in the App's \"About Injection\" panel. Depending on interest, the binary\ndistribution may have new a license if it becomes a product.\n\n<h2>What else can the Injection application do?</h2>\n\nIncluded in the injection application is pretty much all of my Open Source developer tools. Included is\nthe <a href=\"https://github.com/johnno1962/RefactoratorApp\">Refactorator</a> also a previous plugin that\ncan be used to refactor (rename objects in) Swift and Objective-C sources. Select an object in the Xcode\neditor and use the Menu Bar item \"Refactor Swift\" and a window will open showing all places in the code that\nobject is referrenced. Enter a new value into the \"Rename To:\" text field and press apply and it will apply\nthe changes in memeory then click \"Save\" to make the changes on disk and build to check the project still\ncompiles. You can revert the changes if need be.<p>\n\n<center><img src=\"http://johnholdsworth.com/refactorator2.gif\"/></center><p>\n\nIf you enable test coverage collection as shown below and re-run your tests, the Refactorator source browser\nwill display test coverage in the line number gutter as a green strip next to the lines that have been\nexecuted in tests (thanks <a href=\"https://github.com/SlatherOrg/slather\">slather</a> for the pointers.)\n\n<center><img width=748 src=\"http://johnholdsworth.com/test_scheme.png\"/></center><p>\n\nAlso included is the <a href=\"https://github.com/johnno1962/Xprobe\">Xprobe memory browser</a> which uses\nthe result of a sweep of your application's objects to display them in a Web interface. This allows you\nto inspect values for all instance variables and set them for Objective-C instances. It also allows you\nto evaluate code against an instance without having to stop your program using a breakpoint.</p>\n\n<center><img src=\"http://johnholdsworth.com/mirror4.gif\"/></center><p>\n\nYou can instrument your project's compile times if you add \"-Xfrontend -debug-time-function-bodies\" to\n\"Other Swift Flags\" in it's project settings and rebuild. Then, use the \"Optimise Build\" menu item to\nview a summary of the longest build times by function with a link to take you to that place in the source.\n\n<center><img src=\"http://johnholdsworth.com/optimiser.png\"/></center><p>\n\nFinally, though it requires patching your project to use,\n<a href=\"https://github.com/johnno1962/Remote\">Remote Control</a> is included which allows you to control\nan iDevice from your computer if that's more convenient or for End-to-End testing. Some events require an\ninitial tap on the device to capture an event that can be used to forge other events but it generally\nworks quite well.<p>\n\n<center><img src=\"http://injectionforxcode.johnholdsworth.com/remote.gif\"/></center>\n<td width=\"12%\">\n</table>\n</body>\n</html>\n"
  },
  {
    "path": "injectSource/main.m",
    "content": "//\n//  main.m\n//  injectSource\n//\n//  Created by John Holdsworth on 22/12/2016.\n//  Copyright © 2016 John Holdsworth. All rights reserved.\n//\n\n#import <Cocoa/Cocoa.h>\n\nint main(int argc, const char * argv[]) {\n    @autoreleasepool {\n        NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];\n        NSString *service = @\"Injection/Inject Source\";\n        if ( argc > 1 ) {\n            NSURL *url = [NSURL fileURLWithPath:[NSString stringWithUTF8String:argv[1]]];\n            [pasteboard clearContents];\n            [pasteboard writeObjects:@[url]];\n            service = @\"Injection/Inject File\";\n        }\n        NSPerformService(service, pasteboard);\n    }\n    return 0;\n}\n\n"
  }
]