Fixes options for pac http server.

GCDWebServer not support to specify the ip listen on.
Only could specify bind to localhost or any ip(INADDR_ANY).
This commit is contained in:
Qiu Yuzhou
2019-10-29 17:18:23 +08:00
parent 0418ff11c0
commit 5cb98a1112
5 changed files with 156 additions and 166 deletions

View File

@ -95,7 +95,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
"ShadowsocksRunningMode": "auto",
"LocalSocks5.ListenPort": NSNumber(value: 1086 as UInt16),
"LocalSocks5.ListenAddress": "127.0.0.1",
"PacServer.ListenAddress":"127.0.0.1",
"PacServer.BindToLocalhost": NSNumber(value: true as Bool),
"PacServer.ListenPort":NSNumber(value: 1089 as UInt16),
"LocalSocks5.Timeout": NSNumber(value: 60 as UInt),
"LocalSocks5.EnableUDPRelay": NSNumber(value: false as Bool),

View File

@ -20,8 +20,8 @@
<windowPositionMask key="initialPositionMask" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="609" y="533" width="480" height="326"/>
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
<view key="contentView" wantsLayer="YES" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="480" height="326"/>
<view key="contentView" wantsLayer="YES" misplaced="YES" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="479" height="326"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tabView type="noTabsNoBorder" translatesAutoresizingMaskIntoConstraints="NO" id="h22-uy-K1x">
@ -30,7 +30,7 @@
<tabViewItems>
<tabViewItem label="General" identifier="general" id="xbG-eW-Prj">
<view key="view" id="78E-rb-Ecu">
<rect key="frame" x="0.0" y="0.0" width="480" height="326"/>
<rect key="frame" x="0.0" y="0.0" width="479" height="326"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="3eT-fn-moA" customClass="MASShortcutView">
@ -92,7 +92,7 @@
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="71I-66-7Vm">
<rect key="frame" x="20" y="96" width="440" height="45"/>
<constraints>
<constraint firstAttribute="height" constant="45" id="r5A-Zx-oKz"/>
<constraint firstAttribute="height" constant="45" id="iCq-yU-Y2M"/>
</constraints>
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" drawsBackground="YES" id="YqN-0f-ODA">
<font key="font" metaFont="system"/>
@ -157,39 +157,39 @@
</button>
</subviews>
<constraints>
<constraint firstItem="Jbe-9l-xF4" firstAttribute="top" secondItem="WCm-yO-4iG" secondAttribute="bottom" constant="17" id="0MH-Z3-qoy"/>
<constraint firstItem="q90-qj-BXy" firstAttribute="top" secondItem="hbS-Ox-rTR" secondAttribute="bottom" constant="12" id="1cL-t1-3Zy"/>
<constraint firstItem="q90-qj-BXy" firstAttribute="leading" secondItem="P6I-yN-chl" secondAttribute="leading" id="35m-Uk-JuT"/>
<constraint firstItem="pbX-DJ-7mU" firstAttribute="leading" secondItem="hbS-Ox-rTR" secondAttribute="trailing" constant="8" symbolic="YES" id="43Q-js-R8g"/>
<constraint firstItem="3eT-fn-moA" firstAttribute="leading" secondItem="q90-qj-BXy" secondAttribute="trailing" constant="8" symbolic="YES" id="ARW-ih-3wh"/>
<constraint firstItem="pbX-DJ-7mU" firstAttribute="trailing" secondItem="3eT-fn-moA" secondAttribute="trailing" id="BNN-rC-s7e"/>
<constraint firstItem="3eT-fn-moA" firstAttribute="top" secondItem="pbX-DJ-7mU" secondAttribute="bottom" constant="8" symbolic="YES" id="EJc-a5-MsA"/>
<constraint firstItem="P6I-yN-chl" firstAttribute="leading" secondItem="WCm-yO-4iG" secondAttribute="leading" id="Gcs-YD-k7N"/>
<constraint firstItem="Q6E-ur-aIL" firstAttribute="leading" secondItem="78E-rb-Ecu" secondAttribute="leading" constant="20" symbolic="YES" id="Gx0-D0-CNF"/>
<constraint firstAttribute="bottom" secondItem="nKV-Vh-uaW" secondAttribute="bottom" constant="20" symbolic="YES" id="JfZ-WR-aKi"/>
<constraint firstItem="P6I-yN-chl" firstAttribute="top" secondItem="q90-qj-BXy" secondAttribute="bottom" constant="10" id="K0K-kW-6xC"/>
<constraint firstItem="hbS-Ox-rTR" firstAttribute="top" secondItem="Q6E-ur-aIL" secondAttribute="bottom" constant="18" id="LpJ-AS-Gsr"/>
<constraint firstItem="3IG-rd-b11" firstAttribute="baseline" secondItem="Rhd-R5-G5h" secondAttribute="baseline" id="OBl-pX-m5y"/>
<constraint firstItem="hbS-Ox-rTR" firstAttribute="centerY" secondItem="pbX-DJ-7mU" secondAttribute="centerY" id="OOz-0U-8Ed"/>
<constraint firstItem="Q6E-ur-aIL" firstAttribute="top" secondItem="78E-rb-Ecu" secondAttribute="top" constant="20" symbolic="YES" id="PLa-Q4-Wgu"/>
<constraint firstItem="71I-66-7Vm" firstAttribute="top" secondItem="Jbe-9l-xF4" secondAttribute="bottom" constant="8" symbolic="YES" id="Pmo-U2-cyV"/>
<constraint firstItem="q90-qj-BXy" firstAttribute="top" secondItem="3eT-fn-moA" secondAttribute="top" constant="2" id="QeJ-4k-37t"/>
<constraint firstItem="WCm-yO-4iG" firstAttribute="leading" secondItem="Jbe-9l-xF4" secondAttribute="leading" id="Rpp-gE-lH4"/>
<constraint firstItem="3IG-rd-b11" firstAttribute="leading" secondItem="WCm-yO-4iG" secondAttribute="trailing" constant="70" id="S42-VS-yXc"/>
<constraint firstItem="Jbe-9l-xF4" firstAttribute="leading" secondItem="71I-66-7Vm" secondAttribute="leading" id="Y2K-95-x3Q"/>
<constraint firstAttribute="trailing" secondItem="Bb7-im-uLW" secondAttribute="trailing" constant="20" symbolic="YES" id="YKT-np-jAY"/>
<constraint firstAttribute="trailing" secondItem="pbX-DJ-7mU" secondAttribute="trailing" constant="77" id="ayN-uZ-s2z"/>
<constraint firstItem="WCm-yO-4iG" firstAttribute="top" secondItem="P6I-yN-chl" secondAttribute="bottom" constant="8" symbolic="YES" id="azn-DX-QPs"/>
<constraint firstItem="Rhd-R5-G5h" firstAttribute="leading" secondItem="3IG-rd-b11" secondAttribute="trailing" constant="49" id="bqt-SN-wK4"/>
<constraint firstItem="Q6E-ur-aIL" firstAttribute="leading" secondItem="hbS-Ox-rTR" secondAttribute="leading" id="dNp-IQ-MPp"/>
<constraint firstItem="71I-66-7Vm" firstAttribute="trailing" secondItem="nKV-Vh-uaW" secondAttribute="trailing" id="i9F-lq-tj8"/>
<constraint firstItem="Bb7-im-uLW" firstAttribute="trailing" secondItem="71I-66-7Vm" secondAttribute="trailing" id="lkX-6b-9Zr"/>
<constraint firstItem="Rhd-R5-G5h" firstAttribute="baseline" secondItem="Bb7-im-uLW" secondAttribute="baseline" id="pFJ-O4-V41"/>
<constraint firstItem="WCm-yO-4iG" firstAttribute="baseline" secondItem="3IG-rd-b11" secondAttribute="baseline" id="qLX-XI-ppQ"/>
<constraint firstItem="P6I-yN-chl" firstAttribute="top" secondItem="3eT-fn-moA" secondAttribute="bottom" constant="8" symbolic="YES" id="t6V-IH-PZi"/>
<constraint firstItem="3eT-fn-moA" firstAttribute="leading" secondItem="Rhd-R5-G5h" secondAttribute="leading" id="v8V-Dg-rYp"/>
<constraint firstItem="pbX-DJ-7mU" firstAttribute="leading" secondItem="3eT-fn-moA" secondAttribute="leading" id="xrh-2c-KN3"/>
<constraint firstItem="hbS-Ox-rTR" firstAttribute="leading" secondItem="q90-qj-BXy" secondAttribute="leading" id="zje-wv-ExT"/>
<constraint firstItem="Rhd-R5-G5h" firstAttribute="baseline" secondItem="Bb7-im-uLW" secondAttribute="baseline" id="1yr-EN-h3l"/>
<constraint firstItem="3IG-rd-b11" firstAttribute="leading" secondItem="WCm-yO-4iG" secondAttribute="trailing" constant="70" id="22p-Tc-rHc"/>
<constraint firstItem="hbS-Ox-rTR" firstAttribute="centerY" secondItem="pbX-DJ-7mU" secondAttribute="centerY" id="2P5-T2-RkV"/>
<constraint firstItem="Jbe-9l-xF4" firstAttribute="top" secondItem="WCm-yO-4iG" secondAttribute="bottom" constant="17" id="5ej-R0-r46"/>
<constraint firstItem="Bb7-im-uLW" firstAttribute="leading" secondItem="Rhd-R5-G5h" secondAttribute="trailing" constant="62" id="5kp-aA-o9G"/>
<constraint firstItem="3IG-rd-b11" firstAttribute="baseline" secondItem="Rhd-R5-G5h" secondAttribute="baseline" id="6vf-yU-5hh"/>
<constraint firstItem="71I-66-7Vm" firstAttribute="top" secondItem="Jbe-9l-xF4" secondAttribute="bottom" constant="8" symbolic="YES" id="DI0-F3-nPx"/>
<constraint firstAttribute="bottom" secondItem="nKV-Vh-uaW" secondAttribute="bottom" constant="20" symbolic="YES" id="Dbi-Kv-Prd"/>
<constraint firstItem="3eT-fn-moA" firstAttribute="top" secondItem="pbX-DJ-7mU" secondAttribute="bottom" constant="8" symbolic="YES" id="DyC-vv-4hm"/>
<constraint firstItem="Q6E-ur-aIL" firstAttribute="leading" secondItem="hbS-Ox-rTR" secondAttribute="leading" id="Hpf-nE-hPy"/>
<constraint firstItem="3eT-fn-moA" firstAttribute="leading" secondItem="q90-qj-BXy" secondAttribute="trailing" constant="8" symbolic="YES" id="Ikf-Jk-Tz6"/>
<constraint firstItem="WCm-yO-4iG" firstAttribute="top" secondItem="P6I-yN-chl" secondAttribute="bottom" constant="8" symbolic="YES" id="O9s-j5-mi9"/>
<constraint firstItem="WCm-yO-4iG" firstAttribute="baseline" secondItem="3IG-rd-b11" secondAttribute="baseline" id="PIh-fb-Tzm"/>
<constraint firstItem="Q6E-ur-aIL" firstAttribute="leading" secondItem="78E-rb-Ecu" secondAttribute="leading" constant="20" symbolic="YES" id="PYb-Gf-rr5"/>
<constraint firstItem="hbS-Ox-rTR" firstAttribute="top" secondItem="Q6E-ur-aIL" secondAttribute="bottom" constant="18" id="T6H-PC-XvB"/>
<constraint firstItem="hbS-Ox-rTR" firstAttribute="leading" secondItem="q90-qj-BXy" secondAttribute="leading" id="TBQ-sz-KTB"/>
<constraint firstItem="Jbe-9l-xF4" firstAttribute="leading" secondItem="71I-66-7Vm" secondAttribute="leading" id="Tex-pk-ZD5"/>
<constraint firstItem="q90-qj-BXy" firstAttribute="centerY" secondItem="3eT-fn-moA" secondAttribute="centerY" id="VZw-mA-zAc"/>
<constraint firstItem="P6I-yN-chl" firstAttribute="top" secondItem="q90-qj-BXy" secondAttribute="bottom" constant="10" id="Wp6-vh-c45"/>
<constraint firstItem="WCm-yO-4iG" firstAttribute="leading" secondItem="Jbe-9l-xF4" secondAttribute="leading" id="Y0x-fT-GRh"/>
<constraint firstItem="71I-66-7Vm" firstAttribute="trailing" secondItem="nKV-Vh-uaW" secondAttribute="trailing" id="YMU-yy-gfG"/>
<constraint firstItem="pbX-DJ-7mU" firstAttribute="leading" secondItem="hbS-Ox-rTR" secondAttribute="trailing" constant="8" symbolic="YES" id="bDi-Yo-gUu"/>
<constraint firstItem="q90-qj-BXy" firstAttribute="top" secondItem="hbS-Ox-rTR" secondAttribute="bottom" constant="12" id="cgo-tr-moS"/>
<constraint firstItem="P6I-yN-chl" firstAttribute="leading" secondItem="WCm-yO-4iG" secondAttribute="leading" id="crm-aD-7SO"/>
<constraint firstItem="pbX-DJ-7mU" firstAttribute="leading" secondItem="3eT-fn-moA" secondAttribute="leading" id="dxN-Bw-raD"/>
<constraint firstItem="Q6E-ur-aIL" firstAttribute="top" secondItem="78E-rb-Ecu" secondAttribute="top" constant="20" symbolic="YES" id="fS2-Xh-qxI"/>
<constraint firstItem="Rhd-R5-G5h" firstAttribute="leading" secondItem="3IG-rd-b11" secondAttribute="trailing" constant="49" id="lmS-0A-XJL"/>
<constraint firstItem="P6I-yN-chl" firstAttribute="top" secondItem="3eT-fn-moA" secondAttribute="bottom" constant="8" symbolic="YES" id="oXD-FV-cSV"/>
<constraint firstItem="pbX-DJ-7mU" firstAttribute="trailing" secondItem="3eT-fn-moA" secondAttribute="trailing" id="osE-Ta-cCX"/>
<constraint firstItem="q90-qj-BXy" firstAttribute="leading" secondItem="P6I-yN-chl" secondAttribute="leading" id="wYd-Ib-vG5"/>
<constraint firstItem="3eT-fn-moA" firstAttribute="leading" secondItem="Rhd-R5-G5h" secondAttribute="leading" id="y5S-xd-IIK"/>
<constraint firstItem="Bb7-im-uLW" firstAttribute="trailing" secondItem="71I-66-7Vm" secondAttribute="trailing" id="zPo-Sm-LX1"/>
<constraint firstAttribute="trailing" secondItem="pbX-DJ-7mU" secondAttribute="trailing" constant="76" id="zw4-bz-JLZ"/>
</constraints>
</view>
</tabViewItem>
@ -199,7 +199,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="r8z-mM-M0X">
<rect key="frame" x="35" y="257" width="201" height="16"/>
<rect key="frame" x="35" y="257" width="181" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Local Socks5 Listen Port:" id="8fk-fw-Tsx">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -207,7 +207,10 @@
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="c8B-qf-UNK">
<rect key="frame" x="35" y="288" width="201" height="16"/>
<rect key="frame" x="35" y="288" width="181" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="177" id="37M-JU-n0c"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Local Socks5 Listen Address:" id="jkc-e3-4O0">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -215,7 +218,7 @@
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cd8-PU-OwG">
<rect key="frame" x="242" y="285" width="218" height="21"/>
<rect key="frame" x="222" y="285" width="238" height="21"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="LBl-2M-X7O">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -230,7 +233,7 @@
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MvY-R0-1FU">
<rect key="frame" x="35" y="164" width="201" height="16"/>
<rect key="frame" x="35" y="164" width="181" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Timeout:" id="sQ9-bj-V0I">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -238,7 +241,7 @@
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Zfl-10-Wdk">
<rect key="frame" x="242" y="161" width="60" height="21"/>
<rect key="frame" x="222" y="161" width="60" height="21"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" drawsBackground="YES" id="Ity-ir-Fyi">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -254,7 +257,7 @@
</connections>
</textField>
<button translatesAutoresizingMaskIntoConstraints="NO" id="tGd-pe-2xJ">
<rect key="frame" x="240" y="137" width="222" height="18"/>
<rect key="frame" x="220" y="137" width="154" height="18"/>
<buttonCell key="cell" type="check" title="Enable UDP Relay" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="R3v-iN-zu8">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
@ -264,9 +267,9 @@
</connections>
</button>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2rw-0u-LXJ">
<rect key="frame" x="242" y="254" width="60" height="21"/>
<rect key="frame" x="222" y="254" width="60" height="21"/>
<constraints>
<constraint firstAttribute="width" constant="60" id="4ur-1B-1xA"/>
<constraint firstAttribute="width" constant="60" id="afC-Ya-WgP"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" drawsBackground="YES" id="MV1-4D-sap">
<font key="font" metaFont="system"/>
@ -283,7 +286,7 @@
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="a60-LH-adV">
<rect key="frame" x="308" y="164" width="99" height="16"/>
<rect key="frame" x="288" y="164" width="119" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Seconds" id="4R2-UO-qs7">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -291,7 +294,7 @@
</textFieldCell>
</textField>
<button translatesAutoresizingMaskIntoConstraints="NO" id="RcT-mn-xqK">
<rect key="frame" x="240" y="117" width="222" height="18"/>
<rect key="frame" x="220" y="117" width="154" height="18"/>
<buttonCell key="cell" type="check" title="Enable Verbose Mode" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="cIS-Wb-Rzg">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
@ -301,7 +304,7 @@
</connections>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="RYj-h6-uAT">
<rect key="frame" x="35" y="195" width="201" height="16"/>
<rect key="frame" x="35" y="195" width="181" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Local PAC Server Listen Port:" id="IMQ-c4-gmc">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -309,7 +312,7 @@
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KXG-O0-ake">
<rect key="frame" x="242" y="192" width="60" height="21"/>
<rect key="frame" x="222" y="192" width="60" height="21"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" drawsBackground="YES" id="T9o-Og-neF">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -324,31 +327,8 @@
<outlet property="formatter" destination="C7t-aU-bub" id="3M6-FE-SDQ"/>
</connections>
</textField>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GR0-SX-ali">
<rect key="frame" x="242" y="223" width="218" height="21"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="fYc-xd-hb5">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="uQz-5y-ZL2" name="value" keyPath="values.PacServer.ListenAddress" id="tFH-sJ-yeg">
<dictionary key="options">
<bool key="NSContinuouslyUpdatesValue" value="YES"/>
</dictionary>
</binding>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="mhO-vS-JmZ">
<rect key="frame" x="31" y="227" width="205" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Local PAC Server Listen Address:" id="80e-Qu-r2S">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kjx-TJ-4n3">
<rect key="frame" x="20" y="66" width="440" height="21"/>
<rect key="frame" x="20" y="66" width="352" height="21"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="8u6-Mz-FmD">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -367,62 +347,69 @@
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="67s-wg-2Sy">
<rect key="frame" x="220" y="224" width="237" height="18"/>
<buttonCell key="cell" type="check" title="Local PAC Server Bind To Localhost" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="oCf-id-PAx">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
<connections>
<binding destination="uQz-5y-ZL2" name="value" keyPath="values.PacServer.BindToLocalhost" id="Yar-rA-DFY"/>
</connections>
</buttonCell>
<connections>
<binding destination="uQz-5y-ZL2" name="value" keyPath="values.PacServer.BindToLocalhost" id="BDg-Bb-qTa"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="r8z-mM-M0X" firstAttribute="baseline" secondItem="2rw-0u-LXJ" secondAttribute="baseline" id="0ZI-Nf-2Df"/>
<constraint firstItem="tGd-pe-2xJ" firstAttribute="top" secondItem="Zfl-10-Wdk" secondAttribute="bottom" constant="8" symbolic="YES" id="8A7-YK-KEo"/>
<constraint firstItem="4xg-iR-B4f" firstAttribute="leading" secondItem="kjx-TJ-4n3" secondAttribute="leading" id="8kJ-hn-ulH"/>
<constraint firstItem="RcT-mn-xqK" firstAttribute="trailing" secondItem="kjx-TJ-4n3" secondAttribute="trailing" id="D32-fy-0fC"/>
<constraint firstItem="KXG-O0-ake" firstAttribute="leading" secondItem="Zfl-10-Wdk" secondAttribute="leading" id="Dte-Ku-Q7q"/>
<constraint firstItem="kjx-TJ-4n3" firstAttribute="top" secondItem="RcT-mn-xqK" secondAttribute="bottom" constant="32" id="Epj-IT-hOu"/>
<constraint firstItem="kjx-TJ-4n3" firstAttribute="top" secondItem="4xg-iR-B4f" secondAttribute="bottom" constant="8" symbolic="YES" id="GyQ-L9-keE"/>
<constraint firstAttribute="trailing" secondItem="cd8-PU-OwG" secondAttribute="trailing" constant="20" symbolic="YES" id="HJt-9K-WU2"/>
<constraint firstItem="Zfl-10-Wdk" firstAttribute="leading" secondItem="tGd-pe-2xJ" secondAttribute="leading" id="HWi-dK-yGk"/>
<constraint firstItem="tGd-pe-2xJ" firstAttribute="trailing" secondItem="RcT-mn-xqK" secondAttribute="trailing" id="IYd-zO-iAL"/>
<constraint firstItem="4xg-iR-B4f" firstAttribute="leading" secondItem="Pc1-f7-0zA" secondAttribute="leading" constant="20" symbolic="YES" id="J0h-JM-OJZ"/>
<constraint firstItem="mhO-vS-JmZ" firstAttribute="top" secondItem="r8z-mM-M0X" secondAttribute="bottom" constant="14" id="Kod-Tz-FNj"/>
<constraint firstItem="Zfl-10-Wdk" firstAttribute="leading" secondItem="MvY-R0-1FU" secondAttribute="trailing" constant="8" symbolic="YES" id="Lnl-U5-OBX"/>
<constraint firstItem="c8B-qf-UNK" firstAttribute="leading" secondItem="Pc1-f7-0zA" secondAttribute="leading" constant="37" id="Lx3-So-mJs"/>
<constraint firstItem="c8B-qf-UNK" firstAttribute="leading" secondItem="r8z-mM-M0X" secondAttribute="leading" id="NlF-80-NoN"/>
<constraint firstItem="KXG-O0-ake" firstAttribute="leading" secondItem="RYj-h6-uAT" secondAttribute="trailing" constant="8" symbolic="YES" id="OLB-Qk-FL3"/>
<constraint firstItem="mhO-vS-JmZ" firstAttribute="leading" secondItem="Pc1-f7-0zA" secondAttribute="leading" constant="33" id="QFU-cb-Hrj"/>
<constraint firstItem="tGd-pe-2xJ" firstAttribute="leading" secondItem="RcT-mn-xqK" secondAttribute="leading" id="RfF-lb-Wzm"/>
<constraint firstItem="2rw-0u-LXJ" firstAttribute="trailing" secondItem="KXG-O0-ake" secondAttribute="trailing" id="SXI-LF-4wz"/>
<constraint firstItem="2rw-0u-LXJ" firstAttribute="leading" secondItem="r8z-mM-M0X" secondAttribute="trailing" constant="8" symbolic="YES" id="TY8-5p-9ag"/>
<constraint firstItem="cd8-PU-OwG" firstAttribute="trailing" secondItem="GR0-SX-ali" secondAttribute="trailing" id="U5K-rc-9fl"/>
<constraint firstItem="GR0-SX-ali" firstAttribute="leading" secondItem="KXG-O0-ake" secondAttribute="leading" id="USg-Zg-eit"/>
<constraint firstItem="a60-LH-adV" firstAttribute="leading" secondItem="Zfl-10-Wdk" secondAttribute="trailing" constant="8" symbolic="YES" id="WcP-VA-iMq"/>
<constraint firstItem="c8B-qf-UNK" firstAttribute="baseline" secondItem="cd8-PU-OwG" secondAttribute="baseline" id="YdQ-6e-RyU"/>
<constraint firstItem="RYj-h6-uAT" firstAttribute="leading" secondItem="MvY-R0-1FU" secondAttribute="leading" id="b7u-FV-JP5"/>
<constraint firstItem="2rw-0u-LXJ" firstAttribute="leading" secondItem="GR0-SX-ali" secondAttribute="leading" id="ewz-b9-qpa"/>
<constraint firstItem="2rw-0u-LXJ" firstAttribute="top" secondItem="cd8-PU-OwG" secondAttribute="bottom" constant="10" symbolic="YES" id="hLh-zw-LeO"/>
<constraint firstItem="GR0-SX-ali" firstAttribute="leading" secondItem="mhO-vS-JmZ" secondAttribute="trailing" constant="8" symbolic="YES" id="j2j-q2-ujq"/>
<constraint firstItem="Zfl-10-Wdk" firstAttribute="top" secondItem="KXG-O0-ake" secondAttribute="bottom" constant="10" symbolic="YES" id="jWO-Kw-5mv"/>
<constraint firstItem="cd8-PU-OwG" firstAttribute="leading" secondItem="c8B-qf-UNK" secondAttribute="trailing" constant="8" symbolic="YES" id="kr5-Wa-jKW"/>
<constraint firstItem="r8z-mM-M0X" firstAttribute="leading" secondItem="RYj-h6-uAT" secondAttribute="leading" id="lag-wc-7bo"/>
<constraint firstItem="KXG-O0-ake" firstAttribute="trailing" secondItem="Zfl-10-Wdk" secondAttribute="trailing" id="odt-X9-wYv"/>
<constraint firstItem="KXG-O0-ake" firstAttribute="top" secondItem="GR0-SX-ali" secondAttribute="bottom" constant="10" symbolic="YES" id="sbI-FW-tlP"/>
<constraint firstItem="MvY-R0-1FU" firstAttribute="baseline" secondItem="Zfl-10-Wdk" secondAttribute="baseline" id="slv-0C-Pd5"/>
<constraint firstItem="cd8-PU-OwG" firstAttribute="leading" secondItem="2rw-0u-LXJ" secondAttribute="leading" id="tBc-ki-xfC"/>
<constraint firstItem="GR0-SX-ali" firstAttribute="top" secondItem="2rw-0u-LXJ" secondAttribute="bottom" constant="10" symbolic="YES" id="u6h-QW-yGv"/>
<constraint firstAttribute="trailing" secondItem="a60-LH-adV" secondAttribute="trailing" constant="75" id="uSw-AP-tG3"/>
<constraint firstItem="RcT-mn-xqK" firstAttribute="top" secondItem="tGd-pe-2xJ" secondAttribute="bottom" constant="6" symbolic="YES" id="v7V-kw-1b8"/>
<constraint firstItem="RYj-h6-uAT" firstAttribute="baseline" secondItem="KXG-O0-ake" secondAttribute="baseline" id="vSB-4o-Vk6"/>
<constraint firstItem="Zfl-10-Wdk" firstAttribute="baseline" secondItem="a60-LH-adV" secondAttribute="baseline" id="wen-Zv-PGp"/>
<constraint firstItem="GR0-SX-ali" firstAttribute="trailing" secondItem="tGd-pe-2xJ" secondAttribute="trailing" id="wqz-CL-0i7"/>
<constraint firstItem="cd8-PU-OwG" firstAttribute="top" secondItem="Pc1-f7-0zA" secondAttribute="top" constant="20" symbolic="YES" id="yFy-28-ydI"/>
<constraint firstItem="RYj-h6-uAT" firstAttribute="leading" secondItem="MvY-R0-1FU" secondAttribute="leading" id="1aA-6v-Q8B"/>
<constraint firstItem="2rw-0u-LXJ" firstAttribute="trailing" secondItem="KXG-O0-ake" secondAttribute="trailing" id="2sM-Ud-zaK"/>
<constraint firstItem="Zfl-10-Wdk" firstAttribute="leading" secondItem="MvY-R0-1FU" secondAttribute="trailing" constant="8" symbolic="YES" id="72a-tV-4gM"/>
<constraint firstItem="r8z-mM-M0X" firstAttribute="leading" secondItem="RYj-h6-uAT" secondAttribute="leading" id="7dL-ac-PRT"/>
<constraint firstItem="67s-wg-2Sy" firstAttribute="top" secondItem="2rw-0u-LXJ" secondAttribute="bottom" constant="14" id="8FC-1g-GY6"/>
<constraint firstItem="r8z-mM-M0X" firstAttribute="baseline" secondItem="2rw-0u-LXJ" secondAttribute="baseline" id="Avs-sU-9rl"/>
<constraint firstItem="cd8-PU-OwG" firstAttribute="leading" secondItem="c8B-qf-UNK" secondAttribute="trailing" constant="8" symbolic="YES" id="BRO-xg-HnA"/>
<constraint firstItem="cd8-PU-OwG" firstAttribute="leading" secondItem="2rw-0u-LXJ" secondAttribute="leading" id="ByT-YT-4YP"/>
<constraint firstItem="kjx-TJ-4n3" firstAttribute="top" secondItem="RcT-mn-xqK" secondAttribute="bottom" constant="32" id="DhD-hY-Hei"/>
<constraint firstItem="tGd-pe-2xJ" firstAttribute="top" secondItem="Zfl-10-Wdk" secondAttribute="bottom" constant="8" symbolic="YES" id="ERy-Kz-wm9"/>
<constraint firstItem="c8B-qf-UNK" firstAttribute="leading" secondItem="Pc1-f7-0zA" secondAttribute="leading" constant="37" id="FC0-Uf-JHj"/>
<constraint firstAttribute="trailing" secondItem="a60-LH-adV" secondAttribute="trailing" constant="75" id="Gid-Dg-5o3"/>
<constraint firstItem="RcT-mn-xqK" firstAttribute="trailing" secondItem="kjx-TJ-4n3" secondAttribute="trailing" id="JIF-rX-Yva"/>
<constraint firstItem="c8B-qf-UNK" firstAttribute="baseline" secondItem="cd8-PU-OwG" secondAttribute="baseline" id="NZe-9h-P0V"/>
<constraint firstItem="Zfl-10-Wdk" firstAttribute="baseline" secondItem="a60-LH-adV" secondAttribute="baseline" id="PM4-3S-XXa"/>
<constraint firstItem="KXG-O0-ake" firstAttribute="leading" secondItem="Zfl-10-Wdk" secondAttribute="leading" id="S1b-KD-JDg"/>
<constraint firstItem="c8B-qf-UNK" firstAttribute="leading" secondItem="r8z-mM-M0X" secondAttribute="leading" id="VDu-iy-6vK"/>
<constraint firstItem="4xg-iR-B4f" firstAttribute="leading" secondItem="Pc1-f7-0zA" secondAttribute="leading" constant="20" symbolic="YES" id="VJI-th-aeN"/>
<constraint firstItem="RcT-mn-xqK" firstAttribute="top" secondItem="tGd-pe-2xJ" secondAttribute="bottom" constant="6" symbolic="YES" id="WlH-NJ-RUt"/>
<constraint firstItem="tGd-pe-2xJ" firstAttribute="leading" secondItem="RcT-mn-xqK" secondAttribute="leading" id="YLA-i2-7Fi"/>
<constraint firstItem="KXG-O0-ake" firstAttribute="top" secondItem="67s-wg-2Sy" secondAttribute="bottom" constant="13" id="ZIU-je-F0U"/>
<constraint firstItem="Zfl-10-Wdk" firstAttribute="top" secondItem="KXG-O0-ake" secondAttribute="bottom" constant="10" symbolic="YES" id="ahT-23-auY"/>
<constraint firstItem="4xg-iR-B4f" firstAttribute="leading" secondItem="kjx-TJ-4n3" secondAttribute="leading" id="aoH-EQ-rvn"/>
<constraint firstItem="a60-LH-adV" firstAttribute="leading" secondItem="Zfl-10-Wdk" secondAttribute="trailing" constant="8" symbolic="YES" id="bOO-HZ-pGJ"/>
<constraint firstItem="MvY-R0-1FU" firstAttribute="baseline" secondItem="Zfl-10-Wdk" secondAttribute="baseline" id="cTU-sU-Hbg"/>
<constraint firstItem="Zfl-10-Wdk" firstAttribute="leading" secondItem="tGd-pe-2xJ" secondAttribute="leading" id="fOM-N9-QWD"/>
<constraint firstItem="RYj-h6-uAT" firstAttribute="baseline" secondItem="KXG-O0-ake" secondAttribute="baseline" id="hAh-N6-Vph"/>
<constraint firstItem="67s-wg-2Sy" firstAttribute="leading" secondItem="KXG-O0-ake" secondAttribute="leading" id="isi-Hl-Asv"/>
<constraint firstItem="tGd-pe-2xJ" firstAttribute="trailing" secondItem="RcT-mn-xqK" secondAttribute="trailing" id="j1r-Q0-FKa"/>
<constraint firstItem="cd8-PU-OwG" firstAttribute="top" secondItem="Pc1-f7-0zA" secondAttribute="top" constant="20" symbolic="YES" id="l9o-ay-eyU"/>
<constraint firstItem="2rw-0u-LXJ" firstAttribute="top" secondItem="cd8-PU-OwG" secondAttribute="bottom" constant="10" symbolic="YES" id="n0x-Ms-zP0"/>
<constraint firstItem="kjx-TJ-4n3" firstAttribute="top" secondItem="4xg-iR-B4f" secondAttribute="bottom" constant="8" symbolic="YES" id="qo9-qW-tK8"/>
<constraint firstItem="2rw-0u-LXJ" firstAttribute="leading" secondItem="r8z-mM-M0X" secondAttribute="trailing" constant="8" symbolic="YES" id="rEO-dX-nm4"/>
<constraint firstItem="KXG-O0-ake" firstAttribute="trailing" secondItem="Zfl-10-Wdk" secondAttribute="trailing" id="usG-2D-Jps"/>
<constraint firstItem="2rw-0u-LXJ" firstAttribute="leading" secondItem="67s-wg-2Sy" secondAttribute="leading" id="vXT-hO-fLs"/>
<constraint firstAttribute="trailing" secondItem="cd8-PU-OwG" secondAttribute="trailing" constant="20" symbolic="YES" id="zrF-jX-3fl"/>
</constraints>
</view>
</tabViewItem>
<tabViewItem label="HTTP" identifier="http" id="F5Q-Ce-JJN">
<view key="view" id="kK3-29-KeI">
<rect key="frame" x="0.0" y="0.0" width="480" height="326"/>
<rect key="frame" x="0.0" y="0.0" width="479" height="326"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XI2-x3-9ie">
<rect key="frame" x="18" y="288" width="217" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="213" id="sfC-mi-IB3"/>
<constraint firstAttribute="width" constant="213" id="pd4-On-JhI"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="HTTP Proxy Listen Address:" id="6W4-TY-Bw5">
<font key="font" metaFont="system"/>
@ -456,7 +443,7 @@
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OoG-C4-oji">
<rect key="frame" x="247" y="254" width="70" height="21"/>
<constraints>
<constraint firstAttribute="width" constant="70" id="roJ-9Y-Tcx"/>
<constraint firstAttribute="width" constant="70" id="xcK-p4-AFO"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" drawsBackground="YES" id="0bX-LS-7QW">
<font key="font" metaFont="system"/>
@ -494,26 +481,26 @@
</button>
</subviews>
<constraints>
<constraint firstItem="xWf-Bw-9V9" firstAttribute="top" secondItem="URa-Z3-BgW" secondAttribute="bottom" constant="21" id="BKv-OP-8ZE"/>
<constraint firstItem="Ee3-wg-WSi" firstAttribute="top" secondItem="xWf-Bw-9V9" secondAttribute="bottom" constant="20" id="CEm-c0-tRx"/>
<constraint firstAttribute="trailing" secondItem="A8G-1x-YxA" secondAttribute="trailing" constant="20" symbolic="YES" id="Dql-Ne-cOs"/>
<constraint firstItem="XI2-x3-9ie" firstAttribute="trailing" secondItem="URa-Z3-BgW" secondAttribute="trailing" id="GHV-xz-Lfc"/>
<constraint firstItem="XI2-x3-9ie" firstAttribute="baseline" secondItem="A8G-1x-YxA" secondAttribute="baseline" id="HjC-48-pDL"/>
<constraint firstItem="A8G-1x-YxA" firstAttribute="top" secondItem="kK3-29-KeI" secondAttribute="top" constant="20" symbolic="YES" id="JHe-iA-Tc1"/>
<constraint firstItem="A8G-1x-YxA" firstAttribute="leading" secondItem="XI2-x3-9ie" secondAttribute="trailing" constant="14" id="Pux-To-rNB"/>
<constraint firstItem="XI2-x3-9ie" firstAttribute="leading" secondItem="kK3-29-KeI" secondAttribute="leading" constant="20" symbolic="YES" id="Q6N-DE-1pf"/>
<constraint firstItem="URa-Z3-BgW" firstAttribute="baseline" secondItem="OoG-C4-oji" secondAttribute="baseline" id="RcL-PN-6y7"/>
<constraint firstItem="A8G-1x-YxA" firstAttribute="leading" secondItem="OoG-C4-oji" secondAttribute="leading" id="aUI-7o-hLd"/>
<constraint firstItem="xWf-Bw-9V9" firstAttribute="leading" secondItem="kK3-29-KeI" secondAttribute="leading" constant="32" id="oIf-rc-KK2"/>
<constraint firstItem="OoG-C4-oji" firstAttribute="top" secondItem="A8G-1x-YxA" secondAttribute="bottom" constant="10" symbolic="YES" id="rKM-3R-DKm"/>
<constraint firstItem="XI2-x3-9ie" firstAttribute="leading" secondItem="URa-Z3-BgW" secondAttribute="leading" id="yb0-96-neB"/>
<constraint firstItem="xWf-Bw-9V9" firstAttribute="leading" secondItem="Ee3-wg-WSi" secondAttribute="leading" id="zHV-pr-4eC"/>
<constraint firstItem="URa-Z3-BgW" firstAttribute="baseline" secondItem="OoG-C4-oji" secondAttribute="baseline" id="Aj1-X9-AaX"/>
<constraint firstItem="xWf-Bw-9V9" firstAttribute="leading" secondItem="Ee3-wg-WSi" secondAttribute="leading" id="D5c-Hf-hbn"/>
<constraint firstItem="XI2-x3-9ie" firstAttribute="baseline" secondItem="A8G-1x-YxA" secondAttribute="baseline" id="GBh-Wy-StZ"/>
<constraint firstItem="Ee3-wg-WSi" firstAttribute="top" secondItem="xWf-Bw-9V9" secondAttribute="bottom" constant="20" id="MRV-c0-DsH"/>
<constraint firstItem="XI2-x3-9ie" firstAttribute="trailing" secondItem="URa-Z3-BgW" secondAttribute="trailing" id="Ndh-r0-5BA"/>
<constraint firstAttribute="trailing" secondItem="A8G-1x-YxA" secondAttribute="trailing" constant="19" id="P7w-PO-lyw"/>
<constraint firstItem="A8G-1x-YxA" firstAttribute="leading" secondItem="OoG-C4-oji" secondAttribute="leading" id="R8T-f7-dn2"/>
<constraint firstItem="A8G-1x-YxA" firstAttribute="top" secondItem="kK3-29-KeI" secondAttribute="top" constant="20" symbolic="YES" id="aXD-oD-GcI"/>
<constraint firstItem="A8G-1x-YxA" firstAttribute="leading" secondItem="XI2-x3-9ie" secondAttribute="trailing" constant="14" id="c1Q-No-GbX"/>
<constraint firstItem="OoG-C4-oji" firstAttribute="top" secondItem="A8G-1x-YxA" secondAttribute="bottom" constant="10" symbolic="YES" id="g7t-rt-dUV"/>
<constraint firstItem="XI2-x3-9ie" firstAttribute="leading" secondItem="URa-Z3-BgW" secondAttribute="leading" id="mZ6-ha-7XJ"/>
<constraint firstItem="xWf-Bw-9V9" firstAttribute="leading" secondItem="kK3-29-KeI" secondAttribute="leading" constant="32" id="nh8-k4-cWC"/>
<constraint firstItem="XI2-x3-9ie" firstAttribute="leading" secondItem="kK3-29-KeI" secondAttribute="leading" constant="20" symbolic="YES" id="wbx-Xy-yfh"/>
<constraint firstItem="xWf-Bw-9V9" firstAttribute="top" secondItem="URa-Z3-BgW" secondAttribute="bottom" constant="21" id="ysE-Xx-EKD"/>
</constraints>
</view>
</tabViewItem>
<tabViewItem label="Interfaces" identifier="interfaces" id="eDR-CZ-P4p">
<view key="view" id="Ati-LQ-RB7">
<rect key="frame" x="0.0" y="0.0" width="480" height="326"/>
<view key="view" misplaced="YES" id="Ati-LQ-RB7">
<rect key="frame" x="0.0" y="0.0" width="479" height="326"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button translatesAutoresizingMaskIntoConstraints="NO" id="x9X-2w-cOy">
@ -541,7 +528,7 @@
<tableColumns>
<tableColumn width="435" minWidth="40" maxWidth="1000" id="4CL-dk-HUu">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
<font key="font" metaFont="message" size="11"/>
<font key="font" metaFont="menu" size="11"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
@ -576,7 +563,7 @@
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="fMc-SG-EDy">
<rect key="frame" x="18" y="265" width="444" height="41"/>
<constraints>
<constraint firstAttribute="height" constant="41" id="c3N-Rd-qDT"/>
<constraint firstAttribute="height" constant="41" id="8Tc-8R-1jj"/>
</constraints>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Which network interfaces proxy setting would be controlled by ShadowsocksX-NG" id="t0I-6n-gnu">
<font key="font" metaFont="system"/>
@ -587,7 +574,7 @@
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1lH-rX-WZT">
<rect key="frame" x="18" y="78" width="373" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="369" id="Xdn-S8-heX"/>
<constraint firstAttribute="width" constant="369" id="uWk-mY-ajK"/>
</constraints>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Bypass proxy settings for these Hosts &amp; Domains:" id="v4F-L4-s8U">
<font key="font" metaFont="system"/>
@ -598,7 +585,7 @@
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="N84-AY-ecA">
<rect key="frame" x="20" y="20" width="440" height="45"/>
<constraints>
<constraint firstAttribute="height" constant="45" id="eGD-Ou-aXQ"/>
<constraint firstAttribute="height" constant="45" id="R7N-ad-q8p"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="g2Z-r8-ipF">
<font key="font" metaFont="system"/>
@ -625,23 +612,23 @@
</button>
</subviews>
<constraints>
<constraint firstItem="x9X-2w-cOy" firstAttribute="top" secondItem="fMc-SG-EDy" secondAttribute="bottom" constant="8" symbolic="YES" id="0jg-uD-1Vb"/>
<constraint firstItem="qG0-rB-6MR" firstAttribute="trailing" secondItem="N84-AY-ecA" secondAttribute="trailing" id="1UW-26-d66"/>
<constraint firstItem="N84-AY-ecA" firstAttribute="top" secondItem="qG0-rB-6MR" secondAttribute="bottom" constant="10" id="4EL-Df-LY9"/>
<constraint firstAttribute="trailing" secondItem="fMc-SG-EDy" secondAttribute="trailing" constant="20" symbolic="YES" id="9Wi-sZ-wgS"/>
<constraint firstItem="1lH-rX-WZT" firstAttribute="baseline" secondItem="qG0-rB-6MR" secondAttribute="baseline" id="HF9-QP-IpC"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="leading" secondItem="x9X-2w-cOy" secondAttribute="leading" id="HWL-lv-sjZ"/>
<constraint firstAttribute="bottom" secondItem="N84-AY-ecA" secondAttribute="bottom" constant="20" symbolic="YES" id="In6-QP-n1f"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="leading" secondItem="Ati-LQ-RB7" secondAttribute="leading" constant="20" symbolic="YES" id="PU1-gp-gAc"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="trailing" secondItem="dGc-zC-AYJ" secondAttribute="trailing" id="Rqh-UT-KO9"/>
<constraint firstItem="qG0-rB-6MR" firstAttribute="leading" secondItem="1lH-rX-WZT" secondAttribute="trailing" constant="8" symbolic="YES" id="TaE-Mm-uii"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="top" secondItem="Ati-LQ-RB7" secondAttribute="top" constant="20" symbolic="YES" id="bse-fA-UJ2"/>
<constraint firstItem="qG0-rB-6MR" firstAttribute="top" secondItem="dGc-zC-AYJ" secondAttribute="bottom" constant="15" id="g7y-2x-sJm"/>
<constraint firstItem="dGc-zC-AYJ" firstAttribute="trailing" secondItem="qG0-rB-6MR" secondAttribute="trailing" id="k36-tG-7XN"/>
<constraint firstItem="dGc-zC-AYJ" firstAttribute="top" secondItem="x9X-2w-cOy" secondAttribute="bottom" constant="13" id="l9R-Jj-PPb"/>
<constraint firstItem="dGc-zC-AYJ" firstAttribute="leading" secondItem="1lH-rX-WZT" secondAttribute="leading" id="puH-03-xZf"/>
<constraint firstItem="1lH-rX-WZT" firstAttribute="leading" secondItem="N84-AY-ecA" secondAttribute="leading" id="qVi-lk-SV5"/>
<constraint firstItem="x9X-2w-cOy" firstAttribute="leading" secondItem="dGc-zC-AYJ" secondAttribute="leading" id="rYi-hf-W9A"/>
<constraint firstItem="dGc-zC-AYJ" firstAttribute="top" secondItem="x9X-2w-cOy" secondAttribute="bottom" constant="13" id="5jW-Mo-Pc5"/>
<constraint firstItem="x9X-2w-cOy" firstAttribute="leading" secondItem="dGc-zC-AYJ" secondAttribute="leading" id="7eE-eY-Whe"/>
<constraint firstItem="dGc-zC-AYJ" firstAttribute="leading" secondItem="1lH-rX-WZT" secondAttribute="leading" id="DH7-r8-mwZ"/>
<constraint firstItem="1lH-rX-WZT" firstAttribute="leading" secondItem="N84-AY-ecA" secondAttribute="leading" id="GgB-L7-cW8"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="leading" secondItem="x9X-2w-cOy" secondAttribute="leading" id="HtT-3a-mit"/>
<constraint firstItem="dGc-zC-AYJ" firstAttribute="trailing" secondItem="qG0-rB-6MR" secondAttribute="trailing" id="Hvf-rM-FRI"/>
<constraint firstItem="qG0-rB-6MR" firstAttribute="trailing" secondItem="N84-AY-ecA" secondAttribute="trailing" id="Q6X-Sp-lFi"/>
<constraint firstItem="qG0-rB-6MR" firstAttribute="leading" secondItem="1lH-rX-WZT" secondAttribute="trailing" constant="8" symbolic="YES" id="c5y-iA-dyS"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="leading" secondItem="Ati-LQ-RB7" secondAttribute="leading" constant="20" symbolic="YES" id="doB-b9-Gri"/>
<constraint firstAttribute="bottom" secondItem="N84-AY-ecA" secondAttribute="bottom" constant="20" symbolic="YES" id="eWN-hg-7YJ"/>
<constraint firstItem="qG0-rB-6MR" firstAttribute="top" secondItem="dGc-zC-AYJ" secondAttribute="bottom" constant="15" id="hpv-9Y-g7G"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="trailing" secondItem="dGc-zC-AYJ" secondAttribute="trailing" id="ikc-gG-3MB"/>
<constraint firstItem="N84-AY-ecA" firstAttribute="top" secondItem="qG0-rB-6MR" secondAttribute="bottom" constant="10" id="jDx-Uy-AhQ"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="top" secondItem="Ati-LQ-RB7" secondAttribute="top" constant="20" symbolic="YES" id="kY4-8C-LzC"/>
<constraint firstItem="x9X-2w-cOy" firstAttribute="top" secondItem="fMc-SG-EDy" secondAttribute="bottom" constant="8" symbolic="YES" id="luD-Zw-Bag"/>
<constraint firstItem="fMc-SG-EDy" firstAttribute="centerX" secondItem="Ati-LQ-RB7" secondAttribute="centerX" id="qiF-jK-5Jt"/>
<constraint firstItem="1lH-rX-WZT" firstAttribute="baseline" secondItem="qG0-rB-6MR" secondAttribute="baseline" id="rtB-T6-I3K"/>
</constraints>
</view>
</tabViewItem>
@ -649,10 +636,10 @@
</tabView>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="h22-uy-K1x" secondAttribute="bottom" id="QIw-hg-vJ4"/>
<constraint firstItem="h22-uy-K1x" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="vAv-dd-mqz"/>
<constraint firstItem="h22-uy-K1x" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="vbs-j1-mbj"/>
<constraint firstAttribute="trailing" secondItem="h22-uy-K1x" secondAttribute="trailing" id="vna-YV-GzQ"/>
<constraint firstItem="h22-uy-K1x" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="HCv-ZJ-Q2c"/>
<constraint firstAttribute="trailing" secondItem="h22-uy-K1x" secondAttribute="trailing" id="MeG-fb-l06"/>
<constraint firstAttribute="bottom" secondItem="h22-uy-K1x" secondAttribute="bottom" id="XlW-sY-ILc"/>
<constraint firstItem="h22-uy-K1x" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="Yrg-VE-f0G"/>
</constraints>
</view>
<toolbar key="toolbar" implicitIdentifier="8C4EF182-55FF-4325-A88F-2B007115CF4C" autosavesConfiguration="NO" allowsUserCustomization="NO" displayMode="iconAndLabel" sizeMode="regular" id="D9u-IW-4jN">

View File

@ -41,7 +41,7 @@ func diagnose() -> String {
"ShadowsocksRunningMode",
"LocalSocks5.ListenPort",
"LocalSocks5.ListenAddress",
"PacServer.ListenAddress",
"PacServer.BindToLocalhost",
"PacServer.ListenPort",
"LocalSocks5.Timeout",
"LocalSocks5.EnableUDPRelay",

View File

@ -208,7 +208,7 @@ GCDWebServer *webServer = nil;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString * address = [defaults stringForKey:@"PacServer.ListenAddress"];
NSString * address = @"localhost";
int port = (short)[defaults integerForKey:@"PacServer.ListenPort"];
return [NSString stringWithFormat:@"%@%@:%d%@",@"http://",address,port,routerPath];
@ -243,10 +243,13 @@ GCDWebServer *webServer = nil;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString * address = [defaults stringForKey:@"PacServer.ListenAddress"];
BOOL bindToLocalhost = [defaults boolForKey:@"PacServer.BindToLocalhost"];
int port = (short)[defaults integerForKey:@"PacServer.ListenPort"];
[webServer startWithOptions:@{@"ServerName":address,@"Port":@(port)} error:nil];
[webServer startWithOptions:@{
GCDWebServerOption_BindToLocalhost: @(bindToLocalhost),
GCDWebServerOption_Port: @(port)
} error:nil];
}
+ (void)stopPACServer {

View File

@ -52,8 +52,8 @@
/* Class = "NSTextFieldCell"; title = "Num of Kcptun connections:"; ObjectID = "FSi-9j-QBe"; */
"FSi-9j-QBe.title" = "Num of Kcptun connections:";
/* Class = "NSTextFieldCell"; title = "Local PAC Server Listen Address:"; ObjectID = "80e-Qu-r2S"; */
"80e-Qu-r2S.title" = "本地PAC服务器监听地址:";
/* Class = "NSButtonCell"; title = "Local PAC Server Bind To Localhost"; ObjectID = "oCf-id-PAx"; */
"oCf-id-PAx.title" = "本地PAC服务器监听localhost";
/* Class = "NSTextFieldCell"; title = "Local PAC Server Listen Port:"; ObjectID = "IMQ-c4-gmc"; */
"IMQ-c4-gmc.title" = "本地PAC服务器监听端口:";