text:
="U16" pad="4"/>
<contactref element="U15" pad="1"/>
<contactref element="C14" pad="1"/>
<contactref element="U20" pad="4"/>
<contactref element="C23" pad="1"/>
<wire x1="102.682" y1="19.461" x2="100.145" y2="19.461" width="0.4064" layer="1"/>
<wire x1="100.145" y1="19.461" x2="100.076" y2="19.392" width="0.4064" layer="1"/>
<wire x1="68.961" y1="2.159" x2="31.75" y2="2.159" width="0.4064" layer="16"/>
<wire x1="31.75" y1="2.159" x2="5.588" y2="2.159" width="0.4064" layer="16"/>
<wire x1="66.3435" y1="7.366" x2="68.873" y2="7.366" width="0.4064" layer="1"/>
<wire x1="68.873" y1="7.366" x2="68.9365" y2="7.3025" width="0.4064" layer="1"/>
<wire x1="68.9365" y1="7.3025" x2="68.9365" y2="2.1835" width="0.4064" layer="1"/>
<wire x1="68.9365" y1="2.1835" x2="68.961" y2="2.159" width="0.4064" layer="1"/>
<via x="68.961" y="2.159" extent="1-16" drill="0.6" shape="square"/>
<wire x1="5.842" y1="6.565" x2="5.885" y2="6.608" width="0.4064" layer="1"/>
<wire x1="5.885" y1="6.608" x2="5.885" y2="8.287" width="0.4064" layer="1"/>
<wire x1="31.0905" y1="7.0485" x2="21.2725" y2="7.0485" width="0.4064" layer="1"/>
<wire x1="21.2725" y1="7.0485" x2="20.828" y2="7.493" width="0.4064" layer="1"/>
<wire x1="20.828" y1="7.493" x2="20.828" y2="8.329" width="0.4064" layer="1"/>
<wire x1="20.828" y1="8.329" x2="20.753" y2="8.404" width="0.4064" layer="1"/>
<wire x1="31.0905" y1="7.0485" x2="31.0905" y2="4.8505" width="0.4064" layer="1"/>
<wire x1="31.0905" y1="4.8505" x2="31.115" y2="4.826" width="0.4064" layer="1"/>
<via x="31.115" y="4.826" extent="1-16" drill="0.6" shape="square"/>
<wire x1="31.115" y1="4.826" x2="31.115" y2="2.794" width="0.4064" layer="16"/>
<wire x1="31.115" y1="2.794" x2="31.75" y2="2.159" width="0.4064" layer="16"/>
<wire x1="5.588" y1="2.159" x2="3.429" y2="4.318" width="0.4064" layer="16"/>
<wire x1="3.429" y1="4.318" x2="3.429" y2="6.477" width="0.4064" layer="16"/>
<via x="3.429" y="6.477" extent="1-16" drill="0.6" shape="square"/>
<wire x1="3.429" y1="6.477" x2="5.754" y2="6.477" width="0.4064" layer="1"/>
<wire x1="5.754" y1="6.477" x2="5.842" y2="6.565" width="0.4064" layer="1"/>
<wire x1="5.885" y1="8.287" x2="5.885" y2="8.171" width="0.4064" layer="1"/>
<wire x1="5.885" y1="8.171" x2="5.842" y2="8.128" width="0.4064" layer="1"/>
<wire x1="5.842" y1="8.128" x2="5.842" y2="8.255" width="0.4064" layer="1"/>
<wire x1="5.885" y1="12.287" x2="3.461" y2="12.287" width="0.4064" layer="1"/>
<wire x1="3.461" y1="12.287" x2="3.429" y2="12.319" width="0.4064" layer="1"/>
<contactref element="U11" pad="5"/>
<contactref element="C12" pad="1"/>
<wire x1="89.281" y1="59.69" x2="89.281" y2="65.913" width="0.4064" layer="16"/>
<wire x1="89.281" y1="65.913" x2="89.281" y2="72.39" width="0.4064" layer="16"/>
<wire x1="84.8106" y1="78.613" x2="82.257" y2="78.613" width="0.4064" layer="1"/>
<wire x1="82.257" y1="78.613" x2="82.169" y2="78.701" width="0.4064" layer="1"/>
<wire x1="82.169" y1="79.502" x2="82.169" y2="80.899" width="0.4064" layer="16"/>
<via x="82.169" y="80.899" extent="1-16" drill="0.6" shape="square"/>
<wire x1="89.281" y1="72.39" x2="82.169" y2="79.502" width="0.4064" layer="16"/>
<wire x1="82.169" y1="80.899" x2="75.057" y2="80.899" width="0.4064" layer="16"/>
<wire x1="75.057" y1="80.899" x2="73.66" y2="82.296" width="0.4064" layer="16"/>
<contactref element="U5" pad="5"/>
<contactref element="C6" pad="1"/>
<contactref element="R20" pad="2"/>
<contactref element="Q4" pad="2"/>
<contactref element="Q6" pad="2"/>
<contactref element="R22" pad="2"/>
<wire x1="70.419" y1="80.053" x2="71.925" y2="80.053" width="0.4064" layer="1"/>
<wire x1="71.925" y1="80.053" x2="72.009" y2="80.137" width="0.4064" layer="1"/>
<via x="72.009" y="80.137" extent="1-16" drill="0.6" shape="square"/>
<wire x1="72.009" y1="80.137" x2="72.009" y2="80.645" width="0.4064" layer="16"/>
<wire x1="72.009" y1="80.645" x2="73.66" y2="82.296" width="0.4064" layer="16"/>
<wire x1="34.163" y1="66.079" x2="36.773" y2="66.079" width="0.4064" layer="1"/>
<wire x1="36.773" y1="66.079" x2="36.873" y2="65.979" width="0.4064" layer="1"/>
<contactref element="U10" pad="5"/>
<contactref element="C24" pad="1"/>
<wire x1="11.85" y1="14.859" x2="10.541" y2="14.859" width="0.4064" layer="1"/>
<wire x1="10.541" y1="14.859" x2="10.033" y2="14.351" width="0.4064" layer="1"/>
<wire x1="10.033" y1="14.351" x2="10.033" y2="13.97" width="0.4064" layer="1"/>
<wire x1="10.033" y1="13.97" x2="9.906" y2="13.843" width="0.4064" layer="1"/>
<via x="9.906" y="13.843" extent="1-16" drill="0.6" shape="square"/>
<wire x1="9.906" y1="13.843" x2="4.953" y2="13.843" width="0.4064" layer="16"/>
<wire x1="4.953" y1="13.843" x2="3.429" y2="12.319" width="0.4064" layer="16"/>
<wire x1="5.885" y1="12.287" x2="5.853" y2="12.319" width="0.4064" layer="1"/>
<wire x1="5.853" y1="12.319" x2="3.429" y2="12.319" width="0.4064" layer="1"/>
<via x="3.429" y="12.319" extent="1-16" drill="0.6" shape="square"/>
<wire x1="3.429" y1="12.319" x2="1.905" y2="10.795" width="0.4064" layer="16"/>
<wire x1="1.905" y1="10.795" x2="1.905" y2="8.128" width="0.4064" layer="16"/>
<wire x1="1.905" y1="8.128" x2="3.429" y2="6.604" width="0.4064" layer="16"/>
<wire x1="3.429" y1="6.604" x2="3.429" y2="6.477" width="0.4064" layer="16"/>
<wire x1="11.7094" y1="16.8656" x2="11.85" y2="16.725" width="0.4064" layer="1"/>
<wire x1="11.85" y1="16.725" x2="11.85" y2="14.859" width="0.4064" layer="1"/>
<wire x1="82.169" y1="78.701" x2="82.169" y2="80.899" width="0.4064" layer="1"/>
<wire x1="54.483" y1="85.0646" x2="54.61" y2="84.9376" width="0.4064" layer="1"/>
<wire x1="54.61" y1="84.9376" x2="54.61" y2="83.947" width="0.4064" layer="1"/>
<wire x1="54.61" y1="83.947" x2="54.737" y2="83.82" width="0.4064" layer="1"/>
<wire x1="54.737" y1="83.82" x2="66.04" y2="83.82" width="0.4064" layer="1"/>
<via x="66.04" y="83.82" extent="1-16" drill="0.6" shape="square"/>
<wire x1="66.04" y1="83.82" x2="67.564" y2="82.296" width="0.4064" layer="16"/>
<wire x1="67.564" y1="82.296" x2="73.66" y2="82.296" width="0.4064" layer="16"/>
<wire x1="66.04" y1="81.749" x2="66.04" y2="83.82" width="0.4064" layer="1"/>
<wire x1="54.483" y1="85.0646" x2="54.483" y2="85.09" width="0.4064" layer="1"/>
<wire x1="54.483" y1="85.0646" x2="54.4204" y2="85.002" width="0.4064" layer="1"/>
<wire x1="54.4204" y1="85.002" x2="52.705" y2="85.002" width="0.4064" layer="1"/>
<contactref element="R10" pad="2"/>
<contactref element="R8" pad="2"/>
<wire x1="59.651" y1="88.011" x2="63.627" y2="88.011" width="0.4064" layer="1"/>
<wire x1="63.627" y1="88.011" x2="66.04" y2="85.598" width="0.4064" layer="1"/>
<wire x1="66.04" y1="85.598" x2="66.04" y2="83.82" width="0.4064" layer="1"/>
<wire x1="84.8106" y1="78.613" x2="84.8106" y2="80.9634" width="0.4064" layer="1"/>
<wire x1="84.8106" y1="80.9634" x2="84.621" y2="81.153" width="0.4064" layer="1"/>
<wire x1="100.076" y1="19.392" x2="98.894" y2="19.392" width="0.4064" layer="1"/>
<wire x1="98.894" y1="19.392" x2="97.409" y2="17.907" width="0.4064" layer="1"/>
<wire x1="97.409" y1="17.907" x2="97.409" y2="11.557" width="0.4064" layer="16"/>
<wire x1="97.409" y1="11.557" x2="88.011" y2="2.159" width="0.4064" layer="16"/>
<wire x1="88.011" y1="2.159" x2="68.961" y2="2.159" width="0.4064" layer="16"/>
<wire x1="89.281" y1="59.69" x2="97.409" y2="51.562" width="0.4064" layer="16"/>
<wire x1="97.409" y1="51.562" x2="97.409" y2="17.907" width="0.4064" layer="16"/>
<wire x1="36.873" y1="65.979" x2="37.828" y2="65.024" width="0.4064" layer="1"/>
<wire x1="37.828" y1="65.024" x2="42.926" y2="65.024" width="0.4064" layer="1"/>
<wire x1="42.926" y1="65.024" x2="46.736" y2="68.834" width="0.4064" layer="1"/>
<wire x1="46.736" y1="68.834" x2="86.614" y2="68.834" width="0.4064" layer="1"/>
<wire x1="86.614" y1="68.834" x2="89.281" y2="66.167" width="0.4064" layer="1"/>
<wire x1="89.281" y1="66.167" x2="89.281" y2="65.913" width="0.4064" layer="1"/>
<via x="89.281" y="65.913" extent="1-16" drill="0.6" shape="square"/>
<wire x1="33.8192" y1="43.9048" x2="33.782" y2="43.942" width="0.4064" layer="16"/>
<via x="33.782" y="43.942" extent="1-16" drill="0.6" shape="square"/>
<wire x1="33.782" y1="43.942" x2="33.782" y2="65.698" width="0.4064" layer="1"/>
<wire x1="33.782" y1="65.698" x2="34.163" y2="66.079" width="0.4064" layer="1"/>
<wire x1="35.814" y1="34.4932" x2="33.9208" y2="34.4932" width="0.4064" layer="1"/>
<wire x1="33.9208" y1="34.4932" x2="33.87" y2="34.544" width="0.4064" layer="1"/>
<wire x1="33.8192" y1="43.9048" x2="33.8192" y2="37.1212" width="0.4064" layer="16"/>
<wire x1="33.8192" y1="37.1212" x2="33.782" y2="37.084" width="0.4064" layer="16"/>
<via x="33.782" y="37.084" extent="1-16" drill="0.6" shape="square"/>
<wire x1="33.782" y1="37.084" x2="33.87" y2="37.084" width="0.4064" layer="1"/>
<wire x1="33.87" y1="37.084" x2="33.87" y2="34.544" width="0.4064" layer="1"/>
</signal>
<signal name="SDCARD3V3">
<contactref element="U16" pad="2"/>
<contactref element="U15" pad="4"/>
<wire x1="22.953" y1="9.004" x2="22.953" y2="10.507" width="0.4064" layer="1"/>
<wire x1="22.953" y1="10.507" x2="23.241" y2="10.795" width="0.4064" layer="1"/>
<wire x1="23.241" y1="10.795" x2="31.115" y2="10.795" width="0.4064" layer="1"/>
<wire x1="31.115" y1="10.795" x2="32.385" y2="12.065" width="0.4064" layer="1"/>
<wire x1="32.385" y1="12.065" x2="32.385" y2="18.796" width="0.4064" layer="1"/>
<wire x1="32.385" y1="18.796" x2="34.417" y2="20.828" width="0.4064" layer="1"/>
<wire x1="34.417" y1="20.828" x2="34.417" y2="26.162" width="0.4064" layer="1"/>
<wire x1="34.417" y1="26.162" x2="39.624" y2="31.369" width="0.4064" layer="1"/>
<wire x1="39.624" y1="31.369" x2="39.624" y2="34.4932" width="0.4064" layer="1"/>
</signal>
<signal name="MOSI3V3">
<contactref element="U16" pad="3"/>
<contactref element="U20" pad="17"/>
<contactref element="U15" pad="12"/>
<wire x1="13.97" y1="19.05" x2="21.844" y2="11.176" width="0.4064" layer="1"/>
<wire x1="21.844" y1="11.176" x2="21.844" y2="8.613" width="0.4064" layer="1"/>
<wire x1="21.844" y1="8.613" x2="21.853" y2="8.604" width="0.4064" layer="1"/>
<wire x1="40.894" y1="39.4208" x2="40.894" y2="41.402" width="0.4064" layer="1"/>
<wire x1="40.894" y1="41.402" x2="40.132" y2="42.164" width="0.4064" layer="1"/>
<wire x1="21.853" y1="8.604" x2="21.853" y2="11.439" width="0.4064" layer="1"/>
<wire x1="21.853" y1="11.439" x2="23.241" y2="12.827" width="0.4064" layer="1"/>
<wire x1="23.241" y1="12.827" x2="30.607" y2="12.827" width="0.4064" layer="1"/>
<via x="30.607" y="12.827" extent="1-16" drill="0.6" shape="square"/>
<wire x1="30.607" y1="12.827" x2="34.671" y2="12.827" width="0.4064" layer="16"/>
<wire x1="34.671" y1="12.827" x2="40.132" y2="7.366" width="0.4064" layer="16"/>
<wire x1="40.132" y1="7.366" x2="51.943" y2="7.366" width="0.4064" layer="16"/>
<via x="51.943" y="7.366" extent="1-16" drill="0.6" shape="square"/>
<wire x1="51.943" y1="7.366" x2="56.9735" y2="7.366" width="0.4064" layer="1"/>
<wire x1="29.591" y1="28.829" x2="27.432" y2="26.67" width="0.4064" layer="1"/>
<wire x1="27.432" y1="26.67" x2="13.97" y2="26.67" width="0.4064" layer="1"/>
<wire x1="29.591" y1="28.829" x2="29.591" y2="36.322" width="0.4064" layer="1"/>
<wire x1="29.591" y1="36.322" x2="35.433" y2="42.164" width="0.4064" layer="1"/>
<wire x1="35.433" y1="42.164" x2="40.132" y2="42.164" width="0.4064" layer="1"/>
<contactref element="U10" pad="2"/>
<contactref element="MOSI3V3" pad="1"/>
<wire x1="13.97" y1="19.05" x2="13.97" y2="20.066" width="0.4064" layer="1"/>
<wire x1="13.97" y1="20.066" x2="12.2555" y2="21.7805" width="0.4064" layer="1"/>
<wire x1="12.2555" y1="21.7805" x2="11.557" y2="22.479" width="0.4064" layer="1"/>
<wire x1="11.557" y1="22.479" x2="11.557" y2="24.257" width="0.4064" layer="1"/>
<wire x1="11.557" y1="24.257" x2="13.97" y2="26.67" width="0.4064" layer="1"/>
<wire x1="7.239" y1="17.653" x2="7.239" y2="18.923" width="0.4064" layer="1"/>
<wire x1="7.239" y1="18.923" x2="9.271" y2="20.955" width="0.4064" layer="1"/>
<wire x1="9.271" y1="20.955" x2="11.049" y2="20.955" width="0.4064" layer="1"/>
<wire x1="11.049" y1="20.955" x2="11.43" y2="20.955" width="0.4064" layer="1"/>
<wire x1="11.43" y1="20.955" x2="12.2555" y2="21.7805" width="0.4064" layer="1"/>
<wire x1="11.049" y1="18.9484" x2="11.049" y2="20.955" width="0.254" layer="1"/>
</signal>
<signal name="SCK3V3">
<contactref element="U16" pad="5"/>
<contactref element="U17" pad="P$14"/>
<contactref element="U20" pad="18"/>
<contactref element="U20" pad="20"/>
<contactref element="SCK3V3" pad="1"/>
<contactref element="U15" pad="10"/>
<wire x1="56.9735" y1="3.556" x2="58.674" y2="3.556" width="0.4064" layer="1"/>
<wire x1="58.674" y1="3.556" x2="59.055" y2="3.937" width="0.4064" layer="1"/>
<wire x1="59.055" y1="3.937" x2="59.055" y2="5.715" width="0.4064" layer="1"/>
<wire x1="59.055" y1="5.715" x2="58.674" y2="6.096" width="0.4064" layer="1"/>
<wire x1="58.674" y1="6.096" x2="56.9735" y2="6.096" width="0.4064" layer="1"/>
<wire x1="19.653" y1="8.604" x2="19.653" y2="2.953" width="0.4064" layer="1"/>
<wire x1="19.653" y1="2.953" x2="19.685" y2="2.921" width="0.4064" layer="1"/>
<wire x1="19.685" y1="2.921" x2="56.3385" y2="2.921" width="0.4064" layer="1"/>
<wire x1="56.3385" y1="2.921" x2="56.9735" y2="3.556" width="0.4064" layer="1"/>
<wire x1="19.653" y1="2.953" x2="3.524" y2="2.953" width="0.4064" layer="1"/>
<wire x1="3.524" y1="2.953" x2="1.905" y2="4.572" width="0.4064" layer="1"/>
<wire x1="1.905" y1="4.572" x2="1.905" y2="11.303" width="0.4064" layer="1"/>
<wire x1="1.905" y1="11.303" x2="1.905" y2="12.954" width="0.4064" layer="1"/>
<wire x1="1.905" y1="12.954" x2="3.937" y2="14.986" width="0.4064" layer="1"/>
<wire x1="3.937" y1="14.986" x2="5.588" y2="14.986" width="0.4064" layer="1"/>
<wire x1="5.588" y1="14.986" x2="6.985" y2="13.589" width="0.4064" layer="1"/>
<wire x1="6.985" y1="13.589" x2="6.985" y2="12.387" width="0.4064" layer="1"/>
<wire x1="56.9735" y1="6.096" x2="60.579" y2="6.096" width="0.4064" layer="1"/>
<wire x1="60.579" y1="6.096" x2="62.103" y2="7.62" width="0.4064" layer="1"/>
<wire x1="62.103" y1="7.62" x2="62.103" y2="17.78" width="0.4064" layer="1"/>
<wire x1="62.103" y1="17.78" x2="57.785" y2="22.098" width="0.4064" layer="1"/>
<wire x1="57.785" y1="22.098" x2="57.785" y2="32.512" width="0.4064" layer="1"/>
<wire x1="57.785" y1="32.512" x2="48.514" y2="41.783" width="0.4064" layer="1"/>
<wire x1="48.514" y1="41.783" x2="44.196" y2="41.783" width="0.4064" layer="1"/>
<wire x1="44.196" y1="41.783" x2="43.434" y2="41.021" width="0.4064" layer="1"/>
<wire x1="43.434" y1="41.021" x2="43.434" y2="39.4208" width="0.4064" layer="1"/>
<wire x1="2.286" y1="16.383" x2="1.905" y2="16.002" width="0.4064" layer="1"/>
<wire x1="1.905" y1="16.002" x2="1.905" y2="12.954" width="0.4064" layer="1"/>
</signal>
<signal name="ACCEL3V3">
<contactref element="U17" pad="P$7"/>
<contactref element="U15" pad="2"/>
<wire x1="37.084" y1="34.4932" x2="37.084" y2="32.512" width="0.4064" layer="1"/>
<via x="33.147" y="29.083" extent="1-16" drill="0.6" shape="square"/>
<wire x1="33.147" y1="29.083" x2="33.147" y2="22.098" width="0.4064" layer="16"/>
<wire x1="33.147" y1="22.098" x2="32.512" y2="21.463" width="0.4064" layer="16"/>
<via x="11.43" y="6.35" extent="1-16" drill="0.6" shape="square"/>
<wire x1="11.43" y1="6.35" x2="7.874" y2="6.35" width="0.254" layer="1"/>
<wire x1="7.874" y1="6.35" x2="6.985" y2="7.239" width="0.254" layer="1"/>
<wire x1="6.985" y1="7.239" x2="6.985" y2="8.187" width="0.254" layer="1"/>
<wire x1="32.512" y1="21.463" x2="28.956" y2="21.463" width="0.4064" layer="16"/>
<wire x1="28.956" y1="21.463" x2="24.257" y2="16.764" width="0.4064" layer="16"/>
<wire x1="24.257" y1="16.764" x2="19.304" y2="11.811" width="0.4064" layer="16"/>
<wire x1="19.304" y1="11.811" x2="16.891" y2="11.811" width="0.4064" layer="16"/>
<wire x1="16.891" y1="11.811" x2="11.43" y2="6.35" width="0.4064" layer="16"/>
<contactref element="U10" pad="1"/>
<wire x1="11.7094" y1="18.9484" x2="11.7348" y2="18.923" width="0.254" layer="1"/>
<wire x1="11.7348" y1="18.923" x2="12.573" y2="18.923" width="0.254" layer="1"/>
<wire x1="12.573" y1="18.923" x2="13.462" y2="18.034" width="0.254" layer="1"/>
<wire x1="13.462" y1="18.034" x2="13.462" y2="16.764" width="0.254" layer="1"/>
<via x="13.462" y="16.764" extent="1-16" drill="0.6" shape="square"/>
<wire x1="13.462" y1="16.764" x2="24.257" y2="16.764" width="0.4064" layer="16"/>
<wire x1="37.084" y1="32.512" x2="33.655" y2="29.083" width="0.4064" layer="1"/>
<wire x1="33.655" y1="29.083" x2="33.147" y2="29.083" width="0.4064" layer="1"/>
</signal>
<signal name="ACCEL5V">
<contactref element="U15" pad="3"/>
<contactref element="U12" pad="A8"/>
<wire x1="38.354" y1="34.4932" x2="38.354" y2="32.258" width="0.4064" layer="1"/>
<wire x1="38.354" y1="32.258" x2="31.496" y2="25.4" width="0.4064" layer="1"/>
<wire x1="31.496" y1="25.4" x2="31.496" y2="23.749" width="0.4064" layer="1"/>
</signal>
<signal name="SDCARD5V">
<contactref element="U15" pad="5"/>
<contactref element="U12" pad="A5"/>
<wire x1="41.656" y1="23.749" x2="41.656" y2="25.019" width="0.4064" layer="1"/>
<wire x1="41.656" y1="25.019" x2="40.894" y2="25.781" width="0.4064" layer="1"/>
<wire x1="40.894" y1="25.781" x2="40.894" y2="34.4932" width="0.4064" layer="1"/>
</signal>
<signal name="MISO3V3">
<contactref element="U16" pad="7"/>
<contactref element="U20" pad="19"/>
<contactref element="U14" pad="2"/>
<contactref element="U17" pad="P$12"/>
<contactref element="MISO3V3" pad="1"/>
<wire x1="8.085" y1="11.487" x2="11.881" y2="11.487" width="0.4064" layer="1"/>
<wire x1="11.881" y1="11.487" x2="12.065" y2="11.303" width="0.4064" layer="1"/>
<wire x1="12.065" y1="11.303" x2="16.002" y2="11.303" width="0.4064" layer="1"/>
<wire x1="16.002" y1="11.303" x2="17.399" y2="9.906" width="0.4064" layer="1"/>
<wire x1="17.399" y1="9.906" x2="17.399" y2="8.658" width="0.4064" layer="1"/>
<wire x1="17.399" y1="8.658" x2="17.453" y2="8.604" width="0.4064" layer="1"/>
<wire x1="17.453" y1="8.604" x2="17.453" y2="5.153" width="0.4064" layer="1"/>
<wire x1="17.453" y1="5.153" x2="17.907" y2="4.699" width="0.4064" layer="1"/>
<via x="17.907" y="4.699" extent="1-16" drill="0.6" shape="square"/>
<wire x1="17.907" y1="4.699" x2="23.241" y2="4.699" width="0.4064" layer="16"/>
<wire x1="23.241" y1="4.699" x2="27.305" y2="8.763" width="0.4064" layer="16"/>
<wire x1="27.305" y1="8.763" x2="35.687" y2="8.763" width="0.4064" layer="16"/>
<wire x1="35.687" y1="8.763" x2="39.624" y2="4.826" width="0.4064" layer="16"/>
<wire x1="39.624" y1="4.826" x2="53.34" y2="4.826" width="0.4064" layer="16"/>
<via x="53.34" y="4.826" extent="1-16" drill="0.6" shape="square"/>
<wire x1="53.34" y1="4.826" x2="56.9735" y2="4.826" width="0.4064" layer="1"/>
<wire x1="53.34" y1="4.826" x2="53.34" y2="5.461" width="0.4064" layer="16"/>
<wire x1="53.34" y1="5.461" x2="54.229" y2="6.35" width="0.4064" layer="16"/>
<wire x1="54.229" y1="6.35" x2="54.229" y2="13.843" width="0.4064" layer="16"/>
<wire x1="54.229" y1="13.843" x2="53.721" y2="14.351" width="0.4064" layer="16"/>
<wire x1="53.721" y1="16.891" x2="53.721" y2="14.351" width="0.4064" layer="1"/>
<via x="53.721" y="14.351" extent="1-16" drill="0.6" shape="square"/>
</signal>
<signal name="RTC3V3">
<contactref element="U20" pad="1"/>
<contactref element="U15" pad="6"/>
<wire x1="56.261" y1="24.384" x2="54.864" y2="25.781" width="0.4064" layer="16"/>
<wire x1="54.864" y1="25.781" x2="45.847" y2="25.781" width="0.4064" layer="16"/>
<wire x1="45.847" y1="25.781" x2="43.434" y2="28.194" width="0.4064" layer="16"/>
<via x="43.434" y="28.194" extent="1-16" drill="0.6" shape="square"/>
<wire x1="43.434" y1="28.194" x2="42.164" y2="29.464" width="0.4064" layer="1"/>
<wire x1="42.164" y1="29.464" x2="42.164" y2="34.4932" width="0.4064" layer="1"/>
<wire x1="66.3435" y1="3.556" x2="64.516" y2="3.556" width="0.4064" layer="1"/>
<wire x1="64.516" y1="3.556" x2="64.008" y2="4.064" width="0.4064" layer="1"/>
<wire x1="64.008" y1="4.064" x2="64.008" y2="18.415" width="0.4064" layer="1"/>
<wire x1="64.008" y1="18.415" x2="61.468" y2="20.955" width="0.4064" layer="1"/>
<via x="61.468" y="20.955" extent="1-16" drill="0.6" shape="square"/>
<wire x1="56.261" y1="24.384" x2="56.261" y2="21.59" width="0.4064" layer="16"/>
<wire x1="56.261" y1="21.59" x2="56.896" y2="20.955" width="0.4064" layer="16"/>
<wire x1="56.896" y1="20.955" x2="61.468" y2="20.955" width="0.4064" layer="16"/>
</signal>
<signal name="+5V">
<contactref element="U14" pad="5"/>
<contactref element="C16" pad="1"/>
<contactref element="U8" pad="5"/>
<contactref element="C10" pad="1"/>
<wire x1="76.493" y1="81.026" x2="76.493" y2="83.0444" width="0.4064" layer="1"/>
<wire x1="76.493" y1="83.0444" x2="76.4794" y2="83.058" width="0.4064" layer="1"/>
<contactref element="U21" pad="2"/>
<contactref element="C19" pad="1"/>
<contactref element="U21" pad="1"/>
<contactref element="+5V" pad="1"/>
<contactref element="C20" pad="1"/>
<contactref element="U18" pad="1"/>
<wire x1="102.655" y1="14.478" x2="102.655" y2="15.748" width="0.4064" layer="1"/>
<wire x1="102.655" y1="15.748" x2="102.655" y2="16.834" width="0.4064" layer="1"/>
<wire x1="102.655" y1="16.834" x2="102.682" y2="16.861" width="0.4064" layer="1"/>
<wire x1="87.5655" y1="10.893" x2="87.5655" y2="9.193" width="0.4064" layer="1"/>
<wire x1="53.0606" y1="18.923" x2="51.816" y2="18.923" width="0.4064" layer="1"/>
<wire x1="51.816" y1="18.923" x2="50.38" y2="18.923" width="0.4064" layer="1"/>
<wire x1="50.38" y1="18.923" x2="50.292" y2="19.011" width="0.4064" layer="1"/>
<wire x1="66.548" y1="17.653" x2="54.229" y2="17.653" width="0.4064" layer="16"/>
<wire x1="54.229" y1="17.653" x2="51.562" y2="20.32" width="0.4064" layer="16"/>
<via x="51.562" y="20.32" extent="1-16" drill="0.6" shape="square"/>
<wire x1="51.562" y1="20.32" x2="51.562" y2="19.177" width="0.4064" layer="1"/>
<wire x1="51.562" y1="19.177" x2="51.816" y2="18.923" width="0.4064" layer="1"/>
<via x="76.708" y="78.105" extent="1-16" drill="0.6" shape="square"/>
<wire x1="76.708" y1="78.105" x2="76.493" y2="78.32" width="0.4064" layer="1"/>
<wire x1="76.493" y1="78.32" x2="76.493" y2="81.026" width="0.4064" layer="1"/>
<contactref element="U18" pad="3"/>
<wire x1="61.341" y1="73.533" x2="64.008" y2="76.2" width="0.4064" layer="16"/>
<wire x1="64.008" y1="76.2" x2="75.819" y2="76.2" width="0.4064" layer="16"/>
<wire x1="75.819" y1="76.2" x2="76.708" y2="77.089" width="0.4064" layer="16"/>
<wire x1="76.708" y1="77.089" x2="76.708" y2="78.105" width="0.4064" layer="16"/>
<wire x1="102.655" y1="15.748" x2="102.743" y2="15.748" width="0.4064" layer="1"/>
<wire x1="102.743" y1="15.748" x2="102.743" y2="17.907" width="0.4064" layer="1"/>
<wire x1="102.743" y1="17.907" x2="104.582" y2="17.907" width="0.4064" layer="1"/>
<contactref element="R24" pad="2"/>
<contactref element="Q3" pad="2"/>
<contactref element="R19" pad="2"/>
<contactref element="Q5" pad="2"/>
<wire x1="61.341" y1="73.533" x2="61.341" y2="80.518" width="0.4064" layer="16"/>
<wire x1="61.341" y1="80.518" x2="59.817" y2="82.042" width="0.4064" layer="16"/>
<via x="59.817" y="82.042" extent="1-16" drill="0.6" shape="square"/>
<wire x1="59.817" y1="82.042" x2="56.919" y2="82.042" width="0.4064" layer="1"/>
<wire x1="56.919" y1="82.042" x2="56.853" y2="81.976" width="0.4064" layer="1"/>
<wire x1="59.817" y1="79.209" x2="59.817" y2="82.042" width="0.4064" layer="1"/>
<wire x1="81.026" y1="29.249" x2="84.017" y2="29.249" width="0.4064" layer="1"/>
<wire x1="84.017" y1="29.249" x2="84.244" y2="29.022" width="0.4064" layer="1"/>
<wire x1="80.987" y1="29.21" x2="81.026" y2="29.249" width="0.4064" layer="1"/>
<contactref element="D1" pad="2"/>
<wire x1="66.548" y1="17.653" x2="70.612" y2="21.717" width="0.4064" layer="16"/>
<wire x1="70.612" y1="21.717" x2="81.153" y2="21.717" width="0.4064" layer="16"/>
<wire x1="104.582" y1="16.861" x2="104.582" y2="17.907" width="0.4064" layer="1"/>
<contactref element="R4" pad="2"/>
<contactref element="C25" pad="1"/>
<contactref element="U22" pad="6"/>
<wire x1="49.872" y1="79.629" x2="52.241" y2="81.998" width="0.4064" layer="1"/>
<wire x1="52.241" y1="81.998" x2="52.92" y2="82.677" width="0.4064" layer="1"/>
<wire x1="52.92" y1="82.677" x2="56.152" y2="82.677" width="0.4064" layer="1"/>
<wire x1="56.152" y1="82.677" x2="56.853" y2="81.976" width="0.4064" layer="1"/>
<wire x1="49.872" y1="79.629" x2="49.872" y2="77.343" width="0.4064" layer="1"/>
<wire x1="49.403" y1="84.836" x2="52.241" y2="81.998" width="0.4064" layer="1"/>
<wire x1="49.403" y1="84.836" x2="44.831" y2="84.836" width="0.4064" layer="1"/>
<wire x1="44.831" y1="84.836" x2="44.069" y2="85.725" width="0.4064" layer="1"/>
<wire x1="44.069" y1="85.725" x2="44.069" y2="87.757" width="0.4064" layer="1"/>
<contactref element="C26" pad="1"/>
<wire x1="44.069" y1="87.757" x2="43.18" y2="88.646" width="0.4064" layer="1"/>
<wire x1="43.18" y1="88.646" x2="42.04" y2="88.646" width="0.4064" layer="1"/>
<wire x1="38.481" y1="92.4052" x2="38.481" y2="90.805" width="0.4064" layer="1"/>
<wire x1="38.481" y1="90.805" x2="38.735" y2="90.551" width="0.4064" layer="1"/>
<wire x1="38.735" y1="90.551" x2="40.64" y2="90.551" width="0.4064" layer="1"/>
<wire x1="40.64" y1="90.551" x2="41.91" y2="89.281" width="0.4064" layer="1"/>
<wire x1="41.91" y1="89.281" x2="41.91" y2="88.776" width="0.4064" layer="1"/>
<wire x1="41.91" y1="88.776" x2="42.04" y2="88.646" width="0.4064" layer="1"/>
<wire x1="87.5655" y1="10.893" x2="87.506" y2="10.9525" width="0.4064" layer="1"/>
<wire x1="87.506" y1="10.9525" x2="87.506" y2="13.589" width="0.4064" layer="1"/>
<wire x1="87.506" y1="13.589" x2="87.249" y2="13.846" width="0.4064" layer="1"/>
<wire x1="87.506" y1="13.589" x2="88.141" y2="12.954" width="0.4064" layer="1"/>
<wire x1="88.141" y1="12.954" x2="98.933" y2="12.954" width="0.4064" layer="1"/>
<wire x1="98.933" y1="12.954" x2="99.7585" y2="13.7795" width="0.4064" layer="1"/>
<wire x1="99.7585" y1="13.7795" x2="99.7585" y2="14.5415" width="0.4064" layer="1"/>
<wire x1="99.7585" y1="14.5415" x2="99.822" y2="14.478" width="0.4064" layer="1"/>
<wire x1="99.822" y1="14.478" x2="102.655" y2="14.478" width="0.4064" layer="1"/>
<wire x1="81.026" y1="21.844" x2="81.153" y2="21.717" width="0.4064" layer="1"/>
<via x="81.153" y="21.717" extent="1-16" drill="0.6" shape="square"/>
<wire x1="87.249" y1="13.846" x2="87.249" y2="17.018" width="0.4064" layer="1"/>
<wire x1="87.249" y1="17.018" x2="82.55" y2="21.717" width="0.4064" layer="1"/>
<wire x1="82.55" y1="21.717" x2="81.153" y2="21.717" width="0.4064" layer="1"/>
<wire x1="81.026" y1="21.844" x2="81.026" y2="23.876" width="0.4064" layer="1"/>
<wire x1="81.026" y1="23.876" x2="81.026" y2="29.249" width="0.4064" layer="1"/>
<wire x1="70.231" y1="34.671" x2="71.12" y2="33.782" width="0.4064" layer="1"/>
<wire x1="71.12" y1="33.782" x2="81.026" y2="23.876" width="0.4064" layer="1"/>
<wire x1="67.056" y1="32.561" x2="69.166" y2="34.671" width="0.4064" layer="1"/>
<wire x1="69.166" y1="34.671" x2="70.231" y2="34.671" width="0.4064" layer="1"/>
<wire x1="61.341" y1="73.533" x2="61.341" y2="64.643" width="0.4064" layer="16"/>
<wire x1="61.341" y1="64.643" x2="69.088" y2="56.896" width="0.4064" layer="16"/>
<wire x1="69.088" y1="56.896" x2="69.088" y2="49.403" width="0.4064" layer="16"/>
<wire x1="69.088" y1="49.403" x2="69.215" y2="49.276" width="0.4064" layer="16"/>
<via x="69.215" y="49.276" extent="1-16" drill="0.6" shape="square"/>
<wire x1="69.215" y1="49.276" x2="69.215" y2="35.687" width="0.4064" layer="1"/>
<wire x1="69.215" y1="35.687" x2="70.231" y2="34.671" width="0.4064" layer="1"/>
</signal>
<signal name="N$2">
<contactref element="R24" pad="1"/>
<contactref element="R23" pad="2"/>
<contactref element="Q3" pad="1"/>
<wire x1="81.026" y1="30.949" x2="84.09" y2="30.949" width="0.4064" layer="1"/>
<wire x1="84.09" y1="30.949" x2="84.244" y2="30.922" width="0.4064" layer="1"/>
<wire x1="80.938" y1="30.861" x2="81.026" y2="30.949" width="0.4064" layer="1"/>
<wire x1="80.987" y1="34.036" x2="80.987" y2="30.988" width="0.4064" layer="1"/>
<wire x1="80.987" y1="30.988" x2="81.026" y2="30.949" width="0.4064" layer="1"/>
</signal>
<signal name="SDA5V">
<contactref element="U12" pad="20"/>
<contactref element="R9" pad="1"/>
<contactref element="Q2" pad="3"/>
<contactref element="SDA5V" pad="1"/>
<wire x1="21.336" y1="72.009" x2="21.336" y2="73.025" width="0.4064" layer="1"/>
<wire x1="21.336" y1="73.025" x2="22.352" y2="74.041" width="0.4064" layer="1"/>
<wire x1="22.352" y1="74.041" x2="27.94" y2="74.041" width="0.4064" layer="1"/>
<wire x1="27.94" y1="74.041" x2="28.829" y2="74.93" width="0.4064" layer="1"/>
<wire x1="28.829" y1="74.93" x2="28.829" y2="76.161" width="0.4064" layer="1"/>
<wire x1="28.829" y1="76.161" x2="28.79" y2="76.2" width="0.4064" layer="1"/>
<wire x1="28.79" y1="76.2" x2="28.79" y2="78.617" width="0.4064" layer="1"/>
<wire x1="28.79" y1="78.617" x2="28.829" y2="78.656" width="0.4064" layer="1"/>
<wire x1="28.79" y1="76.2" x2="31.75" y2="76.2" width="0.4064" layer="1"/>
<wire x1="31.75" y1="76.2" x2="31.877" y2="76.327" width="0.4064" layer="1"/>
</signal>
<signal name="N$10">
<contactref element="U9" pad="P$11"/>
<contactref element="JP5" pad="1"/>
<wire x1="95.911" y1="85.471" x2="95.892" y2="85.452" width="0.4064" layer="1"/>
<wire x1="95.911" y1="85.471" x2="97.663" y2="85.471" width="0.4064" layer="1"/>
<wire x1="97.663" y1="85.471" x2="98.044" y2="85.852" width="0.4064" layer="1"/>
<wire x1="98.044" y1="85.852" x2="102.108" y2="85.852" width="0.4064" layer="1"/>
</signal>
<signal name="N$14">
<contactref element="U9" pad="P$4"/>
<contactref element="B1" pad="+$1"/>
<contactref element="B1" pad="+$2"/>
<wire x1="60.126" y1="93.599" x2="60.126" y2="95.813" width="0.4064" layer="1"/>
<wire x1="76.327" y1="94.869" x2="76.327" y2="93.146" width="0.4064" layer="1"/>
<wire x1="76.327" y1="93.146" x2="76.526" y2="93.599" width="0.4064" layer="1"/>
<wire x1="76.526" y1="93.599" x2="77.379" y2="94.452" width="0.4064" layer="1"/>
<wire x1="77.379" y1="94.452" x2="80.892" y2="94.452" width="0.4064" layer="1"/>
<wire x1="60.126" y1="95.813" x2="61.595" y2="97.282" width="0.4064" layer="1"/>
<wire x1="61.595" y1="97.282" x2="75.057" y2="97.282" width="0.4064" layer="1"/>
<wire x1="75.057" y1="97.282" x2="76.581" y2="95.758" width="0.4064" layer="1"/>
<wire x1="76.581" y1="95.758" x2="76.581" y2="93.654" width="0.4064" layer="1"/>
<wire x1="76.581" y1="93.654" x2="76.526" y2="93.599" width="0.4064" layer="1"/>
</signal>
<signal name="N$15">
<contactref element="R21" pad="2"/>
<contactref element="R22" pad="1"/>
<contactref element="Q6" pad="1"/>
<wire x1="66.04" y1="77.812" x2="66.04" y2="80.049" width="0.4064" layer="1"/>
<wire x1="66.04" y1="80.049" x2="68.515" y2="80.049" width="0.4064" layer="1"/>
<wire x1="68.515" y1="80.049" x2="68.519" y2="80.053" width="0.4064" layer="1"/>
</signal>
<signal name="GPSTX3V3">
<contactref element="U9" pad="P$9"/>
<contactref element="U8" pad="2"/>
<wire x1="75.819" y1="85.09" x2="75.819" y2="86.233" width="0.254" layer="1"/>
<wire x1="75.819" y1="86.233" x2="76.581" y2="86.995" width="0.254" layer="1"/>
<wire x1="76.581" y1="86.995" x2="80.849" y2="86.995" width="0.254" layer="1"/>
<wire x1="80.849" y1="86.995" x2="80.892" y2="86.952" width="0.254" layer="1"/>
<contactref element="GPSTX3V3" pad="1"/>
<wire x1="80.892" y1="86.952" x2="83.228" y2="86.952" width="0.4064" layer="1"/>
<wire x1="83.228" y1="86.952" x2="86.868" y2="83.312" width="0.4064" layer="1"/>
<wire x1="94.361" y1="78.867" x2="94.869" y2="78.867" width="0.4064" layer="1"/>
<wire x1="94.869" y1="78.867" x2="96.012" y2="77.724" width="0.4064" layer="1"/>
<wire x1="94.361" y1="78.867" x2="89.916" y2="83.312" width="0.4064" layer="1"/>
<wire x1="89.916" y1="83.312" x2="86.868" y2="83.312" width="0.4064" layer="1"/>
</signal>
<signal name="GPSON">
<contactref element="R21" pad="1"/>
<contactref element="U12" pad="9"/>
<wire x1="66.04" y1="72.009" x2="66.04" y2="76.112" width="0.4064" layer="1"/>
</signal>
<signal name="GPSTX5V">
<contactref element="U8" pad="4"/>
<wire x1="75.1586" y1="83.058" x2="75.1586" y2="77.2414" width="0.4064" layer="1"/>
<contactref element="GPSTX5V" pad="1"/>
<wire x1="88.646" y1="70.231" x2="91.44" y2="73.025" width="0.4064" layer="1"/>
<wire x1="91.44" y1="73.025" x2="103.378" y2="73.025" width="0.4064" layer="1"/>
<wire x1="103.378" y1="73.025" x2="105.791" y2="75.438" width="0.4064" layer="1"/>
<wire x1="105.791" y1="75.438" x2="105.791" y2="77.597" width="0.4064" layer="1"/>
<contactref element="U12" pad="11"/>
<wire x1="88.646" y1="70.231" x2="71.755" y2="70.231" width="0.4064" layer="1"/>
<wire x1="71.755" y1="70.231" x2="71.12" y2="70.866" width="0.4064" layer="1"/>
<wire x1="71.12" y1="70.866" x2="71.12" y2="72.009" width="0.4064" layer="1"/>
<wire x1="71.12" y1="72.009" x2="71.12" y2="73.2028" width="0.4064" layer="1"/>
<wire x1="71.12" y1="73.2028" x2="75.1586" y2="77.2414" width="0.4064" layer="1"/>
</signal>
<signal name="GPSRX3V3">
<contactref element="U11" pad="4"/>
<contactref element="U9" pad="P$10"/>
<contactref element="GPSRX3V3" pad="1"/>
<wire x1="86.1314" y1="78.613" x2="89.789" y2="78.613" width="0.4064" layer="1"/>
<wire x1="89.789" y1="78.613" x2="90.678" y2="77.724" width="0.4064" layer="1"/>
<contactref element="R8" pad="1"/>
<wire x1="86.321" y1="81.153" x2="86.321" y2="78.8026" width="0.4064" layer="1"/>
<wire x1="86.321" y1="78.8026" x2="86.1314" y2="78.613" width="0.4064" layer="1"/>
<wire x1="86.321" y1="81.153" x2="86.321" y2="81.7" width="0.4064" layer="1"/>
<wire x1="86.321" y1="81.7" x2="82.677" y2="85.344" width="0.4064" layer="1"/>
<wire x1="82.677" y1="85.344" x2="81" y2="85.344" width="0.4064" layer="1"/>
<wire x1="81" y1="85.344" x2="80.892" y2="85.452" width="0.4064" layer="1"/>
</signal>
<signal name="GPSRX5V">
<contactref element="U11" pad="2"/>
<contactref element="GPSRX5V" pad="1"/>
<wire x1="100.965" y1="77.724" x2="100.965" y2="76.454" width="0.4064" layer="1"/>
<wire x1="100.965" y1="76.454" x2="99.441" y2="74.93" width="0.4064" layer="1"/>
<wire x1="85.598" y1="74.93" x2="99.441" y2="74.93" width="0.4064" layer="1"/>
<wire x1="85.471" y1="76.581" x2="85.471" y2="75.057" width="0.254" layer="1"/>
<wire x1="85.471" y1="75.057" x2="85.598" y2="74.93" width="0.254" layer="1"/>
<contactref element="U12" pad="12"/>
<wire x1="73.66" y1="72.009" x2="73.66" y2="72.644" width="0.4064" layer="1"/>
<wire x1="73.66" y1="72.644" x2="76.073" y2="75.057" width="0.4064" layer="1"/>
<wire x1="76.073" y1="75.057" x2="85.471" y2="75.057" width="0.4064" layer="1"/>
</signal>
<signal name="N$4">
<contactref element="U13" pad="12"/>
<contactref element="R25" pad="2"/>
<wire x1="86.829" y1="23.622" x2="86.829" y2="22.137" width="0.4064" layer="1"/>
<wire x1="86.829" y1="22.137" x2="89.027" y2="19.939" width="0.4064" layer="1"/>
<wire x1="89.027" y1="19.939" x2="91.176" y2="19.939" width="0.4064" layer="1"/>
<wire x1="91.176" y1="19.939" x2="91.291" y2="19.824" width="0.4064" layer="1"/>
</signal>
<signal name="SCL5V">
<contactref element="R11" pad="1"/>
<contactref element="Q1" pad="3"/>
<contactref element="SCL5V" pad="1"/>
<contactref element="U12" pad="21"/>
<wire x1="18.796" y1="72.009" x2="18.796" y2="75.946" width="0.4064" layer="1"/>
<wire x1="18.796" y1="75.946" x2="19.177" y2="76.327" width="0.4064" layer="1"/>
<wire x1="19.177" y1="76.327" x2="22.01" y2="76.327" width="0.4064" layer="1"/>
<wire x1="22.01" y1="76.327" x2="22.137" y2="76.2" width="0.4064" layer="1"/>
<wire x1="22.137" y1="76.2" x2="22.137" y2="78.441" width="0.4064" layer="1"/>
<wire x1="22.137" y1="78.441" x2="22.225" y2="78.529" width="0.4064" layer="1"/>
</signal>
<signal name="SDA3V3">
<contactref element="U6" pad="4"/>
<contactref element="R5" pad="1"/>
<contactref element="Q2" pad="2"/>
<contactref element="SDA3V3" pad="1"/>
<contactref element="U2" pad="4"/>
<wire x1="5.3086" y1="98.0948" x2="4.9022" y2="98.0948" width="0.4064" layer="1"/>
<wire x1="27.879" y1="80.856" x2="27.94" y2="80.917" width="0.4064" layer="1"/>
<wire x1="27.94" y1="80.917" x2="27.94" y2="83.947" width="0.4064" layer="1"/>
<wire x1="29.591" y1="86.741" x2="29.591" y2="85.598" width="0.4064" layer="1"/>
<wire x1="29.591" y1="85.598" x2="27.94" y2="83.947" width="0.4064" layer="1"/>
<wire x1="5.3086" y1="98.0948" x2="5.3086" y2="98.6536" width="0.4064" layer="1"/>
<wire x1="5.3086" y1="98.6536" x2="6.858" y2="100.203" width="0.4064" layer="1"/>
<wire x1="6.858" y1="100.203" x2="29.464" y2="100.203" width="0.4064" layer="1"/>
<wire x1="35.2552" y1="87.3506" x2="30.48" y2="87.3506" width="0.4064" layer="1"/>
<wire x1="30.48" y1="87.3506" x2="30.2006" y2="87.3506" width="0.4064" layer="1"/>
<wire x1="30.2006" y1="87.3506" x2="29.591" y2="86.741" width="0.4064" layer="1"/>
<wire x1="30.265" y1="83.693" x2="28.194" y2="83.693" width="0.4064" layer="1"/>
<wire x1="28.194" y1="83.693" x2="27.94" y2="83.947" width="0.4064" layer="1"/>
<contactref element="JP2" pad="P$4"/>
<contactref element="JP3" pad="P$4"/>
<wire x1="30.535" y1="90.678" x2="30.535" y2="96.901" width="0.4064" layer="16"/>
<wire x1="29.464" y1="100.203" x2="30.48" y2="99.187" width="0.4064" layer="1"/>
<wire x1="30.48" y1="99.187" x2="30.48" y2="96.956" width="0.4064" layer="1"/>
<wire x1="30.48" y1="96.956" x2="30.535" y2="96.901" width="0.4064" layer="1"/>
<wire x1="30.535" y1="90.678" x2="30.535" y2="87.4056" width="0.4064" layer="1"/>
<wire x1="30.535" y1="87.4056" x2="30.48" y2="87.3506" width="0.4064" layer="1"/>
</signal>
<signal name="SCL3V3">
<contactref element="U6" pad="3"/>
<contactref element="R7" pad="1"/>
<contactref element="Q1" pad="2"/>
<contactref element="SCL3V3" pad="1"/>
<contactref element="U2" pad="3"/>
<wire x1="27.535" y1="86.971" x2="24.257" y2="83.693" width="0.4064" layer="16"/>
<wire x1="24.257" y1="83.693" x2="18.542" y2="83.693" width="0.4064" layer="16"/>
<wire x1="21.502" y1="83.693" x2="18.542" y2="83.693" width="0.4064" layer="1"/>
<wire x1="21.275" y1="80.729" x2="21.275" y2="83.466" width="0.4064" layer="1"/>
<wire x1="21.275" y1="83.466" x2="21.502" y2="83.693" width="0.4064" layer="1"/>
<wire x1="7.8994" y1="98.0948" x2="9.8298" y2="98.0948" width="0.4064" layer="1"/>
<wire x1="9.8298" y1="98.0948" x2="10.795" y2="99.06" width="0.4064" layer="1"/>
<wire x1="10.795" y1="99.06" x2="15.748" y2="99.06" width="0.4064" layer="1"/>
<wire x1="15.748" y1="99.06" x2="20.701" y2="94.107" width="0.4064" layer="1"/>
<wire x1="35.2552" y1="89.9414" x2="34.0106" y2="89.9414" width="0.4064" layer="1"/>
<contactref element="JP2" pad="P$3"/>
<contactref element="JP3" pad="P$3"/>
<wire x1="27.535" y1="86.971" x2="27.535" y2="90.678" width="0.4064" layer="16"/>
<wire x1="27.535" y1="90.678" x2="27.535" y2="96.901" width="0.4064" layer="16"/>
<wire x1="20.701" y1="94.107" x2="26.773" y2="94.107" width="0.4064" layer="1"/>
<wire x1="26.773" y1="94.107" x2="27.535" y2="93.345" width="0.4064" layer="1"/>
<wire x1="27.535" y1="93.345" x2="27.535" y2="92.456" width="0.4064" layer="1"/>
<wire x1="27.535" y1="92.456" x2="27.535" y2="90.678" width="0.4064" layer="1"/>
<wire x1="34.0106" y1="89.9414" x2="31.242" y2="92.71" width="0.4064" layer="1"/>
<wire x1="31.242" y1="92.71" x2="27.789" y2="92.71" width="0.4064" layer="1"/>
<wire x1="27.789" y1="92.71" x2="27.535" y2="92.456" width="0.4064" layer="1"/>
</signal>
<signal name="N$5">
<contactref element="U4" pad="1"/>
<contactref element="C7" pad="1"/>
<wire x1="36.449" y1="78.525" x2="38.8992" y2="78.525" width="0.4064" layer="1"/>
<wire x1="38.8992" y1="78.525" x2="38.989" y2="78.4352" width="0.4064" layer="1"/>
</signal>
<signal name="N$11">
<contactref element="U4" pad="7"/>
<contactref element="C8" pad="1"/>
<contactref element="U6" pad="5"/>
<contactref element="U4" pad="6"/>
<contactref element="+3VT*" pad="1"/>
<wire x1="41.529" y1="83.3628" x2="40.259" y2="83.3628" width="0.4064" layer="1"/>
<wire x1="40.259" y1="83.3628" x2="40.259" y2="84.709" width="0.4064" layer="1"/>
<wire x1="40.259" y1="84.709" x2="39.878" y2="85.09" width="0.4064" layer="1"/>
<wire x1="39.878" y1="85.09" x2="39.878" y2="85.891" width="0.4064" layer="1"/>
<wire x1="39.878" y1="85.891" x2="39.79" y2="85.979" width="0.4064" layer="1"/>
<wire x1="39.79" y1="85.979" x2="37.211" y2="85.979" width="0.4064" layer="1"/>
<wire x1="37.211" y1="85.979" x2="36.449" y2="85.979" width="0.4064" layer="1"/>
<wire x1="36.449" y1="85.979" x2="36.195" y2="86.233" width="0.4064" layer="1"/>
<wire x1="36.195" y1="86.233" x2="36.195" y2="87.3506" width="0.4064" layer="1"/>
<wire x1="36.449" y1="83.693" x2="36.449" y2="85.217" width="0.4064" layer="1"/>
<wire x1="36.449" y1="85.217" x2="37.211" y2="85.979" width="0.4064" layer="1"/>
</signal>
<signal name="N$25">
<contactref element="U2" pad="1"/>
<contactref element="U3" pad="1"/>
<contactref element="R3" pad="2"/>
<contactref element="C5" pad="2"/>
<wire x1="8.7122" y1="76.6826" x2="7.366" y2="76.6826" width="0.4064" layer="1"/>
<wire x1="7.366" y1="76.6826" x2="6.2874" y2="76.6826" width="0.4064" layer="1"/>
<wire x1="6.2874" y1="76.6826" x2="5.842" y2="77.128" width="0.4064" layer="1"/>
<wire x1="5.842" y1="77.128" x2="3.683" y2="77.128" width="0.4064" layer="1"/>
<wire x1="7.493" y1="84.709" x2="7.493" y2="76.8096" width="0.4064" layer="1"/>
<wire x1="7.493" y1="76.8096" x2="7.366" y2="76.6826" width="0.4064" layer="1"/>
<contactref element="VPAR" pad="1"/>
<wire x1="7.8994" y1="96.2152" x2="7.8994" y2="92.202" width="0.4064" layer="1"/>
<wire x1="7.8994" y1="92.202" x2="7.874" y2="92.202" width="0.4064" layer="1"/>
<wire x1="7.493" y1="84.709" x2="8.001" y2="85.217" width="0.4064" layer="1"/>
<via x="8.001" y="85.217" extent="1-16" drill="0.6" shape="square"/>
<wire x1="8.001" y1="85.217" x2="8.001" y2="92.075" width="0.4064" layer="16"/>
<wire x1="8.001" y1="92.075" x2="7.874" y2="92.202" width="0.4064" layer="16"/>
</signal>
<signal name="N$23">
<contactref element="U2" pad="5"/>
<contactref element="U3" pad="5"/>
<contactref element="U1" pad="7"/>
<contactref element="C2" pad="1"/>
<contactref element="U1" pad="6"/>
<contactref element="R1" pad="2"/>
<wire x1="12.827" y1="90.5002" x2="12.827" y2="87.288" width="0.4064" layer="1"/>
<wire x1="12.827" y1="87.288" x2="12.866" y2="87.249" width="0.4064" layer="1"/>
<wire x1="12.866" y1="87.249" x2="12.866" y2="84.709" width="0.4064" layer="1"/>
<wire x1="8.7122" y1="79.2734" x2="8.7122" y2="82.4992" width="0.4064" layer="1"/>
<wire x1="8.7122" y1="82.4992" x2="10.795" y2="84.582" width="0.4064" layer="1"/>
<wire x1="10.795" y1="84.582" x2="12.739" y2="84.582" width="0.4064" layer="1"/>
<wire x1="12.739" y1="84.582" x2="12.827" y2="84.67" width="0.4064" layer="1"/>
<wire x1="11.557" y1="90.5002" x2="12.827" y2="90.5002" width="0.4064" layer="1"/>
<contactref element="+3VP*" pad="1"/>
<wire x1="12.866" y1="84.709" x2="12.827" y2="84.67" width="0.4064" layer="1"/>
<contactref element="C3" pad="2"/>
<wire x1="5.3086" y1="97.155" x2="4.064" y2="97.155" width="0.4064" layer="1"/>
<wire x1="4.064" y1="97.155" x2="3.429" y2="96.52" width="0.4064" layer="1"/>
<wire x1="3.429" y1="96.52" x2="3.429" y2="94.449" width="0.4064" layer="1"/>
<wire x1="3.429" y1="94.449" x2="3.341" y2="94.361" width="0.4064" layer="1"/>
<wire x1="12.612" y1="87.503" x2="12.866" y2="87.249" width="0.4064" layer="1"/>
<wire x1="12.612" y1="87.503" x2="12.485" y2="87.376" width="0.4064" layer="1"/>
<wire x1="12.485" y1="87.376" x2="10.16" y2="87.376" width="0.4064" layer="1"/>
<wire x1="3.429" y1="94.449" x2="3.429" y2="92.71" width="0.4064" layer="1"/>
<wire x1="3.429" y1="92.71" x2="4.445" y2="91.694" width="0.4064" layer="1"/>
<wire x1="4.445" y1="91.694" x2="4.445" y2="91.567" width="0.4064" layer="1"/>
<wire x1="4.445" y1="91.567" x2="6.223" y2="89.789" width="0.4064" layer="1"/>
<wire x1="6.223" y1="89.789" x2="6.223" y2="88.011" width="0.4064" layer="1"/>
<wire x1="6.223" y1="88.011" x2="6.858" y2="87.376" width="0.4064" layer="1"/>
<wire x1="6.858" y1="87.376" x2="10.16" y2="87.376" width="0.4064" layer="1"/>
</signal>
<signal name="N$24">
<contactref element="U1" pad="1"/>
<contactref element="C1" pad="1"/>
<wire x1="16.256" y1="95.465" x2="14.1342" y2="95.465" width="0.4064" layer="1"/>
<wire x1="14.1342" y1="95.465" x2="14.097" y2="95.4278" width="0.4064" layer="1"/>
</signal>
<signal name="N$28">
<contactref element="R1" pad="1"/>
<contactref element="R2" pad="2"/>
<contactref element="U3" pad="3"/>
<contactref element="C4" pad="1"/>
<wire x1="12.827" y1="82.97" x2="12.827" y2="80.049" width="0.4064" layer="1"/>
<wire x1="12.827" y1="80.049" x2="12.866" y2="80.01" width="0.4064" layer="1"/>
<wire x1="12.866" y1="80.01" x2="12.866" y2="76.327" width="0.4064" layer="1"/>
<wire x1="12.866" y1="76.327" x2="10.9474" y2="76.327" width="0.4064" layer="1"/>
<wire x1="10.9474" y1="76.327" x2="10.5918" y2="76.6826" width="0.4064" layer="1"/>
</signal>
<signal name="N$30">
<contactref element="R3" pad="1"/>
<contactref element="U3" pad="4"/>
<contactref element="C5" pad="1"/>
<wire x1="10.5918" y1="79.2734" x2="10.5918" y2="81.2292" width="0.4064" layer="1"/>
<wire x1="10.5918" y1="81.2292" x2="10.541" y2="81.28" width="0.4064" layer="1"/>
<via x="10.541" y="81.28" extent="1-16" drill="0.6" shape="square"/>
<wire x1="10.541" y1="81.28" x2="5.842" y2="81.28" width="0.4064" layer="16"/>
<wire x1="3.683" y1="78.828" x2="5.842" y2="78.828" width="0.4064" layer="1"/>
<wire x1="5.842" y1="78.828" x2="5.842" y2="82.296" width="0.4064" layer="1"/>
<wire x1="5.842" y1="81.28" x2="5.842" y2="82.296" width="0.4064" layer="16"/>
<wire x1="5.842" y1="82.296" x2="4.699" y2="83.439" width="0.4064" layer="16"/>
<contactref element="JP1" pad="P$1"/>
<wire x1="5.842" y1="82.296" x2="3.683" y2="84.455" width="0.4064" layer="1"/>
<wire x1="3.683" y1="84.455" x2="3.683" y2="85.749" width="0.4064" layer="1"/>
<wire x1="4.699" y1="83.439" x2="3.683" y2="84.455" width="0.4064" layer="16"/>
<wire x1="3.683" y1="84.455" x2="3.683" y2="85.749" width="0.4064" layer="16"/>
</signal>
<signal name="N$7">
<contactref element="U7" pad="2"/>
<contactref element="U7" pad="4"/>
<wire x1="44.077" y1="91.9939" x2="44.077" y2="93.099" width="0.254" layer="1"/>
<wire x1="44.077" y1="93.099" x2="44.323" y2="93.345" width="0.254" layer="1"/>
<wire x1="44.323" y1="93.345" x2="44.831" y2="93.345" width="0.254" layer="1"/>
<wire x1="44.831" y1="93.345" x2="45.085" y2="93.091" width="0.254" layer="1"/>
<wire x1="45.085" y1="93.091" x2="45.085" y2="92.0019" width="0.254" layer="1"/>
<wire x1="45.085" y1="92.0019" x2="45.077" y2="91.9939" width="0.254" layer="1"/>
<wire x1="45.085" y1="92.0019" x2="45.085" y2="90.932" width="0.254" layer="1"/>
<wire x1="45.085" y1="90.932" x2="45.339" y2="90.678" width="0.254" layer="1"/>
<contactref element="JP4" pad="P$1"/>
<wire x1="45.339" y1="90.678" x2="48.641" y2="90.678" width="0.254" layer="1"/>
<wire x1="48.641" y1="90.678" x2="51.181" y2="93.218" width="0.254" layer="1"/>
<wire x1="51.181" y1="93.218" x2="52.935" y2="93.218" width="0.254" layer="1"/>
<wire x1="52.935" y1="93.218" x2="52.959" y2="93.242" width="0.254" layer="1"/>
</signal>
<signal name="TEMP5V">
<contactref element="U12" pad="3"/>
<contactref element="U5" pad="2"/>
<wire x1="49.276" y1="72.009" x2="49.276" y2="73.152" width="0.4064" layer="16"/>
<wire x1="49.276" y1="73.152" x2="49.911" y2="73.787" width="0.4064" layer="16"/>
<wire x1="49.911" y1="73.787" x2="53.975" y2="73.787" width="0.4064" layer="16"/>
<wire x1="53.975" y1="73.787" x2="56.896" y2="76.708" width="0.4064" layer="16"/>
<wire x1="56.896" y1="76.708" x2="56.896" y2="83.185" width="0.4064" layer="16"/>
<wire x1="56.896" y1="83.185" x2="59.309" y2="85.598" width="0.4064" layer="16"/>
<via x="59.309" y="85.598" extent="1-16" drill="0.6" shape="square"/>
<wire x1="59.309" y1="85.598" x2="59.182" y2="85.725" width="0.4064" layer="1"/>
<wire x1="59.182" y1="85.725" x2="56.515" y2="85.725" width="0.4064" layer="1"/>
</signal>
<signal name="TEMP3V3">
<contactref element="U5" pad="4"/>
<contactref element="U7" pad="5"/>
<contactref element="U7" pad="1"/>
<wire x1="43.577" y1="91.9939" x2="43.577" y2="93.615" width="0.254" layer="1"/>
<wire x1="43.577" y1="93.615" x2="43.942" y2="93.98" width="0.254" layer="1"/>
<wire x1="43.942" y1="93.98" x2="45.085" y2="93.98" width="0.254" layer="1"/>
<wire x1="45.085" y1="93.98" x2="45.593" y2="93.472" width="0.254" layer="1"/>
<wire x1="45.593" y1="93.472" x2="45.593" y2="92.0099" width="0.254" layer="1"/>
<wire x1="45.593" y1="92.0099" x2="45.577" y2="91.9939" width="0.254" layer="1"/>
<wire x1="54.483" y1="86.3854" x2="54.483" y2="88.011" width="0.254" layer="1"/>
<contactref element="R10" pad="1"/>
<wire x1="54.483" y1="88.011" x2="57.951" y2="88.011" width="0.254" layer="1"/>
<wire x1="45.593" y1="93.472" x2="49.403" y2="93.472" width="0.254" layer="1"/>
<wire x1="49.403" y1="93.472" x2="50.673" y2="94.742" width="0.254" layer="1"/>
<wire x1="50.673" y1="94.742" x2="54.356" y2="94.742" width="0.254" layer="1"/>
<wire x1="54.356" y1="94.742" x2="54.864" y2="94.234" width="0.254" layer="1"/>
<wire x1="54.864" y1="94.234" x2="54.864" y2="89.154" width="0.254" layer="1"/>
<wire x1="54.864" y1="89.154" x2="54.483" y2="88.773" width="0.254" layer="1"/>
<wire x1="54.483" y1="88.773" x2="54.483" y2="88.011" width="0.254" layer="1"/>
</signal>
<signal name="N$19">
<contactref element="U9" pad="P$1"/>
<contactref element="C11" pad="1"/>
<wire x1="78.613" y1="90.932" x2="78.613" y2="96.52" width="0.4064" layer="16"/>
<wire x1="78.613" y1="96.52" x2="78.359" y2="96.774" width="0.4064" layer="16"/>
<via x="78.359" y="96.774" extent="1-16" drill="0.6" shape="square"/>
<wire x1="78.359" y1="96.774" x2="78.359" y2="98.64" width="0.4064" layer="1"/>
<wire x1="78.359" y1="98.64" x2="78.066" y2="98.933" width="0.4064" layer="1"/>
<wire x1="80.892" y1="98.952" x2="78.085" y2="98.952" width="0.4064" layer="1"/>
<wire x1="78.085" y1="98.952" x2="78.066" y2="98.933" width="0.4064" layer="1"/>
<contactref element="Q6" pad="3"/>
<wire x1="69.469" y1="82.253" x2="70.569" y2="82.253" width="0.4064" layer="1"/>
<wire x1="70.569" y1="82.253" x2="72.517" y2="84.201" width="0.4064" layer="1"/>
<wire x1="72.517" y1="84.201" x2="72.517" y2="84.836" width="0.4064" layer="1"/>
<wire x1="72.517" y1="84.836" x2="77.343" y2="89.662" width="0.4064" layer="1"/>
<via x="77.343" y="89.662" extent="1-16" drill="0.6" shape="square"/>
<wire x1="77.343" y1="89.662" x2="78.613" y2="90.932" width="0.4064" layer="16"/>
</signal>
<signal name="+5V_SP">
<contactref element="U1" pad="2"/>
<contactref element="U4" pad="2"/>
<contactref element="R11" pad="2"/>
<contactref element="R9" pad="2"/>
<wire x1="54.102" y1="77.851" x2="51.308" y2="75.057" width="0.4064" layer="16"/>
<contactref element="Q5" pad="3"/>
<wire x1="23.837" y1="76.2" x2="27.09" y2="76.2" width="0.4064" layer="1"/>
<wire x1="27.09" y1="76.2" x2="25.527" y2="76.2" width="0.4064" layer="1"/>
<wire x1="25.527" y1="76.2" x2="25.527" y2="78.1

license: MIT

url: https://raw.githubusercontent.com/NOAA-PMEL/EcoFOCI_PopUp/481e468106a3b6b43f64fabe7e53738e71a027bc/archive/Gen 2 2016-2017/Electrical/Eagle PCB Files/Pop-Up 4.0.brd

license_type: permissive

branch_name: refs/heads/master

gha_license_id: MIT

gha_language: C

extension: brd

filename: Pop-Up 4.0.brd


text:
05" width="0.4064" layer="1"/>
<via x="25.527" y="78.105" extent="1-16" drill="0.6" shape="square"/>
<wire x1="25.527" y1="78.105" x2="25.527" y2="76.454" width="0.4064" layer="16"/>
<wire x1="25.527" y1="76.454" x2="27.94" y2="74.041" width="0.4064" layer="16"/>
<wire x1="27.94" y1="74.041" x2="40.64" y2="74.041" width="0.4064" layer="16"/>
<wire x1="42.164" y1="74.041" x2="45.72" y2="74.041" width="0.4064" layer="16"/>
<wire x1="12.827" y1="95.4278" x2="12.827" y2="97.536" width="0.4064" layer="1"/>
<via x="12.827" y="97.536" extent="1-16" drill="0.6" shape="square"/>
<wire x1="12.827" y1="97.536" x2="12.827" y2="84.201" width="0.4064" layer="16"/>
<wire x1="12.827" y1="84.201" x2="18.161" y2="78.867" width="0.4064" layer="16"/>
<wire x1="18.161" y1="78.867" x2="24.765" y2="78.867" width="0.4064" layer="16"/>
<wire x1="24.765" y1="78.867" x2="25.527" y2="78.105" width="0.4064" layer="16"/>
<wire x1="40.259" y1="78.4352" x2="40.259" y2="74.422" width="0.4064" layer="1"/>
<wire x1="54.102" y1="77.851" x2="54.102" y2="78.359" width="0.4064" layer="16"/>
<via x="54.102" y="78.359" extent="1-16" drill="0.6" shape="square"/>
<wire x1="54.102" y1="78.359" x2="54.653" y2="78.91" width="0.4064" layer="1"/>
<wire x1="54.653" y1="78.91" x2="54.653" y2="81.026" width="0.4064" layer="1"/>
<wire x1="45.72" y1="74.041" x2="46.736" y2="75.057" width="0.4064" layer="16"/>
<wire x1="46.736" y1="75.057" x2="51.308" y2="75.057" width="0.4064" layer="16"/>
<wire x1="40.259" y1="74.422" x2="40.64" y2="74.041" width="0.4064" layer="1"/>
<via x="40.64" y="74.041" extent="1-16" drill="0.6" shape="square"/>
<wire x1="40.64" y1="74.041" x2="42.164" y2="74.041" width="0.4064" layer="16"/>
</signal>
<signal name="5VSP_ON">
<contactref element="U12" pad="6"/>
<contactref element="R17" pad="1"/>
<wire x1="56.896" y1="72.009" x2="56.896" y2="75.858" width="0.4064" layer="1"/>
</signal>
<signal name="N$32">
<contactref element="R17" pad="2"/>
<contactref element="R19" pad="1"/>
<contactref element="Q5" pad="1"/>
<wire x1="56.896" y1="77.558" x2="56.896" y2="80.033" width="0.4064" layer="1"/>
<wire x1="56.896" y1="80.033" x2="56.853" y2="80.076" width="0.4064" layer="1"/>
<wire x1="56.896" y1="77.558" x2="59.768" y2="77.558" width="0.4064" layer="1"/>
<wire x1="59.768" y1="77.558" x2="59.817" y2="77.509" width="0.4064" layer="1"/>
</signal>
<signal name="3V3SP_ON">
<contactref element="R18" pad="1"/>
<contactref element="U12" pad="22"/>
<wire x1="11.176" y1="69.469" x2="23.368" y2="69.469" width="0.4064" layer="1"/>
<wire x1="23.368" y1="69.469" x2="25.146" y2="67.691" width="0.4064" layer="1"/>
<wire x1="25.146" y1="67.691" x2="29.884" y2="67.691" width="0.4064" layer="1"/>
</signal>
<signal name="N$33">
<contactref element="R18" pad="2"/>
<contactref element="R20" pad="1"/>
<contactref element="Q4" pad="1"/>
<wire x1="31.584" y1="67.691" x2="34.124" y2="67.818" width="0.4064" layer="1"/>
<wire x1="34.124" y1="67.818" x2="34.163" y2="67.779" width="0.4064" layer="1"/>
<wire x1="34.163" y1="67.779" x2="36.773" y2="67.779" width="0.4064" layer="1"/>
<wire x1="36.773" y1="67.779" x2="36.873" y2="67.879" width="0.4064" layer="1"/>
</signal>
<signal name="+3V3SP">
<contactref element="R7" pad="2"/>
<contactref element="R5" pad="2"/>
<contactref element="Q2" pad="1"/>
<contactref element="Q1" pad="1"/>
<contactref element="U7" pad="8"/>
<contactref element="C9" pad="1"/>
<contactref element="Q4" pad="3"/>
<wire x1="39.073" y1="66.929" x2="38.692" y2="66.718" width="0.4064" layer="1"/>
<wire x1="38.692" y1="66.718" x2="38.735" y2="66.675" width="0.4064" layer="1"/>
<wire x1="23.202" y1="83.693" x2="23.202" y2="85.256" width="0.4064" layer="1"/>
<wire x1="23.202" y1="85.256" x2="21.535" y2="86.923" width="0.4064" layer="1"/>
<wire x1="23.175" y1="80.729" x2="23.175" y2="83.666" width="0.4064" layer="1"/>
<wire x1="23.175" y1="83.666" x2="23.202" y2="83.693" width="0.4064" layer="1"/>
<wire x1="44.577" y1="97.663" x2="44.577" y2="97.702" width="0.254" layer="1"/>
<wire x1="44.577" y1="96.2201" x2="44.577" y2="97.663" width="0.254" layer="1"/>
<wire x1="44.577" y1="97.663" x2="43.053" y2="97.663" width="0.254" layer="1"/>
<wire x1="43.053" y1="97.663" x2="42.799" y2="97.917" width="0.254" layer="1"/>
<via x="42.799" y="97.917" extent="1-16" drill="0.6" shape="square"/>
<wire x1="42.799" y1="97.917" x2="37.465" y2="97.917" width="0.4064" layer="16"/>
<wire x1="23.175" y1="80.729" x2="25.484" y2="80.729" width="0.4064" layer="1"/>
<wire x1="25.484" y1="80.729" x2="25.527" y2="80.772" width="0.4064" layer="1"/>
<via x="25.527" y="80.772" extent="1-16" drill="0.6" shape="square"/>
<wire x1="25.527" y1="80.772" x2="31.455" y2="80.772" width="0.4064" layer="16"/>
<wire x1="31.455" y1="80.772" x2="31.539" y2="80.856" width="0.4064" layer="16"/>
<via x="31.539" y="80.856" extent="1-16" drill="0.6" shape="square"/>
<wire x1="31.539" y1="80.856" x2="29.779" y2="80.856" width="0.4064" layer="1"/>
<wire x1="31.965" y1="83.693" x2="31.965" y2="81.282" width="0.4064" layer="1"/>
<wire x1="31.965" y1="81.282" x2="31.539" y2="80.856" width="0.4064" layer="1"/>
<contactref element="JP2" pad="P$1"/>
<contactref element="JP3" pad="P$1"/>
<wire x1="21.535" y1="86.923" x2="21.535" y2="90.678" width="0.4064" layer="1"/>
<wire x1="21.535" y1="90.678" x2="21.535" y2="96.901" width="0.4064" layer="16"/>
<wire x1="31.965" y1="83.693" x2="31.965" y2="85.94" width="0.4064" layer="1"/>
<wire x1="31.965" y1="85.94" x2="32.004" y2="85.979" width="0.4064" layer="1"/>
<via x="32.004" y="85.979" extent="1-16" drill="0.6" shape="square"/>
<wire x1="32.004" y1="85.979" x2="32.004" y2="88.9" width="0.4064" layer="16"/>
<wire x1="32.004" y1="88.9" x2="35.56" y2="92.456" width="0.4064" layer="16"/>
<wire x1="35.56" y1="92.456" x2="35.56" y2="96.012" width="0.4064" layer="16"/>
<wire x1="35.56" y1="96.012" x2="37.465" y2="97.917" width="0.4064" layer="16"/>
<wire x1="39.073" y1="72.728" x2="39.073" y2="66.929" width="0.4064" layer="1"/>
<wire x1="39.073" y1="72.728" x2="31.539" y2="80.262" width="0.4064" layer="1"/>
<wire x1="31.539" y1="80.262" x2="31.539" y2="80.856" width="0.4064" layer="1"/>
</signal>
<signal name="N$9">
<contactref element="U13" pad="8"/>
<contactref element="Q3" pad="3"/>
<wire x1="86.444" y1="29.972" x2="91.279" y2="29.972" width="0.4064" layer="1"/>
<wire x1="91.279" y1="29.972" x2="91.291" y2="29.984" width="0.4064" layer="1"/>
</signal>
<signal name="N$35">
<contactref element="U17" pad="P$13"/>
<contactref element="U10" pad="4"/>
<wire x1="10.3886" y1="16.8656" x2="8.085" y2="14.562" width="0.4064" layer="1"/>
<wire x1="8.085" y1="14.562" x2="8.085" y2="12.287" width="0.4064" layer="1"/>
</signal>
<signal name="IRIDIUMRXD">
<contactref element="U13" pad="2"/>
<contactref element="U12" pad="A15"/>
<wire x1="35.052" y1="55.753" x2="52.324" y2="55.753" width="0.4064" layer="16"/>
<wire x1="52.324" y1="55.753" x2="61.214" y2="46.863" width="0.4064" layer="16"/>
<wire x1="61.214" y1="46.863" x2="91.282" y2="46.863" width="0.4064" layer="16"/>
<wire x1="91.282" y1="46.863" x2="91.291" y2="46.854" width="0.4064" layer="16"/>
<wire x1="35.052" y1="55.753" x2="13.716" y2="34.417" width="0.4064" layer="16"/>
<wire x1="13.716" y1="34.417" x2="13.716" y2="23.749" width="0.4064" layer="16"/>
</signal>
<signal name="IRIDIUMTXD">
<contactref element="U13" pad="3"/>
<contactref element="U12" pad="A14"/>
<wire x1="35.941" y1="53.848" x2="50.038" y2="53.848" width="0.4064" layer="16"/>
<wire x1="50.038" y1="53.848" x2="59.572" y2="44.314" width="0.4064" layer="16"/>
<wire x1="59.572" y1="44.314" x2="91.291" y2="44.314" width="0.4064" layer="16"/>
<wire x1="35.941" y1="53.848" x2="16.256" y2="34.163" width="0.4064" layer="16"/>
<wire x1="16.256" y1="34.163" x2="16.256" y2="23.749" width="0.4064" layer="16"/>
</signal>
<signal name="IRIDIUMPOWER">
<contactref element="R23" pad="1"/>
<contactref element="U12" pad="8"/>
<wire x1="63.5" y1="72.009" x2="63.5" y2="66.167" width="0.4064" layer="16"/>
<wire x1="63.5" y1="66.167" x2="72.644" y2="57.023" width="0.4064" layer="16"/>
<wire x1="72.644" y1="57.023" x2="72.644" y2="49.276" width="0.4064" layer="16"/>
<via x="72.644" y="49.276" extent="1-16" drill="0.6" shape="square"/>
<wire x1="72.644" y1="49.276" x2="72.644" y2="40.679" width="0.4064" layer="1"/>
<wire x1="72.644" y1="40.679" x2="79.287" y2="34.036" width="0.4064" layer="1"/>
</signal>
<signal name="IRIDIUMONOFF">
<contactref element="R25" pad="1"/>
<contactref element="U12" pad="A6"/>
<wire x1="39.116" y1="23.749" x2="39.116" y2="28.956" width="0.4064" layer="16"/>
<wire x1="39.116" y1="28.956" x2="40.005" y2="29.845" width="0.4064" layer="16"/>
<wire x1="40.005" y1="29.845" x2="60.325" y2="29.845" width="0.4064" layer="16"/>
<wire x1="60.325" y1="29.845" x2="63.5" y2="26.67" width="0.4064" layer="16"/>
<wire x1="63.5" y1="26.67" x2="84.455" y2="26.67" width="0.4064" layer="16"/>
<wire x1="84.455" y1="26.67" x2="85.09" y2="26.035" width="0.4064" layer="16"/>
<via x="85.09" y="26.035" extent="1-16" drill="0.6" shape="square"/>
<wire x1="85.09" y1="26.035" x2="85.09" y2="23.661" width="0.4064" layer="1"/>
<wire x1="85.09" y1="23.661" x2="85.129" y2="23.622" width="0.4064" layer="1"/>
</signal>
<signal name="N$6">
<contactref element="U12" pad="5V"/>
<contactref element="D1" pad="1"/>
<contactref element="C13" pad="1"/>
<wire x1="67.056" y1="29.161" x2="67.056" y2="23.749" width="0.4064" layer="1"/>
<wire x1="67.056" y1="29.161" x2="67.095" y2="29.122" width="0.4064" layer="1"/>
<wire x1="67.095" y1="29.122" x2="69.596" y2="29.122" width="0.4064" layer="1"/>
</signal>
<signal name="N$8">
<contactref element="U7" pad="6"/>
<contactref element="C27" pad="1"/>
<contactref element="U22" pad="3"/>
<wire x1="38.442" y1="99.822" x2="38.481" y2="99.783" width="0.4064" layer="1"/>
<wire x1="38.481" y1="99.783" x2="38.481" y2="97.3328" width="0.4064" layer="1"/>
<wire x1="45.577" y1="96.2201" x2="45.577" y2="100.219" width="0.254" layer="1"/>
<wire x1="45.577" y1="100.219" x2="45.339" y2="100.457" width="0.254" layer="1"/>
<wire x1="45.339" y1="100.457" x2="39.077" y2="100.457" width="0.254" layer="1"/>
<wire x1="39.077" y1="100.457" x2="38.442" y2="99.822" width="0.254" layer="1"/>
</signal>
<signal name="N$26">
<contactref element="U7" pad="7"/>
<contactref element="U7" pad="9"/>
<contactref element="R12" pad="2"/>
<wire x1="45.077" y1="96.2201" x2="45.077" y2="95.115" width="0.254" layer="1"/>
<wire x1="45.077" y1="95.115" x2="44.958" y2="94.996" width="0.254" layer="1"/>
<wire x1="44.958" y1="94.996" x2="44.196" y2="94.996" width="0.254" layer="1"/>
<wire x1="44.196" y1="94.996" x2="44.069" y2="95.123" width="0.254" layer="1"/>
<wire x1="44.069" y1="95.123" x2="44.069" y2="96.2121" width="0.254" layer="1"/>
<wire x1="44.069" y1="96.2121" x2="44.077" y2="96.2201" width="0.254" layer="1"/>
<wire x1="47.142" y1="95.123" x2="45.085" y2="95.123" width="0.254" layer="1"/>
<wire x1="45.085" y1="95.123" x2="45.077" y2="95.115" width="0.254" layer="1"/>
<wire x1="47.142" y1="95.123" x2="48.26" y2="96.241" width="0.254" layer="1"/>
</signal>
<signal name="N$12">
<contactref element="R4" pad="1"/>
<contactref element="R6" pad="2"/>
<contactref element="U23" pad="6"/>
<wire x1="48.172" y1="79.629" x2="46.443" y2="79.629" width="0.4064" layer="1"/>
<wire x1="46.443" y1="79.629" x2="46.609" y2="79.795" width="0.4064" layer="1"/>
<wire x1="46.609" y1="79.795" x2="46.609" y2="81.982" width="0.4064" layer="1"/>
</signal>
<signal name="N$13">
<contactref element="U23" pad="4"/>
<contactref element="U22" pad="8"/>
<contactref element="U22" pad="7"/>
<wire x1="41.021" y1="92.4052" x2="39.751" y2="92.4052" width="0.4064" layer="1"/>
<wire x1="41.021" y1="92.4052" x2="45.339" y2="88.0872" width="0.4064" layer="1"/>
<wire x1="45.339" y1="88.0872" x2="45.339" y2="87.182" width="0.4064" layer="1"/>
</signal>
<signal name="N$18">
<contactref element="U22" pad="4"/>
<contactref element="U22" pad="5"/>
<contactref element="U6" pad="1"/>
<wire x1="37.211" y1="97.3328" x2="37.211" y2="92.4052" width="0.4064" layer="1"/>
<wire x1="37.211" y1="92.4052" x2="37.211" y2="90.0176" width="0.4064" layer="1"/>
<wire x1="37.211" y1="90.0176" x2="37.1348" y2="89.9414" width="0.4064" layer="1"/>
</signal>
<signal name="N$36">
<contactref element="U22" pad="1"/>
<contactref element="R6" pad="1"/>
<contactref element="U7" pad="10"/>
<wire x1="43.577" y1="96.2201" x2="42.418" y2="96.2201" width="0.254" layer="1"/>
<wire x1="42.291" y1="96.2201" x2="42.1337" y2="96.2201" width="0.254" layer="1"/>
<wire x1="42.1337" y1="96.2201" x2="41.021" y2="97.3328" width="0.254" layer="1"/>
<wire x1="44.743" y1="79.629" x2="44.831" y2="79.541" width="0.4064" layer="1"/>
<wire x1="44.831" y1="79.541" x2="44.831" y2="77.47" width="0.4064" layer="1"/>
<via x="44.831" y="77.47" extent="1-16" drill="0.6" shape="square"/>
<wire x1="44.831" y1="77.47" x2="42.418" y2="79.883" width="0.4064" layer="16"/>
<wire x1="42.418" y1="79.883" x2="42.418" y2="94.615" width="0.4064" layer="16"/>
<via x="42.418" y="94.615" extent="1-16" drill="0.6" shape="square"/>
<wire x1="42.418" y1="94.615" x2="42.418" y2="96.2201" width="0.254" layer="1"/>
<wire x1="42.418" y1="96.2201" x2="42.291" y2="96.2201" width="0.254" layer="1"/>
</signal>
</signals>
<errors>
<approved hash="5,1,2c93cf4f7b4b044b"/>
</errors>
</board>
</drawing>
</eagle>

path: /archive/Gen 2 2016-2017/Electrical/Eagle PCB Files/Pop-Up 4.0.brd


text:
@article{balikcci2020relationship,
  title={The relationship between dysfunctional metacognitive beliefs and problematic social networking sites use},
  author={Bal{\i}k{\c{c}}{\i}, Kuzeymen and Ayd{\i}n, Orkun and S{\"o}nmez, {\.I}pek and Kalo, Beng{\"u} and {\"U}nal-Ayd{\i}n, P{\i}nar},
  journal={Scandinavian journal of psychology},
  volume={61},
  number={5},
  pages={593--598},
  year={2020},
  publisher={Wiley Online Library}
}

repository: kortekss/bengukalo

repo_name: kortekss/bengukalo

gha_language: Jupyter Notebook

extension: bib


text:
package im

type Room struct{
	users User
}

func (this * Room) New(){

}

func (this * Room) Add(){

}

func (this * Room) Remove(){

}

func (this * Room) Send(){

}

extension: go


text:
draw() {
    time += timePerFrame() * [[time_scale]];

    hexagon1.draw(time);
    hexagon2.draw(time + 3);
    hexagon3.draw(time + 8);

    hexagon1.spacing = [[spacing]]
    hexagon2.spacing = [[spacing]]
    hexagon3.spacing = [[spacing]]
}

extension: cpp


text:
# base recipe: meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.17.bb
# base branch: warrior
# base commit: a24acf94d48d635eca668ea34598c6e5c857e3f8
SUMMARY = "Runtime library for the Kerberos v5 API for the main part used by the application and the Kerberos client"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://NOTICE;md5=aff541e7261f1926ac6a2a9a7bbab839"

DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"

inherit autotools-brokensep binconfig debian-package
require recipes-debian/sources/krb5.inc

DEBIAN_UNPACK_DIR = "${WORKDIR}/krb5-${PV}"

SRC_URI += "file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch;patchdir=src \
           file://crosscompile_nm.patch;patchdir=src"

EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath"
CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
                  ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
                  ac_cv_file__etc_TIMEZONE=no"

CFLAGS_append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et"
CFLAGS_append_riscv64 = " -D_REENTRANT -pthread"
LDFLAGS_append = " -pthread"

# The krb5 source is extracted under src dirctory, so set the confiure file path.
# To apply debian patches, extracted the krb5 source under src dirctory.
CONFIGURE_SCRIPT = "${S}/src/configure"

do_configure() {
    # Change Dirctory where the configure.in exists.
    cd src
    gnu-configize --force
    autoreconf
    oe_runconf
}

do_compile_prepend() {
    # Change Dirctory where the Makefile exists.
    cd src
}

do_install() {
    install -d ${D}${libdir}

    # Install libkrb5-3 files
    install -d ${D}${libdir}/krb5/plugins/preauth
    cp -r --no-preserve=ownership ${S}/src/lib/krb5/libkrb5${SOLIBS} ${D}${libdir}
    install -m 0600 ${S}/src/plugins/preauth/spake/spake.so ${D}${libdir}/krb5/plugins/preauth
    install -d ${D}${docdir}/libkrb5-3
    install -m 0644 ${S}/debian/NEWS ${D}${docdir}/libkrb5-3/NEWS.Debian
    install -m 0644 ${S}/debian/README.Debian ${D}${docdir}/libkrb5-3/
    install -m 0644 ${S}/README ${D}${docdir}/libkrb5-3/
    install -m 0644 ${S}/debian/changelog ${D}${docdir}/libkrb5-3/changelog.Debian
    install -m 0644 ${S}/debian/copyright ${D}${docdir}/libkrb5-3

    # Install libk5crypto3 files
    cp -r --no-preserve=ownership ${S}/src/lib/crypto/libk5crypto${SOLIBS} ${D}${libdir}
    install -d ${D}${docdir}/libkrb5support0
    install -m 0644 ${S}/debian/NEWS ${D}${docdir}/libkrb5support0/NEWS.Debian
    install -m 0644 ${S}/debian/changelog ${D}${docdir}/libkrb5support0/changelog.Debian
    install -m 0644 ${S}/debian/copyright ${D}${docdir}/libkrb5support0

    # Install libkrb5support0 files
    cp -r --no-preserve=ownership ${S}/src/util/support/libkrb5support${SOLIBS} ${D}${libdir}
    install -d ${D}${docdir}/libk5crypto3
    install -m 0644 ${S}/debian/NEWS ${D}${docdir}/libk5crypto3/NEWS.Debian
    install -m 0644 ${S}/debian/changelog ${D}${docdir}/libk5crypto3/changelog.Debian
    install -m 0644 ${S}/debian/copyright ${D}${docdir}/libk5crypto3

    # Install libkrb5-dev files
    install -d ${D}${includedir}/gssapi
    install -m 0644 ${S}/src/include/gssapi/*.h ${D}${includedir}/gssapi
    install -m 0644 ${S}/src/lib/gssapi/mechglue/mechglue.h ${D}${includedir}/gssapi
    rm -f ${D}${includedir}/gssapi/gssapi_alloc.h

    install -d ${D}${includedir}/gssrpc
    install -m 0644 ${S}/src/include/gssrpc/*.h ${D}${includedir}/gssrpc

    install -d ${D}${includedir}/kadm5
    install -m 0644 ${S}/src/include/kadm5/admin.h ${D}${includedir}/kadm5
    install -m 0644 ${S}/src/include/kadm5/chpass_util_strings.h ${D}${includedir}/kadm5
    install -m 0644 ${S}/src/include/kadm5/kadm_err.h ${D}${includedir}/kadm5

    install -d ${D}${includedir}/krb5
    install -m 0644 ${S}/src/include/krb5/*.h ${D}${includedir}/krb5
    rm -f ${D}${includedir}/krb5/audit_plugin.h
    rm -f ${D}${includedir}/krb5/authdata_plugin.h
    rm -f ${D}${includedir}/krb5/kdcauthdata_plugin.h

    install -m 0644 ${S}/src/include/gssapi.h ${D}${includedir}
    install -m 0644 ${S}/src/include/kdb.h ${D}${includedir}
    install -m 0644 ${S}/src/include/krb5.h ${D}${includedir}
    install -m 0644 ${S}/src/include/profile.h ${D}${includedir}

    install -d ${D}${libdir}
    cp -r --no-preserve=ownership ${S}/src/lib/*.so ${D}${libdir}
    ln -sf libkadm5clnt_mit.so ${D}${libdir}/libkadm5clnt.so
    ln -sf libkadm5srv_mit.so ${D}${libdir}/libkadm5srv.so
    rm -f ${D}${libdir}/libkrad.so
    rm -f ${D}${libdir}/libverto.so
}

PACKAGES =+ "libk5crypto3 \
             libk5crypto3-doc \
             libkrb5support0 \
             libkrb5support0-doc"

RDEPENDS_${PN} = "libk5crypto3 libkrb5support0"
RDEPENDS_libk5crypto3 = "libkrb5support0"

FILES_${PN} = "${libdir}/libkrb5${SOLIBS} \
               ${libdir}/krb5/plugins/preauth/spake.so"
FILES_${PN}-dev = "${includedir} ${libdir}/*.so"
FILES_libk5crypto3 = "${libdir}/libk5crypto${SOLIBS}"
FILES_libk5crypto3-doc = "${docdir}/libk5crypto3"
FILES_libkrb5support0 = "${libdir}/libkrb5support${SOLIBS}"
FILES_libkrb5support0-doc = "${docdir}/libkrb5support0"

repository: miraclelinux/meta-debian-extended

repo_name: miraclelinux/meta-debian-extended

branch_name: refs/heads/warrior

gha_language: BitBake

extension: bb


text:
@article{Shah_2017,
  doi = {10.1111/jgh.13494},
  url = {https://doi.org/10.1111\%2Fjgh.13494},
  year = 2017,
  month = {mar},
  publisher = {Wiley-Blackwell},
  volume = {32},
  number = {3},
  pages = {620--624},
  author = {Swarup A V Shah and Minal Paradkar and Devendra Desai and Tester F Ashavaid},
  title = {Nucleoside diphosphate-linked moiety X-type motif 15 C415T variant as a predictor for thiopurine-induced toxicity in Indian patients},
  journal = {Journal of Gastroenterology and Hepatology}
}

repository: larmcr/px

repo_name: larmcr/px


text:
package model

import (
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils"

	"errors"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter"

	"strings"
)

// UpdateHealthMonitorOption 更新健康检查请求参数。
type UpdateHealthMonitorOption struct {

	// 健康检查的管理状态。  取值： - true：表示开启健康检查，默认为true。 - false表示关闭健康检查。
	AdminStateUp *bool `json:"admin_state_up,omitempty"`

	// 健康检查间隔。健康检查间隔。取值：1-50s。
	Delay *int32 `json:"delay,omitempty"`

	// 发送健康检查请求的域名。  取值：以数字或字母开头，只能包含数字、字母、’-’、’.’。 不能传空，但可传null或不传，表示使用负载均衡器的vip作为http请求的目的地址。  使用说明：当type为HTTP/HTTPS时生效。
	DomainName *string `json:"domain_name,omitempty"`

	// 期望响应状态码。  取值： - 单值：单个返回码，例如200。 - 列表：多个特定返回码，例如200，202。 - 区间：一个返回码区间，例如200-204。   默认值：200。  仅支持HTTP/HTTPS设置该字段，其他协议设置不会生效。
	ExpectedCodes *string `json:"expected_codes,omitempty"`

	// HTTP请求方法。  取值：GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH，默认GET。  使用说明：当type为HTTP/HTTPS时生效。  不支持该字段，请勿使用。
	HttpMethod *UpdateHealthMonitorOptionHttpMethod `json:"http_method,omitempty"`

	// 健康检查连续成功多少次后，将后端服务器的健康检查状态由OFFLINE判定为ONLINE。取值范围：1-10。
	MaxRetries *int32 `json:"max_retries,omitempty"`

	// 健康检查连续失败多少次后，将后端服务器的健康检查状态由ONLINE判定为OFFLINE。取值范围：1-10。
	MaxRetriesDown *int32 `json:"max_retries_down,omitempty"`

	// 健康检查端口号。取值：1-65535，不可传入空，但可传入null，表示使用后端云服务器端口号。
	MonitorPort *int32 `json:"monitor_port,omitempty"`

	// 健康检查名称。
	Name *string `json:"name,omitempty"`

	// 一次健康检查请求的超时时间。  建议该值小于delay的值。
	Timeout *int32 `json:"timeout,omitempty"`

	// 健康检查请求的请求路径。以\"/\"开头，默认为\"/\"。  支持使用字母、数字和短划线（-）、正斜线（/）、半角句号（.）、百分号（%）、半角问号（?）、井号（#）和and（&）以及扩展字符集_;~!()*[]@$^:',+  使用说明：当type为HTTP/HTTPS时生效。
	UrlPath *string `json:"url_path,omitempty"`

	// 健康检查请求协议。  取值：TCP、UDP_CONNECT、HTTP、HTTPS。  使用说明： - 若pool的protocol为QUIC，则type只能是UDP_CONNECT。 - 若pool的protocol为UDP，则type只能UDP_CONNECT。 - 若pool的protocol为TCP，则type可以是TCP、HTTP、HTTPS。 - 若pool的protocol为HTTP，则type可以是TCP、HTTP、HTTPS。 - 若pool的protocol为HTTPS，则type可以是TCP、HTTP、HTTPS。  [不支持QUIC。](tag:tm,hws_eu,g42,hk_g42,hcso_dt)  [荷兰region不支持QUIC。](tag:dt,dt_test)
	Type *string `json:"type,omitempty"`
}

func (o UpdateHealthMonitorOption) String() string {
	data, err := utils.Marshal(o)
	if err != nil {
		return "UpdateHealthMonitorOption struct{}"
	}

	return strings.Join([]string{"UpdateHealthMonitorOption", string(data)}, " ")
}

type UpdateHealthMonitorOptionHttpMethod struct {
	value string
}

type UpdateHealthMonitorOptionHttpMethodEnum struct {
	GET     UpdateHealthMonitorOptionHttpMethod
	HEAD    UpdateHealthMonitorOptionHttpMethod
	POST    UpdateHealthMonitorOptionHttpMethod
	PUT     UpdateHealthMonitorOptionHttpMethod
	DELETE  UpdateHealthMonitorOptionHttpMethod
	TRACE   UpdateHealthMonitorOptionHttpMethod
	OPTIONS UpdateHealthMonitorOptionHttpMethod
	CONNECT UpdateHealthMonitorOptionHttpMethod
	PATCH   UpdateHealthMonitorOptionHttpMethod
}

func GetUpdateHealthMonitorOptionHttpMethodEnum() UpdateHealthMonitorOptionHttpMethodEnum {
	return UpdateHealthMonitorOptionHttpMethodEnum{
		GET: UpdateHealthMonitorOptionHttpMethod{
			value: "GET",
		},
		HEAD: UpdateHealthMonitorOptionHttpMethod{
			value: "HEAD",
		},
		POST: UpdateHealthMonitorOptionHttpMethod{
			value: "POST",
		},
		PUT: UpdateHealthMonitorOptionHttpMethod{
			value: "PUT",
		},
		DELETE: UpdateHealthMonitorOptionHttpMethod{
			value: "DELETE",
		},
		TRACE: UpdateHealthMonitorOptionHttpMethod{
			value: "TRACE",
		},
		OPTIONS: UpdateHealthMonitorOptionHttpMethod{
			value: "OPTIONS",
		},
		CONNECT: UpdateHealthMonitorOptionHttpMethod{
			value: "CONNECT",
		},
		PATCH: UpdateHealthMonitorOptionHttpMethod{
			value: "PATCH",
		},
	}
}

func (c UpdateHealthMonitorOptionHttpMethod) Value() string {
	return c.value
}

func (c UpdateHealthMonitorOptionHttpMethod) MarshalJSON() ([]byte, error) {
	return utils.Marshal(c.value)
}

func (c *UpdateHealthMonitorOptionHttpMethod) UnmarshalJSON(b []byte) error {
	myConverter := converter.StringConverterFactory("string")
	if myConverter == nil {
		return errors.New("unsupported StringConverter type: string")
	}

	interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
	if err != nil {
		return err
	}

	if val, ok := interf.(string); ok {
		c.value = val
		return nil
	} else {
		return errors.New("convert enum data to string error")
	}
}

gha_license_id: NOASSERTION

gha_language: Go


text:
# FindOGDI
# ~~~~~~~~~
#
# Copyright (c) 2017, Hiroshi Miura <miurahr@linux.com>
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
# If it's found it sets OGDI_FOUND to TRUE
# and following variables are set:
#    OGDI_INCLUDE_DIRS
#    OGDI_LIBRARIES
#    OGDI_VERSION
#

find_path(OGDI_INCLUDE_DIR ecs.h PATH_SUFFIXES ogdi)
find_library(OGDI_LIBRARY NAMES ogdi libogdi vpf libvpf)

if(OGDI_INCLUDE_DIR AND OGDI_LIBRARY)
    find_program(OGDI_CONFIG_EXE ogdi-config)
    execute_process(COMMAND ${OGDI_CONFIG_EXE} --version
            OUTPUT_VARIABLE OGDI_VERSION
            OUTPUT_STRIP_TRAILING_WHITESPACE
    )
endif()

find_package_handle_standard_args(OGDI REQUIRED_VARS OGDI_LIBRARY OGDI_INCLUDE_DIR
                                  VERSION_VAR OGDI_VERSION)

if(OGDI_FOUND)
    set(OGDI_LIBRARIES ${OGDI_LIBRARY})
    set(OGDI_INCLUDE_DIRS ${OGDI_INCLUDE_DIR})
    if(NOT TARGET OGDI::OGDI)
        add_library(OGDI::OGDI UNKNOWN IMPORTED)
        set_target_properties(OGDI::OGDI PROPERTIES
                              INTERFACE_INCLUDE_DIRECTORIES "${OGDI_INCLUDE_DIR}"
                              IMPORTED_LINK_INTERFACE_LANGUAGES "C"
                              IMPORTED_LOCATION "${OGDI_LIBRARY}")
    endif()
endif()

gha_language: CMake

extension: cmake


text:
package langserver

import (
	"context"
	"fmt"
	"github.com/saibing/bingo/pkg/lsp"
	"github.com/sourcegraph/jsonrpc2"
	"golang.org/x/tools/go/packages/packagestest"
	"log"
	"path/filepath"
	"reflect"
	"strings"
	"testing"

	"github.com/saibing/bingo/langserver/internal/util"
)

func TestDocumentSymbol(t *testing.T) {

	exported = packagestest.Export(t, packagestest.Modules, testdata)
	defer exported.Cleanup()

	defer func() {
		if conn != nil {
			if err := conn.Close(); err != nil {
				log.Fatal("conn.Close", err)
			}
		}
	}()

	initServer(exported.Config.Dir)

	test := func(t *testing.T, data map[string][]string) {
		for k, v := range data {
			testDocumentSymbol(t, &documentSymbolTestCase{input:k, output:v})
		}
	}

	t.Run("basic document symbol", func(t *testing.T) {
		test(t, map[string][]string{
			"basic/a.go": {"basic/a.go:function:A:1:17"},
			"basic/b.go": {"basic/b.go:function:B:1:17"},
		})
	})

	t.Run("detailed document symbol", func(t *testing.T) {
		test(t, map[string][]string{
			"detailed/a.go": {"detailed/a.go:field:T.F:1:28", "detailed/a.go:class:T:1:17"},
		})
	})

	t.Run("exported defs unexported type", func(t *testing.T) {
		test(t, map[string][]string{
			"exported_on_unexported/a.go": {"exported_on_unexported/a.go:field:t.F:1:28", "exported_on_unexported/a.go:class:t:1:17"},
		})
	})

	t.Run("xtest", func(t *testing.T) {
		test(t, map[string][]string{
			"xtest/y_test.go": {"xtest/y_test.go:function:Y:1:22"},
			"xtest/b_test.go": {"xtest/b_test.go:function:Y:1:17"},
		})
	})

	t.Run("subdirectory document symbol", func(t *testing.T) {
		test(t, map[string][]string{
			"subdirectory/a.go":    {"subdirectory/a.go:function:A:1:17"},
			"subdirectory/d2/b.go": {"subdirectory/d2/b.go:function:B:1:86"},
		})
	})

	t.Run("multiple packages in dir", func(t *testing.T) {
		test(t, map[string][]string{
			"multiple/a.go": {"multiple/a.go:function:A:1:17"},
		})
	})

	t.Run("go root", func(t *testing.T) {
		test(t, map[string][]string{
			"goroot/a.go": {"goroot/a.go:variable:x:1:51"},
		})
	})

	t.Run("go project", func(t *testing.T) {
		test(t, map[string][]string{
			"goproject/a/a.go": {"goproject/a/a.go:function:A:1:17"},
			"goproject/b/b.go": {},
		})
	})

	t.Run("go symbols", func(t *testing.T) {
		test(t, map[string][]string{
			"symbols/abc.go": {
				"symbols/abc.go:class:XYZ:3:6",
				"symbols/abc.go:method:XYZ.ABC:5:14",
				"symbols/abc.go:variable:A:8:2",
				"symbols/abc.go:constant:B:12:2",
				"symbols/abc.go:class:C:17:2",
				"symbols/abc.go:interface:UVW:20:6",
				"symbols/abc.go:class:T:22:6"},
			"symbols/bcd.go": {
				"symbols/bcd.go:class:YZA:3:6",
				"symbols/bcd.go:method:YZA.BCD:5:14"},
			"symbols/cde.go": {
				"symbols/cde.go:variable:a:4:2",
				"symbols/cde.go:variable:b:4:5",
				"symbols/cde.go:variable:c:5:2"},
			"symbols/xyz.go": {
				"symbols/xyz.go:function:yza:3:6"},
		})
	})

	t.Run("unexpected paths", func(t *testing.T) {
		test(t, map[string][]string{
			"unexpected_paths/a.go": {"unexpected_paths/a.go:function:A:1:17"},
		})
	})

	t.Run("recv in different file", func(t *testing.T) {
		test(t, map[string][]string{
			"different/abc.go": {"different/abc.go:class:XYZ:2:6"},
			"different/bcd.go": {"different/bcd.go:method:XYZ.ABC:2:14"},
		})
	})
}

type documentSymbolTestCase struct {
	input  string
	output []string
}

func testDocumentSymbol(tb testing.TB, c *documentSymbolTestCase) {
	tbRun(tb, fmt.Sprintf("document-symbol-%s", c.input), func(t testing.TB) {
		dir, err := filepath.Abs(exported.Config.Dir)
		if err != nil {
			log.Fatal("testDocumentSymbol", err)
		}
		doTestDocumentSymbol(t, ctx, conn, util.PathToURI(dir), c.input, c.output)
	})
}

func doTestDocumentSymbol(t testing.TB, ctx context.Context, c *jsonrpc2.Conn, rootURI lsp.DocumentURI, file string, want []string) {
	symbols, err := callSymbols(ctx, c, uriJoin(rootURI, file))
	if err != nil {
		t.Fatal(err)
	}
	for i := range symbols {
		symbols[i] = filepath.ToSlash(util.UriToRealPath(lsp.DocumentURI(symbols[i])))
	}

	for i, s := range want {
		want[i] = makePath(exported.Config.Dir, s)
	}
	if !reflect.DeepEqual(symbols, want) {
		t.Errorf("got %q, want %q", symbols, want)
	}
}

func callSymbols(ctx context.Context, c *jsonrpc2.Conn, uri lsp.DocumentURI) ([]string, error) {
	var symbols []lsp.SymbolInformation
	err := c.Call(ctx, "textDocument/documentSymbol", lsp.DocumentSymbolParams{
		TextDocument: lsp.TextDocumentIdentifier{URI: uri},
	}, &symbols)
	if err != nil {
		return nil, err
	}
	syms := make([]string, len(symbols))
	for i, s := range symbols {
		syms[i] = fmt.Sprintf("%s:%s:%s:%d:%d", s.Location.URI, strings.ToLower(s.Kind.String()), qualifiedName(s), s.Location.Range.Start.Line+1, s.Location.Range.Start.Character+1)
	}
	return syms, nil
}

repository: s-kostyaev/bingo

repo_name: s-kostyaev/bingo


text:
cmake_minimum_required(VERSION 2.8.12)

project(dnnl-download NONE)

include(ExternalProject)

ExternalProject_Add(dnnl
                    GIT_REPOSITORY "https://github.com/oneapi-src/oneDNN.git"
                    GIT_TAG "master"
                    SOURCE_DIR "${PROJECT_SOURCE_DIR}/third_party/dnnl"
                    BINARY_DIR "${CMAKE_BINARY_DIR}/dnnl-build"
                    CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${PROJECT_SOURCE_DIR}/third_party/dnnl/build"
                               "-DCMAKE_BUILD_TYPE=Release"
                               "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
                               "-DDNNL_LIBRARY_TYPE=STATIC"
                               "-DDNNL_CPU_RUNTIME=SEQ"
                               "-DDNNL_BUILD_EXAMPLES=OFF"
                               "-DDNNL_BUILD_TESTS=OFF"
                    BUILD_COMMAND "${CMAKE_COMMAND}" --build . --target install
                    INSTALL_COMMAND ""
                    TEST_COMMAND ""
                    )

repository: junluan/shadow

repo_name: junluan/shadow


text:
package model

import (
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils"

	"errors"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter"

	"strings"
)

// ListVirtualGatewaysRequest Request Object
type ListVirtualGatewaysRequest struct {

	// 每页返回的个数。 取值范围：1~2000。
	Limit *int32 `json:"limit,omitempty"`

	// 上一页最后一条资源记录的ID，为空时为查询第一页。 使用说明：必须与limit一起使用。
	Marker *string `json:"marker,omitempty"`

	// 显示字段列表
	Fields *[]string `json:"fields,omitempty"`

	// 返回结果按照升序(asc)或降序(desc)排列，默认为asc
	SortDir *[]ListVirtualGatewaysRequestSortDir `json:"sort_dir,omitempty"`

	// 排序字段。
	SortKey *string `json:"sort_key,omitempty"`

	// 根据资源ID过滤实例
	Id *[]string `json:"id,omitempty"`

	// 通过VPC-ID过虑虚拟网关实例
	VpcId *[]string `json:"vpc_id,omitempty"`
}

func (o ListVirtualGatewaysRequest) String() string {
	data, err := utils.Marshal(o)
	if err != nil {
		return "ListVirtualGatewaysRequest struct{}"
	}

	return strings.Join([]string{"ListVirtualGatewaysRequest", string(data)}, " ")
}

type ListVirtualGatewaysRequestSortDir struct {
	value string
}

type ListVirtualGatewaysRequestSortDirEnum struct {
	ASC  ListVirtualGatewaysRequestSortDir
	DESC ListVirtualGatewaysRequestSortDir
}

func GetListVirtualGatewaysRequestSortDirEnum() ListVirtualGatewaysRequestSortDirEnum {
	return ListVirtualGatewaysRequestSortDirEnum{
		ASC: ListVirtualGatewaysRequestSortDir{
			value: "asc",
		},
		DESC: ListVirtualGatewaysRequestSortDir{
			value: "desc",
		},
	}
}

func (c ListVirtualGatewaysRequestSortDir) Value() string {
	return c.value
}

func (c ListVirtualGatewaysRequestSortDir) MarshalJSON() ([]byte, error) {
	return utils.Marshal(c.value)
}

func (c *ListVirtualGatewaysRequestSortDir) UnmarshalJSON(b []byte) error {
	myConverter := converter.StringConverterFactory("string")
	if myConverter == nil {
		return errors.New("unsupported StringConverter type: string")
	}

	interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
	if err != nil {
		return err
	}

	if val, ok := interf.(string); ok {
		c.value = val
		return nil
	} else {
		return errors.New("convert enum data to string error")
	}
}


text:
// Mux Go - Copyright 2019 Mux Inc.
// NOTE: This file is auto generated. Do not edit this file manually.

package muxgo

import (
	"bytes"
	"context"
	"encoding/json"
	"encoding/xml"
	"errors"
	"fmt"
	"io"
	"mime/multipart"
	"net/http"
	"net/url"
	"os"
	"path/filepath"
	"reflect"
	"regexp"
	"strconv"
	"strings"
	"time"
	"unicode/utf8"
)

var (
	jsonCheck = regexp.MustCompile("(?i:[application|text]/json)")
	xmlCheck  = regexp.MustCompile("(?i:[application|text]/xml)")
)

// APIClient manages communication with the Mux API API vv1
// In most cases there should be only one, shared, APIClient.
type APIClient struct {
	cfg    *Configuration
	httpc  *http.Client
	common service // Reuse a single struct instead of allocating one for each service on the heap.

	// API Services
	AssetsApi               *AssetsApiService
	DeliveryUsageApi        *DeliveryUsageApiService
	DimensionsApi           *DimensionsApiService
	DirectUploadsApi        *DirectUploadsApiService
	ErrorsApi               *ErrorsApiService
	ExportsApi              *ExportsApiService
	FiltersApi              *FiltersApiService
	IncidentsApi            *IncidentsApiService
	LiveStreamsApi          *LiveStreamsApiService
	MetricsApi              *MetricsApiService
	PlaybackIDApi           *PlaybackIDApiService
	PlaybackRestrictionsApi *PlaybackRestrictionsApiService
	RealTimeApi             *RealTimeApiService
	SpacesApi               *SpacesApiService
	URLSigningKeysApi       *URLSigningKeysApiService
	VideoViewsApi           *VideoViewsApiService
}

type service struct {
	client *APIClient
}

// NewAPIClient creates a new API client.
func NewAPIClient(cfg *Configuration) *APIClient {
	c := &APIClient{}
	c.cfg = cfg
	c.httpc = &http.Client{
		Timeout: cfg.timeout,
	}
	c.common.client = c

	// API Services
	c.AssetsApi = (*AssetsApiService)(&c.common)
	c.DeliveryUsageApi = (*DeliveryUsageApiService)(&c.common)
	c.DimensionsApi = (*DimensionsApiService)(&c.common)
	c.DirectUploadsApi = (*DirectUploadsApiService)(&c.common)
	c.ErrorsApi = (*ErrorsApiService)(&c.common)
	c.ExportsApi = (*ExportsApiService)(&c.common)
	c.FiltersApi = (*FiltersApiService)(&c.common)
	c.IncidentsApi = (*IncidentsApiService)(&c.common)
	c.LiveStreamsApi = (*LiveStreamsApiService)(&c.common)
	c.MetricsApi = (*MetricsApiService)(&c.common)
	c.PlaybackIDApi = (*PlaybackIDApiService)(&c.common)
	c.PlaybackRestrictionsApi = (*PlaybackRestrictionsApiService)(&c.common)
	c.RealTimeApi = (*RealTimeApiService)(&c.common)
	c.SpacesApi = (*SpacesApiService)(&c.common)
	c.URLSigningKeysApi = (*URLSigningKeysApiService)(&c.common)
	c.VideoViewsApi = (*VideoViewsApiService)(&c.common)

	return c
}

func atoi(in string) (int, error) {
	return strconv.Atoi(in)
}

// selectHeaderContentType select a content type from the available list.
func selectHeaderContentType(contentTypes []string) string {
	if len(contentTypes) == 0 {
		return ""
	}
	if contains(contentTypes, "application/json") {
		return "application/json"
	}
	return contentTypes[0] // use the first content type specified in 'consumes'
}

// selectHeaderAccept join all accept types and return
func selectHeaderAccept(accepts []string) string {
	if len(accepts) == 0 {
		return ""
	}

	if contains(accepts, "application/json") {
		return "application/json"
	}

	return strings.Join(accepts, ",")
}

// contains is a case insenstive match, finding needle in a haystack
func contains(haystack []string, needle string) bool {
	for _, a := range haystack {
		if strings.ToLower(a) == strings.ToLower(needle) {
			return true
		}
	}
	return false
}

// Verify optional parameters are of the correct type.
func typeCheckParameter(obj interface{}, expected string, name string) error {
	// Make sure there is an object.
	if obj == nil {
		return nil
	}

	// Check the type is as expected.
	if reflect.TypeOf(obj).String() != expected {
		return fmt.Errorf("Expected %s to be of type %s but received %s.", name, expected, reflect.TypeOf(obj).String())
	}
	return nil
}

// parameterToString convert interface{} parameters to string, using a delimiter if format is provided.
func parameterToString(obj interface{}, collectionFormat string) string {
	var delimiter string

	switch collectionFormat {
	case "pipes":
		delimiter = "|"
	case "ssv":
		delimiter = " "
	case "tsv":
		delimiter = "\t"
	case "csv":
		delimiter = ","
	}

	if reflect.TypeOf(obj).Kind() == reflect.Slice {
		return strings.Trim(strings.Replace(fmt.Sprint(obj), " ", delimiter, -1), "[]")
	} else if t, ok := obj.(time.Time); ok {
		return t.Format(time.RFC3339)
	}

	return fmt.Sprintf("%v", obj)
}

// callAPI do the request.
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
	return c.httpc.Do(request)
}

// prepareRequest build the request
func (c *APIClient) prepareRequest(
	opts *APIOptions,
	path string, method string,
	postBody interface{},
	headerParams map[string]string,
	queryParams url.Values,
	formParams url.Values,
	formFileName string,
	fileName string,
	fileBytes []byte) (localVarRequest *http.Request, err error) {

	var body *bytes.Buffer

	// Detect postBody type and post.
	if postBody != nil {
		contentType := headerParams["Content-Type"]
		if contentType == "" {
			contentType = detectContentType(postBody)
			headerParams["Content-Type"] = contentType
		}

		body, err = setBody(postBody, contentType)
		if err != nil {
			return nil, err
		}
	}

	// add form parameters and file if available.
	if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(fileBytes) > 0 && fileName != "") {
		if body != nil {
			return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
		}
		body = &bytes.Buffer{}
		w := multipart.NewWriter(body)

		for k, v := range formParams {
			for _, iv := range v {
				if strings.HasPrefix(k, "@") { // file
					err = addFile(w, k[1:], iv)
					if err != nil {
						return nil, err
					}
				} else { // form value
					w.WriteField(k, iv)
				}
			}
		}
		if len(fileBytes) > 0 && fileName != "" {
			w.Boundary()
			//_, fileNm := filepath.Split(fileName)
			part, err := w.CreateFormFile(formFileName, filepath.Base(fileName))
			if err != nil {
				return nil, err
			}
			_, err = part.Write(fileBytes)
			if err != nil {
				return nil, err
			}
			// Set the Boundary in the Content-Type
			headerParams["Content-Type"] = w.FormDataContentType()
		}

		// Set Content-Length
		headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
		w.Close()
	}

	if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 {
		if body != nil {
			return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.")
		}
		body = &bytes.Buffer{}
		body.WriteString(formParams.Encode())
		// Set Content-Length
		headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
	}

	// Setup path and query parameters
	url, err := url.Parse(path)
	if err != nil {
		return nil, err
	}

	// Adding Query Param
	query := url.Query()
	for k, v := range queryParams {
		for _, iv := range v {
			query.Add(k, iv)
		}
	}

	// Encode the parameters.
	url.RawQuery = query.Encode()

	// Generate a new request
	if body != nil {
		localVarRequest, err = http.NewRequest(method, url.String(), body)
	} else {
		localVarRequest, err = http.NewRequest(method, url.String(), nil)
	}
	if err != nil {
		return nil, err
	}

	// add header parameters, if any
	if len(headerParams) > 0 {
		headers := http.Header{}
		for h, v := range headerParams {
			headers.Set(h, v)
		}
		localVarRequest.Header = headers
	}

	// Override request host, if applicable
	if c.cfg.host != "" {
		localVarRequest.Host = c.cfg.host
	}

	// Add the user agent to the request.
	localVarRequest.Header.Add("User-Agent", c.cfg.userAgent)

	if opts.ctx != nil {
		// add context to the request
		localVarRequest = localVarRequest.WithContext(opts.ctx)
	}

	// Basic HTTP Authentication
	if c.cfg.username == "" || c.cfg.password == "" {
		return nil, errors.New("unauthorized APIClient")
	}
	localVarRequest.SetBasicAuth(c.cfg.username, c.cfg.password)

	return localVarRequest, nil
}

func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
	if strings.Contains(contentType, "application/xml") {
		if err = xml.Unmarshal(b, v); err != nil {
			return err
		}
		return nil
	} else if strings.Contains(contentType, "application/json") {
		if err = json.Unmarshal(b, v); err != nil {
			return err
		}
		return nil
	}
	return errors.New("undefined response type")
}

// Add a file to the multipart request
func addFile(w *multipart.Writer, fieldName, path string) error {
	file, err := os.Open(path)
	if err != nil {
		return err
	}
	defer file.Close()

	part, err := w.CreateFormFile(fieldName, filepath.Base(path))
	if err != nil {
		return err
	}
	_, err = io.Copy(part, file)

	return err
}

// Prevent trying to import "fmt"
func reportError(format string, a ...interface{}) error {
	return fmt.Errorf(format, a...)
}

// Set request body from an interface{}
func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
	if bodyBuf == nil {
		bodyBuf = &bytes.Buffer{}
	}

	if reader, ok := body.(io.Reader); ok {
		_, err = bodyBuf.ReadFrom(reader)
	} else if b, ok := body.([]byte); ok {
		_, err = bodyBuf.Write(b)
	} else if s, ok := body.(string); ok {
		_, err = bodyBuf.WriteString(s)
	} else if s, ok := body.(*string); ok {
		_, err = bodyBuf.WriteString(*s)
	} else if jsonCheck.MatchString(contentType) {
		err = json.NewEncoder(bodyBuf).Encode(body)
	} else if xmlCheck.MatchString(contentType) {
		xml.NewEncoder(bodyBuf).Encode(body)
	}

	if err != nil {
		return nil, err
	}

	if bodyBuf.Len() == 0 {
		err = fmt.Errorf("Invalid body type %s\n", contentType)
		return nil, err
	}
	return bodyBuf, nil
}

// detectContentType method is used to figure out `Request.Body` content type for request header
func detectContentType(body interface{}) string {
	contentType := "text/plain; charset=utf-8"
	kind := reflect.TypeOf(body).Kind()

	switch kind {
	case reflect.Struct, reflect.Map, reflect.Ptr:
		contentType = "application/json; charset=utf-8"
	case reflect.String:
		contentType = "text/plain; charset=utf-8"
	default:
		if b, ok := body.([]byte); ok {
			contentType = http.DetectContentType(b)
		} else if kind == reflect.Slice {
			contentType = "application/json; charset=utf-8"
		}
	}

	return contentType
}

func strlen(s string) int {
	return utf8.RuneCountInString(s)
}

// APIOption sets options for API calls.
type APIOption func(*APIOptions)

// APIOptions wraps internal API call options.
type APIOptions struct {
	ctx    context.Context
	params interface{}
}

// WithContext returns an APIOption that sets the context for an API call.
func WithContext(ctx context.Context) APIOption {
	return func(o *APIOptions) {
		o.ctx = ctx
	}
}

// WithParams returns an APIOption that sets the params for an API call. The params provided must be the correct type for the call or an error will be thrown by the call.
func WithParams(params interface{}) APIOption {
	return func(o *APIOptions) {
		o.params = params
	}
}

func isSet(val interface{}) bool {
	return !(val == nil || reflect.DeepEqual(val, reflect.Zero(reflect.TypeOf(val)).Interface()))
}

// GenericOpenAPIError Provides access to the body, error and model on returned errors.
type GenericOpenAPIError struct {
	body  []byte
	error string
	model interface{}
}

// Error returns non-empty string if there was an error.
func (e GenericOpenAPIError) Error() string {
	return e.error
}

// Body returns the raw bytes of the response
func (e GenericOpenAPIError) Body() []byte {
	return e.body
}

// Model returns the unpacked model of the error
func (e GenericOpenAPIError) Model() interface{} {
	return e.model
}

// Below are the custom Mux API Error types, so that users of the SDK can identify
// what issue they're running into more easily.

// Generic 400 error
type BadRequestError struct {
	body  []byte
	error string
}

func (e BadRequestError) Error() string {
	return e.error
}

// 401 Error
type UnauthorizedError struct {
	body  []byte
	error string
}

func (e UnauthorizedError) Error() string {
	return e.error
}

func (e UnauthorizedError) Body() []byte {
	return e.body
}

// 403 Error
type ForbiddenError struct {
	body  []byte
	error string
}

func (e ForbiddenError) Error() string {
	return e.error
}

func (e ForbiddenError) Body() []byte {
	return e.body
}

// 404 Error
type NotFoundError struct {
	body  []byte
	error string
}

func (e NotFoundError) Error() string {
	return e.error
}

func (e NotFoundError) Body() []byte {
	return e.body
}

// 429 Error
type TooManyRequestsError struct {
	body  []byte
	error string
}

func (e TooManyRequestsError) Error() string {
	return e.error
}

func (e TooManyRequestsError) Body() []byte {
	return e.body
}

// 5XX Error
type ServiceError struct {
	body   []byte
	status int
	error  string
}

func (e ServiceError) Error() string {
	return e.error
}

func (e ServiceError) Body() []byte {
	return e.body
}

func (e ServiceError) Code() int {
	return e.status
}

// Helper to check for common non-200 errors
func CheckForHttpError(code int, body []byte) error {

	if code >= 200 && code <= 299 {
		return nil
	}

	switch code {
	case 400:
		return BadRequestError{body: body, error: "Bad Request"}
	case 401:
		return UnauthorizedError{body: body, error: "Unauthorized"}
	case 403:
		return ForbiddenError{body: body, error: "Forbidden"}
	case 404:
		return NotFoundError{body: body, error: "Not Found"}
	case 429:
		return TooManyRequestsError{body: body, error: "Too Many Requests"}
	}

	if code >= 500 && code <= 599 {
		return ServiceError{body: body, status: code, error: "Service Error"}
	}

	return GenericOpenAPIError{body: body, error: "Generic Error"}
}

repository: muxinc/mux-go

repo_name: muxinc/mux-go