text:
.4983" x2="7.4676" y2="24.5364" layer="25" rot="R90"/>
<rectangle x1="7.0866" y1="25.7175" x2="7.1628" y2="25.7556" layer="25" rot="R90"/>
<rectangle x1="6.9723" y1="26.2128" x2="7.2771" y2="26.2509" layer="25" rot="R90"/>
<rectangle x1="6.9342" y1="18.5928" x2="7.239" y2="18.6309" layer="25" rot="R90"/>
<rectangle x1="7.0485" y1="19.05" x2="7.1247" y2="19.0881" layer="25" rot="R90"/>
<rectangle x1="6.7437" y1="20.193" x2="7.4295" y2="20.2311" layer="25" rot="R90"/>
<rectangle x1="6.61035" y1="22.38375" x2="7.56285" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.76275" y1="24.55545" x2="7.41045" y2="24.59355" layer="25" rot="R90"/>
<rectangle x1="7.02945" y1="25.69845" x2="7.14375" y2="25.73655" layer="25" rot="R90"/>
<rectangle x1="6.9342" y1="26.1366" x2="7.239" y2="26.1747" layer="25" rot="R90"/>
<rectangle x1="6.91515" y1="18.64995" x2="7.18185" y2="18.68805" layer="25" rot="R90"/>
<rectangle x1="6.99135" y1="19.06905" x2="7.10565" y2="19.10715" layer="25" rot="R90"/>
<rectangle x1="6.68655" y1="20.13585" x2="7.41045" y2="20.17395" layer="25" rot="R90"/>
<rectangle x1="6.53415" y1="22.38375" x2="7.56285" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.7056" y1="24.6126" x2="7.3914" y2="24.6507" layer="25" rot="R90"/>
<rectangle x1="6.99135" y1="25.66035" x2="7.10565" y2="25.69845" layer="25" rot="R90"/>
<rectangle x1="6.91515" y1="26.04135" x2="7.18185" y2="26.07945" layer="25" rot="R90"/>
<rectangle x1="6.83895" y1="18.76425" x2="7.18185" y2="18.80235" layer="25" rot="R90"/>
<rectangle x1="6.91515" y1="19.10715" x2="7.10565" y2="19.14525" layer="25" rot="R90"/>
<rectangle x1="6.6294" y1="20.1168" x2="7.3914" y2="20.1549" layer="25" rot="R90"/>
<rectangle x1="6.57225" y1="22.26945" x2="7.44855" y2="22.30755" layer="25" rot="R90"/>
<rectangle x1="6.91515" y1="22.84095" x2="7.10565" y2="22.87905" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="24.63165" x2="7.37235" y2="24.66975" layer="25" rot="R90"/>
<rectangle x1="6.8961" y1="25.6413" x2="7.1247" y2="25.6794" layer="25" rot="R90"/>
<rectangle x1="6.87705" y1="25.92705" x2="7.14375" y2="25.96515" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="18.99285" x2="7.29615" y2="19.03095" layer="25" rot="R90"/>
<rectangle x1="6.53415" y1="20.05965" x2="7.41045" y2="20.09775" layer="25" rot="R90"/>
<rectangle x1="6.87705" y1="21.85035" x2="7.06755" y2="21.88845" layer="25" rot="R90"/>
<rectangle x1="6.68655" y1="22.38375" x2="7.25805" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.87705" y1="22.91715" x2="7.06755" y2="22.95525" layer="25" rot="R90"/>
<rectangle x1="6.5532" y1="24.6507" x2="7.3914" y2="24.6888" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="25.6794" x2="7.2771" y2="25.7175" layer="25" rot="R90"/>
<rectangle x1="6.80085" y1="18.91665" x2="7.06755" y2="18.95475" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="19.45005" x2="7.21995" y2="19.48815" layer="25" rot="R90"/>
<rectangle x1="6.61035" y1="20.17395" x2="7.25805" y2="20.21205" layer="25" rot="R90"/>
<rectangle x1="6.83895" y1="21.81225" x2="7.02945" y2="21.85035" layer="25" rot="R90"/>
<rectangle x1="6.7056" y1="22.4028" x2="7.1628" y2="22.4409" layer="25" rot="R90"/>
<rectangle x1="6.83895" y1="22.95525" x2="7.02945" y2="22.99335" layer="25" rot="R90"/>
<rectangle x1="6.6294" y1="24.5745" x2="7.239" y2="24.6126" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="25.2603" x2="7.2009" y2="25.2984" layer="25" rot="R90"/>
<rectangle x1="6.8199" y1="25.7937" x2="7.0485" y2="25.8318" layer="25" rot="R90"/>
<rectangle x1="6.8199" y1="18.9357" x2="6.9723" y2="18.9738" layer="25" rot="R90"/>
<rectangle x1="6.7437" y1="19.5072" x2="7.0485" y2="19.5453" layer="25" rot="R90"/>
<rectangle x1="6.83895" y1="19.90725" x2="6.95325" y2="19.94535" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="20.2311" x2="7.1247" y2="20.2692" layer="25" rot="R90"/>
<rectangle x1="6.8199" y1="21.7551" x2="6.9723" y2="21.7932" layer="25" rot="R90"/>
<rectangle x1="6.68655" y1="22.38375" x2="7.10565" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.8199" y1="23.0124" x2="6.9723" y2="23.0505" layer="25" rot="R90"/>
<rectangle x1="6.61035" y1="24.59355" x2="7.18185" y2="24.63165" layer="25" rot="R90"/>
<rectangle x1="6.76275" y1="25.20315" x2="7.02945" y2="25.24125" layer="25" rot="R90"/>
<rectangle x1="6.83895" y1="25.77465" x2="6.95325" y2="25.81275" layer="25" rot="R90"/>
<rectangle x1="6.80085" y1="18.95475" x2="6.91515" y2="18.99285" layer="25" rot="R90"/>
<rectangle x1="6.80085" y1="19.86915" x2="6.91515" y2="19.90725" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="20.2311" x2="7.0485" y2="20.2692" layer="25" rot="R90"/>
<rectangle x1="6.7818" y1="21.717" x2="6.9342" y2="21.7551" layer="25" rot="R90"/>
<rectangle x1="6.68655" y1="22.38375" x2="7.02945" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.7818" y1="23.0505" x2="6.9342" y2="23.0886" layer="25" rot="R90"/>
<rectangle x1="6.5913" y1="24.6507" x2="7.1247" y2="24.6888" layer="25" rot="R90"/>
<rectangle x1="6.80085" y1="25.77465" x2="6.91515" y2="25.81275" layer="25" rot="R90"/>
<rectangle x1="6.76275" y1="18.95475" x2="6.87705" y2="18.99285" layer="25" rot="R90"/>
<rectangle x1="6.7437" y1="19.8501" x2="6.8961" y2="19.8882" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="20.2311" x2="6.9723" y2="20.2692" layer="25" rot="R90"/>
<rectangle x1="6.7437" y1="21.6408" x2="6.8961" y2="21.6789" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="22.38375" x2="6.99135" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.7437" y1="23.1267" x2="6.8961" y2="23.1648" layer="25" rot="R90"/>
<rectangle x1="6.68655" y1="24.51735" x2="6.95325" y2="24.55545" layer="25" rot="R90"/>
<rectangle x1="6.7437" y1="24.8793" x2="6.8961" y2="24.9174" layer="25" rot="R90"/>
<rectangle x1="6.76275" y1="25.77465" x2="6.87705" y2="25.81275" layer="25" rot="R90"/>
<rectangle x1="6.72465" y1="18.95475" x2="6.83895" y2="18.99285" layer="25" rot="R90"/>
<rectangle x1="6.7056" y1="19.812" x2="6.858" y2="19.8501" layer="25" rot="R90"/>
<rectangle x1="6.6294" y1="20.2692" x2="6.9342" y2="20.3073" layer="25" rot="R90"/>
<rectangle x1="6.7056" y1="21.6027" x2="6.858" y2="21.6408" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="22.38375" x2="6.91515" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.7056" y1="23.1648" x2="6.858" y2="23.2029" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="24.47925" x2="6.91515" y2="24.51735" layer="25" rot="R90"/>
<rectangle x1="6.7056" y1="24.9174" x2="6.858" y2="24.9555" layer="25" rot="R90"/>
<rectangle x1="6.7437" y1="25.7937" x2="6.8199" y2="25.8318" layer="25" rot="R90"/>
<rectangle x1="6.68655" y1="18.95475" x2="6.80085" y2="18.99285" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="19.7739" x2="6.8199" y2="19.812" layer="25" rot="R90"/>
<rectangle x1="6.6294" y1="20.2692" x2="6.858" y2="20.3073" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="21.5265" x2="6.8199" y2="21.5646" layer="25" rot="R90"/>
<rectangle x1="6.61035" y1="22.38375" x2="6.87705" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.68655" y1="23.22195" x2="6.80085" y2="23.26005" layer="25" rot="R90"/>
<rectangle x1="6.6294" y1="24.4602" x2="6.858" y2="24.4983" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="24.9555" x2="6.8199" y2="24.9936" layer="25" rot="R90"/>
<rectangle x1="6.7056" y1="25.7937" x2="6.7818" y2="25.8318" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="18.95475" x2="6.76275" y2="18.99285" layer="25" rot="R90"/>
<rectangle x1="6.61035" y1="19.71675" x2="6.80085" y2="19.75485" layer="25" rot="R90"/>
<rectangle x1="6.5913" y1="20.2692" x2="6.8199" y2="20.3073" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="21.46935" x2="6.76275" y2="21.50745" layer="25" rot="R90"/>
<rectangle x1="6.57225" y1="22.38375" x2="6.83895" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.64845" y1="23.29815" x2="6.76275" y2="23.33625" layer="25" rot="R90"/>
<rectangle x1="6.5913" y1="24.4983" x2="6.8199" y2="24.5364" layer="25" rot="R90"/>
<rectangle x1="6.61035" y1="25.01265" x2="6.80085" y2="25.05075" layer="25" rot="R90"/>
<rectangle x1="6.6675" y1="25.7937" x2="6.7437" y2="25.8318" layer="25" rot="R90"/>
<rectangle x1="6.61035" y1="18.95475" x2="6.72465" y2="18.99285" layer="25" rot="R90"/>
<rectangle x1="6.5532" y1="19.6596" x2="6.7818" y2="19.6977" layer="25" rot="R90"/>
<rectangle x1="6.57225" y1="20.25015" x2="6.76275" y2="20.28825" layer="25" rot="R90"/>
<rectangle x1="6.6294" y1="21.4122" x2="6.7056" y2="21.4503" layer="25" rot="R90"/>
<rectangle x1="6.53415" y1="22.38375" x2="6.80085" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.61035" y1="23.33625" x2="6.72465" y2="23.37435" layer="25" rot="R90"/>
<rectangle x1="6.57225" y1="24.51735" x2="6.76275" y2="24.55545" layer="25" rot="R90"/>
<rectangle x1="6.5532" y1="25.0698" x2="6.7818" y2="25.1079" layer="25" rot="R90"/>
<rectangle x1="6.5913" y1="25.7937" x2="6.7437" y2="25.8318" layer="25" rot="R90"/>
<rectangle x1="6.5532" y1="18.9738" x2="6.7056" y2="19.0119" layer="25" rot="R90"/>
<rectangle x1="6.5151" y1="19.5834" x2="6.7437" y2="19.6215" layer="25" rot="R90"/>
<rectangle x1="6.5532" y1="20.2311" x2="6.7056" y2="20.2692" layer="25" rot="R90"/>
<rectangle x1="6.57225" y1="21.35505" x2="6.68655" y2="21.39315" layer="25" rot="R90"/>
<rectangle x1="6.49605" y1="22.38375" x2="6.76275" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.57225" y1="23.41245" x2="6.68655" y2="23.45055" layer="25" rot="R90"/>
<rectangle x1="6.5532" y1="24.5364" x2="6.7056" y2="24.5745" layer="25" rot="R90"/>
<rectangle x1="6.5151" y1="25.146" x2="6.7437" y2="25.1841" layer="25" rot="R90"/>
<rectangle x1="6.53415" y1="25.73655" x2="6.72465" y2="25.77465" layer="25" rot="R90"/>
<rectangle x1="6.4389" y1="19.05" x2="6.7437" y2="19.0881" layer="25" rot="R90"/>
<rectangle x1="6.4008" y1="19.4691" x2="6.7818" y2="19.5072" layer="25" rot="R90"/>
<rectangle x1="6.5151" y1="20.193" x2="6.6675" y2="20.2311" layer="25" rot="R90"/>
<rectangle x1="6.53415" y1="21.27885" x2="6.64845" y2="21.31695" layer="25" rot="R90"/>
<rectangle x1="6.45795" y1="22.38375" x2="6.72465" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.5532" y1="23.4696" x2="6.6294" y2="23.5077" layer="25" rot="R90"/>
<rectangle x1="6.49605" y1="24.55545" x2="6.68655" y2="24.59355" layer="25" rot="R90"/>
<rectangle x1="6.2103" y1="25.4508" x2="6.9723" y2="25.4889" layer="25" rot="R90"/>
<rectangle x1="6.22935" y1="19.25955" x2="6.87705" y2="19.29765" layer="25" rot="R90"/>
<rectangle x1="6.41985" y1="20.25015" x2="6.68655" y2="20.28825" layer="25" rot="R90"/>
<rectangle x1="6.5151" y1="21.2217" x2="6.5913" y2="21.2598" layer="25" rot="R90"/>
<rectangle x1="6.38175" y1="22.38375" x2="6.72465" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.5151" y1="23.5458" x2="6.5913" y2="23.5839" layer="25" rot="R90"/>
<rectangle x1="6.41985" y1="24.51735" x2="6.68655" y2="24.55545" layer="25" rot="R90"/>
<rectangle x1="6.2484" y1="25.4508" x2="6.858" y2="25.4889" layer="25" rot="R90"/>
<rectangle x1="6.30555" y1="19.25955" x2="6.72465" y2="19.29765" layer="25" rot="R90"/>
<rectangle x1="6.4008" y1="20.2311" x2="6.6294" y2="20.2692" layer="25" rot="R90"/>
<rectangle x1="6.477" y1="21.1455" x2="6.5532" y2="21.1836" layer="25" rot="R90"/>
<rectangle x1="6.34365" y1="22.38375" x2="6.68655" y2="22.42185" layer="25" rot="R90"/>
<rectangle x1="6.4008" y1="24.5364" x2="6.6294" y2="24.5745" layer="25" rot="R90"/>
<rectangle x1="6.34365" y1="25.46985" x2="6.68655" y2="25.50795" layer="25" rot="R90"/>
<rectangle x1="6.38175" y1="20.21205" x2="6.57225" y2="20.25015" layer="25" rot="R90"/>
<rectangle x1="6.4008" y1="22.2885" x2="6.5532" y2="22.3266" layer="25" rot="R90"/>
<rectangle x1="6.4008" y1="22.479" x2="6.5532" y2="22.5171" layer="25" rot="R90"/>
<rectangle x1="6.38175" y1="24.55545" x2="6.57225" y2="24.59355" layer="25" rot="R90"/>
<rectangle x1="6.34365" y1="20.17395" x2="6.53415" y2="20.21205" layer="25" rot="R90"/>
<rectangle x1="6.34365" y1="22.26945" x2="6.53415" y2="22.30755" layer="25" rot="R90"/>
<rectangle x1="6.34365" y1="22.49805" x2="6.53415" y2="22.53615" layer="25" rot="R90"/>
<rectangle x1="6.3627" y1="24.5745" x2="6.5151" y2="24.6126" layer="25" rot="R90"/>
<rectangle x1="6.3246" y1="20.1549" x2="6.477" y2="20.193" layer="25" rot="R90"/>
<rectangle x1="6.3246" y1="22.2504" x2="6.477" y2="22.2885" layer="25" rot="R90"/>
<rectangle x1="6.3246" y1="22.5171" x2="6.477" y2="22.5552" layer="25" rot="R90"/>
<rectangle x1="6.34365" y1="24.59355" x2="6.45795" y2="24.63165" layer="25" rot="R90"/>
<rectangle x1="6.2865" y1="20.1549" x2="6.4389" y2="20.193" layer="25" rot="R90"/>
<rectangle x1="6.2865" y1="22.2504" x2="6.4389" y2="22.2885" layer="25" rot="R90"/>
<rectangle x1="6.26745" y1="22.53615" x2="6.45795" y2="22.57425" layer="25" rot="R90"/>
<rectangle x1="6.2865" y1="24.6126" x2="6.4389" y2="24.6507" layer="25" rot="R90"/>
<rectangle x1="6.19125" y1="20.21205" x2="6.45795" y2="20.25015" layer="25" rot="R90"/>
<rectangle x1="6.2484" y1="22.2123" x2="6.4008" y2="22.2504" layer="25" rot="R90"/>
<rectangle x1="6.2484" y1="22.5552" x2="6.4008" y2="22.5933" layer="25" rot="R90"/>
<rectangle x1="6.2103" y1="24.5745" x2="6.4389" y2="24.6126" layer="25" rot="R90"/>
<rectangle x1="6.15315" y1="20.21205" x2="6.41985" y2="20.25015" layer="25" rot="R90"/>
<rectangle x1="6.19125" y1="22.19325" x2="6.38175" y2="22.23135" layer="25" rot="R90"/>
<rectangle x1="6.19125" y1="22.57425" x2="6.38175" y2="22.61235" layer="25" rot="R90"/>
<rectangle x1="6.1722" y1="24.5745" x2="6.4008" y2="24.6126" layer="25" rot="R90"/>
<rectangle x1="6.1341" y1="20.193" x2="6.3627" y2="20.2311" layer="25" rot="R90"/>
<rectangle x1="6.1722" y1="22.1742" x2="6.3246" y2="22.2123" layer="25" rot="R90"/>
<rectangle x1="6.1722" y1="22.5933" x2="6.3246" y2="22.6314" layer="25" rot="R90"/>
<rectangle x1="6.1341" y1="24.5745" x2="6.3627" y2="24.6126" layer="25" rot="R90"/>
<rectangle x1="6.11505" y1="20.17395" x2="6.30555" y2="20.21205" layer="25" rot="R90"/>
<rectangle x1="6.1341" y1="22.1361" x2="6.2865" y2="22.1742" layer="25" rot="R90"/>
<rectangle x1="6.11505" y1="22.61235" x2="6.30555" y2="22.65045" layer="25" rot="R90"/>
<rectangle x1="6.11505" y1="24.59355" x2="6.30555" y2="24.63165" layer="25" rot="R90"/>
<rectangle x1="6.07695" y1="20.17395" x2="6.26745" y2="20.21205" layer="25" rot="R90"/>
<rectangle x1="6.07695" y1="22.11705" x2="6.26745" y2="22.15515" layer="25" rot="R90"/>
<rectangle x1="6.07695" y1="22.65045" x2="6.26745" y2="22.68855" layer="25" rot="R90"/>
<rectangle x1="6.07695" y1="24.59355" x2="6.26745" y2="24.63165" layer="25" rot="R90"/>
<rectangle x1="6.03885" y1="20.17395" x2="6.22935" y2="20.21205" layer="25" rot="R90"/>
<rectangle x1="6.11505" y1="21.92655" x2="6.15315" y2="21.96465" layer="25" rot="R90"/>
<rectangle x1="6.03885" y1="22.07895" x2="6.22935" y2="22.11705" layer="25" rot="R90"/>
<rectangle x1="6.03885" y1="22.68855" x2="6.22935" y2="22.72665" layer="25" rot="R90"/>
<rectangle x1="6.03885" y1="24.59355" x2="6.22935" y2="24.63165" layer="25" rot="R90"/>
<rectangle x1="5.9055" y1="20.3073" x2="6.2865" y2="20.3454" layer="25" rot="R90"/>
<rectangle x1="5.9436" y1="21.9837" x2="6.2484" y2="22.0218" layer="25" rot="R90"/>
<rectangle x1="5.92455" y1="22.76475" x2="6.26745" y2="22.80285" layer="25" rot="R90"/>
<rectangle x1="5.9055" y1="24.4983" x2="6.2865" y2="24.5364" layer="25" rot="R90"/>
<rectangle x1="5.8674" y1="20.3073" x2="6.2484" y2="20.3454" layer="25" rot="R90"/>
<rectangle x1="6.03885" y1="21.65985" x2="6.07695" y2="21.69795" layer="25" rot="R90"/>
<rectangle x1="5.88645" y1="21.96465" x2="6.22935" y2="22.00275" layer="25" rot="R90"/>
<rectangle x1="5.88645" y1="22.80285" x2="6.22935" y2="22.84095" layer="25" rot="R90"/>
<rectangle x1="5.8674" y1="24.4602" x2="6.2484" y2="24.4983" layer="25" rot="R90"/>
<rectangle x1="5.8293" y1="20.3073" x2="6.2103" y2="20.3454" layer="25" rot="R90"/>
<rectangle x1="5.9436" y1="20.6883" x2="6.096" y2="20.7264" layer="25" rot="R90"/>
<rectangle x1="5.9817" y1="21.6408" x2="6.0579" y2="21.6789" layer="25" rot="R90"/>
<rectangle x1="5.84835" y1="21.92655" x2="6.19125" y2="21.96465" layer="25" rot="R90"/>
<rectangle x1="5.84835" y1="22.84095" x2="6.19125" y2="22.87905" layer="25" rot="R90"/>
<rectangle x1="5.96265" y1="23.10765" x2="6.07695" y2="23.14575" layer="25" rot="R90"/>
<rectangle x1="5.96265" y1="24.06015" x2="6.07695" y2="24.09825" layer="25" rot="R90"/>
<rectangle x1="5.8293" y1="24.4602" x2="6.2103" y2="24.4983" layer="25" rot="R90"/>
<rectangle x1="5.69595" y1="20.47875" x2="6.26745" y2="20.51685" layer="25" rot="R90"/>
<rectangle x1="5.92455" y1="20.97405" x2="6.03885" y2="21.01215" layer="25" rot="R90"/>
<rectangle x1="5.96265" y1="21.43125" x2="6.00075" y2="21.46935" layer="25" rot="R90"/>
<rectangle x1="5.7531" y1="21.7932" x2="6.2103" y2="21.8313" layer="25" rot="R90"/>
<rectangle x1="5.7531" y1="22.9743" x2="6.2103" y2="23.0124" layer="25" rot="R90"/>
<rectangle x1="5.9436" y1="23.3172" x2="6.0198" y2="23.3553" layer="25" rot="R90"/>
<rectangle x1="5.9436" y1="23.8125" x2="6.0198" y2="23.8506" layer="25" rot="R90"/>
<rectangle x1="5.69595" y1="24.28875" x2="6.26745" y2="24.32685" layer="25" rot="R90"/>
<rectangle x1="5.6007" y1="20.6502" x2="6.2865" y2="20.6883" layer="25" rot="R90"/>
<rectangle x1="5.88645" y1="21.16455" x2="6.00075" y2="21.20265" layer="25" rot="R90"/>
<rectangle x1="5.88645" y1="21.39315" x2="6.00075" y2="21.43125" layer="25" rot="R90"/>
<rectangle x1="5.73405" y1="21.73605" x2="6.15315" y2="21.77415" layer="25" rot="R90"/>
<rectangle x1="5.6388" y1="23.1267" x2="6.2484" y2="23.1648" layer="25" rot="R90"/>
<rectangle x1="5.9055" y1="23.5839" x2="5.9817" y2="23.622" layer="25" rot="R90"/>
<rectangle x1="5.61975" y1="24.09825" x2="6.26745" y2="24.13635" layer="25" rot="R90"/>
<rectangle x1="5.4864" y1="20.8026" x2="6.3246" y2="20.8407" layer="25" rot="R90"/>
<rectangle x1="5.6007" y1="21.5646" x2="6.2103" y2="21.6027" layer="25" rot="R90"/>
<rectangle x1="5.61975" y1="23.18385" x2="6.19125" y2="23.22195" layer="25" rot="R90"/>
<rectangle x1="5.4864" y1="23.9649" x2="6.3246" y2="24.003" layer="25" rot="R90"/>
<rectangle x1="5.27685" y1="21.20265" x2="6.45795" y2="21.24075" layer="25" rot="R90"/>
<rectangle x1="5.2578" y1="23.5839" x2="6.477" y2="23.622" layer="25" rot="R90"/>
<rectangle x1="5.334" y1="21.1836" x2="6.3246" y2="21.2217" layer="25" rot="R90"/>
<rectangle x1="5.31495" y1="23.60295" x2="6.34365" y2="23.64105" layer="25" rot="R90"/>
<rectangle x1="5.46735" y1="21.16455" x2="6.11505" y2="21.20265" layer="25" rot="R90"/>
<rectangle x1="5.46735" y1="23.60295" x2="6.11505" y2="23.64105" layer="25" rot="R90"/>
</plain>
<libraries>
<library name="con-tycoelectronics" urn="urn:adsk.eagle:library:193">
<description>Tyco Electronics Connector

http://catalog.tycoelectronics.com

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="RJ45-NO-SHIELD" urn="urn:adsk.eagle:footprint:10651/1" library_version="2">
<description>RJ45 Low Profile No Shield

For all RJ45 N and Z Series Models

Source: www.tycoelectronics.com .. ENG_DS_1654001_1099_RJ_L_0507.pdf</description>
<wire x1="-7.527" y1="10.819" x2="7.527" y2="10.819" width="0.2032" layer="21"/>
<wire x1="8.4455" y1="-5.5118" x2="-8.4455" y2="-5.5118" width="0.01" layer="20"/>
<wire x1="7.527" y1="-7.782" x2="-7.527" y2="-7.782" width="0.2032" layer="21"/>
<wire x1="-7.527" y1="-7.782" x2="-7.527" y2="10.819" width="0.2032" layer="21"/>
<wire x1="7.527" y1="10.819" x2="7.527" y2="-7.782" width="0.2032" layer="21"/>
<pad name="4" x="-0.635" y="8.89" drill="0.9" diameter="1.4"/>
<pad name="3" x="-1.905" y="6.35" drill="0.9" diameter="1.4"/>
<pad name="2" x="-3.175" y="8.89" drill="0.9" diameter="1.4"/>
<pad name="5" x="0.635" y="6.35" drill="0.9" diameter="1.4"/>
<pad name="1" x="-4.445" y="6.35" drill="0.9" diameter="1.4"/>
<pad name="6" x="1.905" y="8.89" drill="0.9" diameter="1.4"/>
<pad name="7" x="3.175" y="6.35" drill="0.9" diameter="1.4"/>
<pad name="8" x="4.445" y="8.89" drill="0.9" diameter="1.4"/>
<text x="-9.525" y="-0.635" size="1.778" layer="25" rot="R90">>NAME</text>
<text x="-5.715" y="2.54" size="1.778" layer="27">>VALUE</text>
<rectangle x1="7.6" y1="-5.485" x2="8.875" y2="-4.342" layer="21"/>
<rectangle x1="-8.875" y1="-5.485" x2="-7.625" y2="-4.342" layer="21"/>
<hole x="-5.715" y="0" drill="3.2512"/>
<hole x="5.715" y="0" drill="3.2512"/>
</package>
</packages>
<packages3d>
<package3d name="RJ45-NO-SHIELD" urn="urn:adsk.eagle:package:10660/1" type="box" library_version="2">
<description>RJ45 Low Profile No Shield
For all RJ45 N and Z Series Models
Source: www.tycoelectronics.com .. ENG_DS_1654001_1099_RJ_L_0507.pdf</description>
<packageinstances>
<packageinstance name="RJ45-NO-SHIELD"/>
</packageinstances>
</package3d>
</packages3d>
</library>
<library name="con-wago-500" urn="urn:adsk.eagle:library:195">
<description>Wago Screw Clamps

Grid 5.00 mm

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="W237-103" urn="urn:adsk.eagle:footprint:10678/1" library_version="2">
<description>WAGO SCREW CLAMP</description>
<wire x1="4.093" y1="-2.255" x2="5.897" y2="-0.299" width="0.254" layer="51"/>
<wire x1="-0.911" y1="-2.331" x2="0.994" y2="-0.299" width="0.254" layer="51"/>
<wire x1="-5.991" y1="-2.306" x2="-3.984" y2="-0.299" width="0.254" layer="51"/>
<wire x1="-7.489" y1="-5.481" x2="7.497" y2="-5.481" width="0.1524" layer="21"/>
<wire x1="7.497" y1="3.714" x2="7.497" y2="3.511" width="0.1524" layer="21"/>
<wire x1="7.497" y1="3.714" x2="-7.489" y2="3.714" width="0.1524" layer="21"/>
<wire x1="-7.489" y1="-5.481" x2="-7.489" y2="-3.093" width="0.1524" layer="21"/>
<wire x1="-7.489" y1="-3.093" x2="-5.889" y2="-3.093" width="0.1524" layer="21"/>
<wire x1="-5.889" y1="-3.093" x2="-4.111" y2="-3.093" width="0.1524" layer="51"/>
<wire x1="-4.111" y1="-3.093" x2="-0.885" y2="-3.093" width="0.1524" layer="21"/>
<wire x1="0.893" y1="-3.093" x2="4.119" y2="-3.093" width="0.1524" layer="21"/>
<wire x1="5.897" y1="-3.093" x2="7.497" y2="-3.093" width="0.1524" layer="21"/>
<wire x1="-7.489" y1="-3.093" x2="-7.489" y2="3.511" width="0.1524" layer="21"/>
<wire x1="7.497" y1="-3.093" x2="7.497" y2="-5.481" width="0.1524" layer="21"/>
<wire x1="7.497" y1="3.511" x2="-7.489" y2="3.511" width="0.1524" layer="21"/>
<wire x1="7.497" y1="3.511" x2="7.497" y2="-3.093" width="0.1524" layer="21"/>
<wire x1="-7.489" y1="3.511" x2="-7.489" y2="3.714" width="0.1524" layer="21"/>
<wire x1="-0.885" y1="-3.093" x2="0.893" y2="-3.093" width="0.1524" layer="51"/>
<wire x1="4.119" y1="-3.093" x2="5.897" y2="-3.093" width="0.1524" layer="51"/>
<circle x="-5" y="-1.29" radius="1.4986" width="0.1524" layer="51"/>
<circle x="5.0076" y="-1.29" radius="1.4986" width="0.1524" layer="51"/>
<circle x="-5" y="2.1898" radius="0.508" width="0.1524" layer="21"/>
<circle x="5.0076" y="2.1898" radius="0.508" width="0.1524" layer="21"/>
<circle x="0.0038" y="-1.29" radius="1.4986" width="0.1524" layer="51"/>
<circle x="0.0038" y="2.1898" radius="0.508" width="0.1524" layer="21"/>
<pad name="1" x="-5" y="-1.29" drill="1.1938" shape="long" rot="R90"/>
<pad name="2" x="0" y="-1.29" drill="1.1938" shape="long" rot="R90"/>
<pad name="3" x="5" y="-1.29" drill="1.1938" shape="long" rot="R90"/>
<text x="-6.905" y="0.615" size="1.27" layer="51" ratio="10">1</text>
<text x="-1.8504" y="0.5642" size="1.27" layer="51" ratio="10">2</text>
<text x="3.1534" y="0.615" size="1.27" layer="51" ratio="10">3</text>
<text x="-5.3048" y="-4.9476" size="1.27" layer="27" ratio="10">>VALUE</text>
<text x="-5.6858" y="-7.4622" size="1.27" layer="25" ratio="10">>NAME</text>
</package>
<package name="W237-102" urn="urn:adsk.eagle:footprint:10676/1" library_version="2">
<description>WAGO SCREW CLAMP</description>
<wire x1="-3.491" y1="-2.286" x2="-1.484" y2="-0.279" width="0.254" layer="51"/>
<wire x1="1.488" y1="-2.261" x2="3.469" y2="-0.254" width="0.254" layer="51"/>
<wire x1="-4.989" y1="-5.461" x2="4.993" y2="-5.461" width="0.1524" layer="21"/>
<wire x1="4.993" y1="3.734" x2="4.993" y2="3.531" width="0.1524" layer="21"/>
<wire x1="4.993" y1="3.734" x2="-4.989" y2="3.734" width="0.1524" layer="21"/>
<wire x1="-4.989" y1="-5.461" x2="-4.989" y2="-3.073" width="0.1524" layer="21"/>
<wire x1="-4.989" y1="-3.073" x2="-3.389" y2="-3.073" width="0.1524" layer="21"/>
<wire x1="-3.389" y1="-3.073" x2="-1.611" y2="-3.073" width="0.1524" layer="51"/>
<wire x1="-1.611" y1="-3.073" x2="1.615" y2="-3.073" width="0.1524" layer="21"/>
<wire x1="3.393" y1="-3.073" x2="4.993" y2="-3.073" width="0.1524" layer="21"/>
<wire x1="-4.989" y1="-3.073" x2="-4.989" y2="3.531" width="0.1524" layer="21"/>
<wire x1="4.993" y1="-3.073" x2="4.993" y2="-5.461" width="0.1524" layer="21"/>
<wire x1="-4.989" y1="3.531" x2="4.993" y2="3.531" width="0.1524" layer="21"/>
<wire x1="-4.989" y1="3.531" x2="-4.989" y2="3.734" width="0.1524" layer="21"/>
<wire x1="4.993" y1="3.531" x2="4.993" y2="-3.073" width="0.1524" layer="21"/>
<wire x1="1.615" y1="-3.073" x2="3.393" y2="-3.073" width="0.1524" layer="51"/>
<circle x="-2.5" y="-1.27" radius="1.4986" width="0.1524" layer="51"/>
<circle x="-2.5" y="2.2098" radius="0.508" width="0.1524" layer="21"/>
<circle x="2.5038" y="-1.27" radius="1.4986" width="0.1524" layer="51"/>
<circle x="2.5038" y="2.2098" radius="0.508" width="0.1524" layer="21"/>
<pad name="1" x="-2.5" y="-1.27" drill="1.1938" shape="long" rot="R90"/>
<pad name="2" x="2.5" y="-1.27" drill="1.1938" shape="long" rot="R90"/>
<text x="-5.04" y="-7.62" size="1.27" layer="27" ratio="10">>VALUE</text>
<text x="-3.8462" y="-5.0038" size="1.27" layer="25" ratio="10">>NAME</text>
<text x="-4.532" y="0.635" size="1.27" layer="21" ratio="10">1</text>
<text x="0.421" y="0.635" size="1.27" layer="21" ratio="10">2</text>
</package>
</packages>
<packages3d>
<package3d name="W237-103" urn="urn:adsk.eagle:package:10691/1" type="box" library_version="2">
<description>WAGO SCREW CLAMP</description>
<packageinstances>
<packageinstance name="W237-103"/>
</packageinstances>
</package3d>
<package3d name="W237-102" urn="urn:adsk.eagle:package:10688/1" type="box" library_version="2">
<description>WAGO SCREW CLAMP</description>
<packageinstances>
<packageinstance name="W237-102"/>
</packageinstances>
</package3d>
</packages3d>
</library>
<library name="holes" urn="urn:adsk.eagle:library:237">
<description>Mounting Holes and Pads

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="3,0" urn="urn:adsk.eagle:footprint:14240/1" library_version="2">
<description>MOUNTING HOLE 3.0 mm with drill center</description>
<wire x1="-2.159" y1="0" x2="0" y2="-2.159" width="2.4892" layer="51" curve="90" cap="flat"/>
<wire x1="0" y1="2.159" x2="2.159" y2="0" width="2.4892" layer="51" curve="-90" cap="flat"/>
<circle x="0" y="0" radius="3.429" width="0.1524" layer="21"/>
<circle x="0" y="0" radius="0.762" width="0.4572" layer="51"/>
<circle x="0" y="0" radius="3.048" width="2.032" layer="39"/>
<circle x="0" y="0" radius="3.048" width="2.032" layer="43"/>
<circle x="0" y="0" radius="3.048" width="2.032" layer="40"/>
<circle x="0" y="0" radius="3.048" width="2.032" layer="41"/>
<circle x="0" y="0" radius="3.048" width="2.032" layer="42"/>
<circle x="0" y="0" radius="1.6" width="0.2032" layer="21"/>
<text x="-1.27" y="-3.81" size="1.27" layer="48">3,0</text>
<hole x="0" y="0" drill="3"/>
</package>
</packages>
<packages3d>
<package3d name="3,0" urn="urn:adsk.eagle:package:14277/1" type="box" library_version="2">
<description>MOUNTING HOLE 3.0 mm with drill center</description>
<packageinstances>
<packageinstance name="3,0"/>
</packageinstances>
</package3d>
</packages3d>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="default">
<description language="de">EAGLE Design Rules

Die Standard-Design-Rules sind so gewählt, dass sie für
die meisten Anwendungen passen. Sollte ihre Platine
besondere Anforderungen haben, treffen Sie die erforderlichen
Einstellungen hier und speichern die Design Rules unter
einem neuen Namen ab.</description>
<description language="en">EAGLE Design Rules

The default Design Rules have been set to cover
a wide range of applications. Your particular design
may have different requirements, so please make the
necessary adjustments and save your customized
design rules under a new name.</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm"/>
<param name="mtIsolate" value="1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm"/>
<param name="mdWireWire" value="6mil"/>
<param name="mdWirePad" value="6mil"/>
<param name="mdWireVia" value="6mil"/>
<param name="mdPadPad" value="6mil"/>
<param name="mdPadVia" value="6mil"/>
<param name="mdViaVia" value="6mil"/>
<param name="mdSmdPad" value="6mil"/>
<param name="mdSmdVia" value="6mil"/>
<param name="mdSmdSmd" value="6mil"/>
<param name="mdViaViaSameLayer" value="6mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="40mil"/>
<param name="mdDrill" value="6mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="6mil"/>
<param name="msDrill" value="0.35mm"/>
<param name="msMicroVia" value="9.99mm"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0.25"/>
<param name="rvPadInner" value="0.25"/>
<param name="rvPadBottom" value="0.25"/>
<param name="rvViaOuter" value="0.25"/>
<param name="rvViaInner" value="0.25"/>
<param name="rvMicroViaOuter" value="0.25"/>
<param name="rvMicroViaInner" value="0.25"/>
<param name="rlMinPadTop" value="10mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="10mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="10mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="8mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="8mil"/>
<param name="rlMaxViaInner" value="20mil"/>
<param name="rlMinMicroViaOuter" value="4mil"/>
<param name="rlMaxMicroViaOuter" value="20mil"/>
<param name="rlMinMicroViaInner" value="4mil"/>
<param name="rlMaxMicroViaInner" value="20mil"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="4mil"/>
<param name="mlMaxStopFrame" value="4mil"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0mil"/>
<param name="mlViaStopLimit" value="0mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="10mil"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="checkStop" value="0"/>
<param name="checkValues" value="0"/>
<param name="checkNames" value="1"/>
<param name="checkWireStubs" value="1"/>
<param name="checkPolygonWidth" value="0"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="0.5mm"/>
<param name="AutoGrid" value="1"/>
<param name="Efforts" value="2"/>
<param name="TopRouterVariant" value="0"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="a"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="a"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="SENSORS" library="con-tycoelectronics" library_urn="urn:adsk.eagle:library:193" package="RJ45-NO-SHIELD" package3d_urn="urn:adsk.eagle:package:10660/1" value="RJ45-8X" x="18.3" y="5.511" smashed="yes">
<attribute name="MF" value="" x="39.89" y="-3.379" size="1.778" layer="27" display="off"/>
<attribute name="MPN" value="RJ45-8X" x="39.89" y="-3.379" size="1.778" layer="27" display="off"/>
<attribute name="NAME" x="18.275" y="16.676" size="0.8128" layer="25" align="bottom-center"/>
<attribute name="OC_FARNELL" value="unknown" x="39.89" y="-3.379" size="1.778" layer="27" display="off"/>
<attribute name="OC_NEWARK" value="16R6101" x="39.89" y="-3.379" size="1.778" layer="27" display="off"/>
<attribute name="POPULARITY" value="0" x="39.89" y="-3.379" size="1.778" layer="27" display="off"/>
</element>
<element name="UDAT" library="con-wago-500" library_urn="urn:adsk.eagle:library:195" package="W237-103" package3d_urn="urn:adsk.eagle:package:10691/1" value="" x="1" y="7.6" smashed="yes" rot="R270">
<attribute name="MF" value="" x="1" y="7.6" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="MPN" value="237-103" x="1" y="7.6" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="OC_FARNELL" value="unknown" x="1" y="7.6" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="OC_NEWARK" value="18M7116" x="1" y="7.6" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="POPULARITY" value="5" x="1" y="7.6" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="-3.9476" y="12.9048" size="1.27" layer="27" ratio="10" rot="R270"/>
</element>
<element name="LDAT" library="con-wago-500" library_urn="urn:adsk.eagle:library:195" package="W237-103" package3d_urn="urn:adsk.eagle:package:10691/1" value="" x="35.6" y="25.692" smashed="yes" rot="R90">
<attribute name="MF" value="" x="35.6" y="25.692" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="MPN" value="237-103" x="35.6" y="25.692" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="OC_FARNELL" value="unknown" x="35.6" y="25.692" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="OC_NEWARK" value="18M7116" x="35.6" y="25.692" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="POPULARITY" value="5" x="35.6" y="25.692" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="40.5476" y="20.3872" size="1.27" layer="27" ratio="10" rot="R90"/>
</element>
<element name="KDAT" library="con-wago-500" library_urn="urn:adsk.eagle:library:195" package="W237-103" package3d_urn="urn:adsk.eagle:package:10691/1" value="" x="35.6" y="7.6" smashed="yes" rot="R90">
<attribute name="MF" value="" x="35.6" y="7.6" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="MPN" value="237-103" x="35.6" y="7.6" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="OC_FARNELL" value="unknown" x="35.6" y="7.6" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="OC_NEWARK" value="18M7116" x="35.6" y="7.6" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="POPULARITY" value="5" x="35.6" y="7.6" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="40.5476" y="2.2952" size="1.27" layer="27" ratio="10" rot="R90"/>
</element>
<element name="U$1" library="holes" library_urn="urn:adsk.eagle:library:237" package="3,0" package3d_urn="urn:adsk.eagle:package:14277/1" value="" x="18.285" y="25" smashed="yes"/>
<element name="DOOR" library="con-wago-500" library_urn="urn:adsk.eagle:library:195" package="W237-102" package3d_urn="urn:adsk.eagle:package:10688/1" value="" x="0.98" y="28.2" smashed="yes" rot="R270">
<attribute name="MF" value="" x="0.98" y="28.2" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="MPN" value="237-102" x="0.98" y="28.2" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="OC_FARNELL" value="unknown" x="0.98" y="28.2" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="OC_NEWARK" value="70K9898" x="0.98" y="28.2" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="POPULARITY" value="32" x="0.98" y="28.2" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="-6.64" y="33.24" size="1.27" layer="27" ratio="10" rot="R270"/>
</element>
</elements>
<signals>
<signal name="GND">
<contactref element="KDAT" pad="1"/>
<contactref element="LDAT" pad="1"/>
<contactref element="UDAT" pad="1"/>
<contactref element="SENSORS" pad="5"/>
<contactref element="DOOR" pad="1"/>
<wire x1="36.89" y1="20.692" x2="27.2149375" y2="20.692" width="1.016" layer="16"/>
<wire x1="26.16708125" y1="29.36748125" x2="26.16708125" y2="21.73985625" width="1.016" layer="16"/>
<wire x1="27.2149375" y1="20.692" x2="26.16708125" y2="21.73985625" width="1.016" layer="16"/>
<wire x1="-0.29" y1="30.7" x2="-2.424140625" y2="30.7" width="1.016" layer="16"/>
<wire x1="-2.424140625" y1="30.7" x2="-3.032759375" y2="30.09138125" width="1.016" layer="16"/>
<wire x1="-3.032759375" y1="30.09138125" x2="-3.032759375" y2="13.22831875" width="1.016" layer="16"/>
<wire x1="-2.404440625" y1="12.6" x2="-0.29" y2="12.6" width="1.016" layer="16"/>
<wire x1="-3.032759375" y1="13.22831875" x2="-2.404440625" y2="12.6" width="1.016" layer="16"/>
<wire x1="36.89" y1="20.692" x2="39.010696875" y2="20.692" width="1.016" layer="16"/>
<wire x1="39.6358375" y1="20.066859375" x2="39.6358375" y2="3.200396875" width="1.016" layer="16"/>
<wire x1="39.6358375" y1="3.200396875" x2="39.035440625" y2="2.6" width="1.016" layer="16"/>
<wire x1="39.035440625" y1="2.6" x2="36.89" y2="2.6" width="1.016" layer="16"/>
<wire x1="39.010696875" y1="20.692" x2="39.6358375" y2="20.066859375" width="1.016" layer="16"/>
<wire x1="18.935" y1="2.9191625" x2="18.935" y2="11.861" width="1.016" layer="16"/>
<wire x1="20.116803125" y1="1.737359375" x2="18.935" y2="2.9191625" width="1.016" layer="16"/>
<wire x1="-0.29" y1="30.7" x2="24.8345625" y2="30.7" width="1.016" layer="16"/>
<wire x1="24.8345625" y1="30.7" x2="26.16708125" y2="29.36748125" width="1.016" layer="16"/>
<wire x1="36.89" y1="2.6" x2="30.26821875" y2="2.6" width="1.016" layer="16"/>
<wire x1="30.26821875" y1="2.6" x2="29.405578125" y2="1.737359375" width="1.016" layer="16"/>
<wire x1="29.405578125" y1="1.737359375" x2="20.116803125" y2="1.737359375" width="1.016" layer="16"/>
<polygon width="0.1524" layer="1">
<vertex x="-4.594859375" y="33.2994"/>
<vertex x="41.132759375" y="33.2994"/>
<vertex x="41.19371875" y="33.238440625"/>
<vertex x="41.208959375" y="33.2232"/>
<vertex x="41.208959375" y="0.00761875"/>
<vertex x="-4.594859375" y="0.00761875"/>
</polygon>
<polygon width="0.1524" layer="16">
<vertex x="-4.6101" y="33.322259375"/>
<vertex x="41.163240625" y="33.322259375"/>
<vertex x="41.163240625" y="0.015240625"/>
<vertex x="-4.542825" y="0.015240625" curve="-45"/>
<vertex x="-4.57961875" y="0.03048125"/>
</polygon>
</signal>
<signal name="5V">
<contactref element="KDAT" pad="2"/>
<contactref element="LDAT" pad="2"/>
<contactref element="UDAT" pad="2"/>
<contactref element="SENSORS" pad="3"/>
<wire x1="36.89" y1="7.6" x2="29.151259375" y2="7.6" width="1.016" layer="1"/>
<wire x1="27.89681875" y1="8.854440625" x2="17.343121875" y2="8.854440625" width="1.016" layer="1"/>
<wire x1="17.343121875" y1="8.854440625" x2="16.395" y2="9.8025625" width="1.016" layer="1"/>
<wire x1="16.395" y1="9.8025625" x2="16.395" y2="11.861" width="1.016" layer="1"/>
<wire x1="29.151259375" y1="7.6" x2="27.89681875" y2="8.854440625" width="1.016" layer="1"/>
<wire x1="36.89" y1="7.6" x2="39.006240625" y2="7.6" width="1.016" layer="1"/>
<wire x1="39.006240625" y1="7.6" x2="39.643459375" y2="8.23721875" width="1.016" layer="1"/>
<wire x1="39.643459375" y1="8.23721875" x2="39.643459375" y2="25.057959375" width="1.016" layer="1"/>
<wire x1="39.00941875" y1="25.692" x2="36.89" y2="25.692" width="1.016" layer="1"/>
<wire x1="39.643459375" y1="25.057959375" x2="39.00941875" y2="25.692" width="1.016" layer="1"/>
<wire x1="-0.29" y1="7.6" x2="8.35438125" y2="7.6" width="1.016" layer="16"/>
<wire x1="8.35438125" y1="7.6" x2="9.66978125" y2="8.9154" width="1.016" layer="16"/>
<wire x1="9.66978125" y1="8.9154" x2="15.4152625" y2="8.9154" width="1.016" layer="16"/>
<wire x1="15.4152625" y1="8.9154" x2="16.395" y2="9.8951375" width="1.016" layer="16"/>
<wire x1="16.395" y1="9.8951375" x2="16.395" y2="11.861" width="1.016" layer="16"/>
</signal>
<signal name="1WIRE">
<contactref element="SENSORS" pad="4"/>
<contactref element="KDAT" pad="3"/>
<contactref element="LDAT" pad="3"/>
<contactref element="UDAT" pad="3"/>
<wire x1="36.89" y1="30.692" x2="33.305659375" y2="30.692" width="1.016" layer="1"/>
<wire x1="33.305659375" y1="30.692" x2="32.598359375" y2="29.9847" width="1.016" layer="1"/>
<wire x1="32.598359375" y1="29.9847" x2="32.598359375" y2="13.3959625" width="1.016" layer="1"/>
<wire x1="32.598359375" y1="13.3959625" x2="33.40608125" y2="12.588240625" width="1.016" layer="1"/>
<wire x1="33.40608125" y1="12.588240625" x2="36.878240625" y2="12.588240625" width="1.016" layer="1"/>
<wire x1="36.878240625" y1="12.588240625" x2="36.89" y2="12.6" width="1.016" layer="1"/>
<wire x1="17.665" y1="14.401" x2="17.665" y2="17.565940625" width="1.016" layer="16"/>
<wire x1="17.665" y1="17.565940625" x2="18.470878125" y2="18.37181875" width="1.016" layer="16"/>
<wire x1="18.470878125" y1="18.37181875" x2="26.35758125" y2="18.37181875" width="1.016" layer="16"/>
<wire x1="26.35758125" y1="18.37181875" x2="27.561540625" y2="17.167859375" width="1.016" layer="16"/>
<wire x1="27.561540625" y1="13.89888125" x2="27.561540625" y2="17.167859375" width="1.016" layer="16"/>
<wire x1="36.89" y1="12.6" x2="28.860421875" y2="12.6" width="1.016" layer="16"/>
<wire x1="28.860421875" y1="12.6" x2="27.561540625" y2="13.89888125" width="1.016" layer="16"/>
<wire x1="17.665" y1="14.401" x2="17.665" y2="17.508921875" width="1.016" layer="1"/>
<wire x1="16.771621875" y1="18.4023" x2="11.47571875" y2="18.4023" width="1.016" layer="1"/>
<wire x1="11.47571875" y1="18.4023" x2="7.2771" y2="14.20368125" width="1.016" layer="1"/>
<wire x1="5.33558125" y1="2.6" x2="-0.29" y2="2.6" width="1.016" layer="1"/>
<wire x1="17.665" y1="17.508921875" x2="16.771621875" y2="18.4023" width="1.016" layer="1"/>
<wire x1="7.2771" y1="14.20368125" x2="7.2771" y2="4.54151875" width="1.016" layer="1"/>
<wire x1="7.2771" y1="4.54151875" x2="5.33558125" y2="2.6" width="1.016" layer="1"/>
</signal>
<signal name="DOOR">
<contactref element="SENSORS" pad="6"/>
<contactref element="DOOR" pad="2"/>
<wire x1="20.205" y1="14.401" x2="20.205" y2="17.719740625" width="1.016" layer="1"/>
<wire x1="18.295621875" y1="19.62911875" x2="10.294621875" y2="19.62911875" width="1.016" layer="1"/>
<wire x1="10.294621875" y1="19.62911875" x2="9.17448125" y2="20.749259375" width="1.016" layer="1"/>
<wire x1="8.079459375" y1="25.7" x2="-0.29" y2="25.7" width="1.016" layer="1"/>
<wire x1="20.205" y1="17.719740625" x2="18.295621875" y2="19.62911875" width="1.016" layer="1"/>
<wire x1="9.17448125" y1="20.749259375" x2="9.17448125" y2="24.604978125" width="1.016" layer="1"/>
<wire x1="9.17448125" y1="24.604978125" x2="8.079459375" y2="25.7" width="1.016" layer="1"/>
</signal>
</signals>
<mfgpreviewcolors>
<mfgpreviewcolor name="soldermaskcolor" color="0xC8008000"/>
<mfgpreviewcolor name="silkscreencolor" color="0xFFFEFEFE"/>
<mfgpreviewcolor name="backgroundcolor" color="0xFF282828"/>
<mfgpreviewcolor name="coppercolor" color="0xFFFFBF00"/>
<mfgpreviewcolor name="substratecolor" color="0xFF786E46"/>
</mfgpreviewcolors>
</board>
</drawing>
<compatibility>
<note version="6.3" minversion="6.2.2" severity="warning">
Since Version 6.2.2 text objects can contain more than one line,
which will not be processed correctly with this version.
</note>
<note version="8.2" severity="warning">
Since Version 8.2, EAGLE supports online libraries. The ids
of those online libraries will not be understood (or retained)
with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports the association of 3D packages
with devices in libraries, schematics, and board files. Those 3D
packages will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>


text:
@article{CruzRamirez2014neurocomputing,
 author = {M. Cruz-Ramírez and C. Hervás-Martínez and J. Sánchez-Monedero and P.A. Gutiérrez},
 journal = {Neurocomputing},
 month = {July},
 note = {JCR(2014): 2.083 Position: 36/123 (Q2) Category: COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE},
 owner = {javi},
 pages = {21-31},
 timestamp = {2013.05.24},
 title = {Metrics to guide a multi-objective evolutionary algorithm for ordinal classification},
 url = {http://dx.doi.org/10.1016/j.neucom.2013.05.058},
 volume = {135},
 year = {2014}
}

license: MIT

repository: javism/academic-kickstart

license_type: permissive

repo_name: javism/academic-kickstart

branch_name: refs/heads/master

gha_license_id: MIT

extension: bib


text:
package tsf

import (
	"context"
	"sync"

	"github.com/go-kratos/kratos/v2"
	"github.com/go-kratos/kratos/v2/middleware"
	"github.com/tencentyun/tsf-go/pkg/auth"
	"github.com/tencentyun/tsf-go/pkg/auth/authenticator"
	"github.com/tencentyun/tsf-go/pkg/config/consul"
	"github.com/tencentyun/tsf-go/pkg/naming"
	"github.com/tencentyun/tsf-go/pkg/sys/env"
)

func authMiddleware() middleware.Middleware {
	var authen auth.Auth
	var once sync.Once

	return func(handler middleware.Handler) middleware.Handler {
		return func(ctx context.Context, req interface{}) (resp interface{}, err error) {
			once.Do(func() {
				k, _ := kratos.FromContext(ctx)
				serviceName := k.Name()
				builder := &authenticator.Builder{}
				authen = builder.Build(consul.DefaultConsul(), naming.NewService(env.NamespaceID(), serviceName))
			})
			_, operation := ServerOperation(ctx)
			// 鉴权
			err = authen.Verify(ctx, operation)
			if err != nil {
				return
			}
			return handler(ctx, req)
		}
	}
}

repository: LilyJlLm/tsf-go

repo_name: LilyJlLm/tsf-go

extension: go


text:
SUMMARY = "Library for interfacing with IIO devices"
HOMEPAGE = "https://wiki.analog.com/resources/tools-software/linux-software/libiio"
SECTION = "libs"
LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"

SRCREV = "565bf68eccfdbbf22cf5cb6d792e23de564665c7"
PV = "0.21+git${SRCPV}"

SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https \
           file://0001-python-Do-not-verify-whether-libiio-is-installed-whe.patch \
"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"

S = "${WORKDIR}/git"

DISTUTILS_SETUP_PATH ?= "${B}/bindings/python/"

DEPENDS = " \
    flex-native bison-native libaio \
    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
"

inherit cmake python3native systemd setuptools3

EXTRA_OECMAKE = " \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
    -DUDEV_RULES_INSTALL_DIR=${nonarch_base_libdir}/udev/rules.d \
    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
"

PACKAGECONFIG ??= "usb_backend network_backend"

PACKAGECONFIG[usb_backend] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2"
PACKAGECONFIG[network_backend] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
PACKAGECONFIG[libiio-python3] = "-DPYTHON_BINDINGS=ON,-DPYTHON_BINDINGS=OFF"

PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-${PYTHON_PN}"

RDEPENDS_${PN}-${PYTHON_PN} = "${PN} ${PYTHON_PN}-ctypes ${PYTHON_PN}-stringold"

FILES_${PN}-iiod = " \
    ${sbindir}/iiod \
    ${systemd_system_unitdir}/iiod.service \
"
FILES_${PN}-tests = "${bindir}"
FILES_${PN}-${PYTHON_PN} = "${PYTHON_SITEPACKAGES_DIR}"

SYSTEMD_PACKAGES = "${PN}-iiod"
SYSTEMD_SERVICE_${PN}-iiod = "iiod.service"

# Explicitly define do_configure, do_compile and do_install because both cmake and setuptools3 have
# EXPORT_FUNCTIONS do_configure do_compile do_install
do_configure() {
    cmake_do_configure
}

do_compile() {
    if ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'true', 'false', d)}; then
        distutils3_do_compile
    fi
    cmake_do_compile
}

do_install() {
    if ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'true', 'false', d)}; then
        distutils3_do_install
    fi
    cmake_do_install
}

repository: HewlettPackard/openbmc

repo_name: HewlettPackard/openbmc

branch_name: refs/heads/dev-gxp

gha_license_id: NOASSERTION

gha_language: Python

extension: bb


text:
package model

type ServerInstance struct {
	InstanceIdentity InstanceIdentity `json:"instanceIdentity"`
	Features         []Feature        `json:"features"`
}

branch_name: refs/heads/main


text:
package util

import (
	"encoding/json"
	"errors"
	"io/ioutil"
	"os"
	"sync"
)

type JsonFilePhotoStore struct {
	FileName string
	photos   []Photo
	mutex    sync.Mutex
}

func (jfps *JsonFilePhotoStore) LoadFromFile() error {
	jfps.mutex.Lock()
	defer jfps.mutex.Unlock()
	contentBytes, err := ioutil.ReadFile(jfps.FileName)
	if err != nil {
		return err
	}
	return json.Unmarshal(contentBytes, &jfps.photos)
}

func (jfps *JsonFilePhotoStore) StoreToFile() error {
	jfps.mutex.Lock()
	defer jfps.mutex.Unlock()
	bytes, err := json.Marshal(jfps.photos)
	if err != nil {
		return err
	}
	return ioutil.WriteFile(jfps.FileName, bytes, os.FileMode(0644))
}

func (jfps *JsonFilePhotoStore) RemoveStorageFile() error {
	jfps.mutex.Lock()
	defer jfps.mutex.Unlock()
	return os.Remove(jfps.FileName)
}

func (jfps *JsonFilePhotoStore) Touch() error {
	jfps.mutex.Lock()
	defer jfps.mutex.Unlock()
	if jfps.FileName == "" {
		return errors.New("The filename is empty")
	}
	_, err := os.Open(jfps.FileName)
	if err != nil {
		//try to create it
		return ioutil.WriteFile(jfps.FileName, []byte("[]"), os.FileMode(0644))
	}
	return nil
}

func (jfps *JsonFilePhotoStore) GetAll() []Photo {
	return jfps.photos
}

func (jfps *JsonFilePhotoStore) Get(fileName string) (Photo, error) {
	for _, photo := range jfps.photos {
		if photo.Filename == fileName {
			return photo, nil
		}
	}
	return Photo{}, errors.New("No photo found for filename " + fileName)
}

func (jfps *JsonFilePhotoStore) Add(photo Photo) error {
	jfps.mutex.Lock()
	defer jfps.mutex.Unlock()
	if _, err := jfps.Get(photo.Filename); err == nil {
		return errors.New("Filename already exists")
	}
	jfps.photos = append(jfps.photos, photo)
	return nil
}

func (jfps *JsonFilePhotoStore) Remove(photoToRemove Photo) error {
	jfps.mutex.Lock()
	defer jfps.mutex.Unlock()
	for i := len(jfps.photos) - 1; i >= 0; i-- {
		photo := jfps.photos[i]
		// Condition to decide if current element has to be deleted:
		if photo == photoToRemove {
			jfps.photos = append(jfps.photos[:i], jfps.photos[i+1:]...)
			return nil
		}
	}
	return errors.New("Photo not in list")
}

repository: captainju/gogal

repo_name: captainju/gogal


text:
package mongodb

import (
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
	"golang.org/x/net/context"
)

func GetConnection(uri string) (*mongo.Client, error) {
	clientOptions := options.Client().ApplyURI(uri)
	client, err := mongo.NewClient(clientOptions)
	if err != nil {
		return nil, err
	}
	err = client.Connect(context.Background())
	if err != nil {
		return nil, err
	}
	return client, nil
}

repository: RevelesD/dogbook

repo_name: RevelesD/dogbook


text:
/*
*     COPYRIGHT NOTICE
*     Copyright(c) 2017~2019, Sakura&Fantasy
*     All rights reserved.
*
* @file		DirectFont.cpp
* @brief	This File is DirectFont DLL Project.
* @author	Alopex/Alice
* @version	v1.15a
* @date		2017-12-16	v1.00a	alopex	Create This File.
* @date		2018-01-10	v1.10a	alopex	Code Add dxerr & d3dcompiler Library and Modify Verify.
* @date		2018-01-10	v1.10a	alopex	Add Thread Safe File & Variable(DirectThreadSafe).
* @date		2018-02-12	v1.11a	alopex	Add Reset Device & Definion of DirectFont Colors.
* @date		2018-04-12	v1.12a	alopex	Add Macro Call Mode.
* @date		2018-06-22	v1.13a	alopex	Add Version Information.
* @date		2018-11-23	v1.14a	alopex	Alter Call Method.
* @date		2019-04-09	v1.15a	alopex	Add Notes.
*/
#include "DirectCommon.h"
#include "DirectFont.h"
#include "DirectThreadSafe.h"

// DirectX9 Font Class(DirectX9 3D/2D文字绘制)

//------------------------------------------------------------------
// @Function:	 DirectFont()
// @Purpose: DirectFont构造函数
// @Since: v1.00a
// @Para: None
// @Return: None
//------------------------------------------------------------------
DirectFont::DirectFont() :
	m_pD3D9Device(NULL),
	m_pD3D9Font(NULL)
{
	m_bThreadSafe = true;									// Thread Safety flag. When m_bThreadSafe = true, Start Thread Safe Mechanism.
	if (m_bThreadSafe) InitializeCriticalSection(&m_cs);	// Initialize Critical Section
}

//------------------------------------------------------------------
// @Function:	 ~DirectFont()
// @Purpose: DirectFont析构函数
// @Since: v1.00a
// @Para: None
// @Return: None
//------------------------------------------------------------------
DirectFont::~DirectFont()
{
	SAFE_RELEASE(m_pD3D9Font);

	if (m_bThreadSafe) DeleteCriticalSection(&m_cs);		// Delete Critical Section
}

//---------------------------------------------------------------------
// @Function:	 DirectFont(IDirect3DDevice9 * pD3D9Device, bool bSafe)
// @Purpose: DirectFont构造函数
// @Since: v1.00a
// @Para: IDirect3DDevice9* pD3D9Device	//D3D9绘制设备
// @Return: None
//---------------------------------------------------------------------
DirectFont::DirectFont(IDirect3DDevice9 * pD3D9Device, bool bSafe) :
	m_pD3D9Device(pD3D9Device),
	m_pD3D9Font(NULL)
{
	m_bThreadSafe = bSafe;									// Thread Safety flag. When m_bThreadSafe = true, Start Thread Safe Mechanism.
	if (m_bThreadSafe) InitializeCriticalSection(&m_cs);	// Initialize Critical Section
}

//------------------------------------------------------------------
// @Function:	 DirectFont(const DirectFont & Object)
// @Purpose: DirectFont拷贝构造函数
// @Since: v1.00a
// @Para: None
// @Return: None
//------------------------------------------------------------------
DirectFont::DirectFont(const DirectFont & Object)
{
	m_bThreadSafe = Object.m_bThreadSafe;					// Thread Safety flag. When m_bThreadSafe = true, Start Thread Safe Mechanism.
	if (m_bThreadSafe) InitializeCriticalSection(&m_cs);	// Initialize Critical Section

	m_pD3D9Device = Object.m_pD3D9Device;
	m_pD3D9Font = Object.m_pD3D9Font;
}

//------------------------------------------------------------------
// @Function:	 operator=(const DirectFont & Object)
// @Purpose: DirectFont拷贝构造函数
// @Since: v1.00a
// @Para: None
// @Return: None
//------------------------------------------------------------------
const DirectFont & DirectFont::operator=(const DirectFont & Object)
{
	if (&Object != this)
	{
		m_bThreadSafe = Object.m_bThreadSafe;					// Thread Safety flag. When m_bThreadSafe = true, Start Thread Safe Mechanism.
		if (m_bThreadSafe) InitializeCriticalSection(&m_cs);	// Initialize Critical Section

		m_pD3D9Device = Object.m_pD3D9Device;
		m_pD3D9Font = Object.m_pD3D9Font;
	}

	return *this;
}

//------------------------------------------------------------------
// @Function:	 GetDevice() const
// @Purpose: DirectFont获取D3D9设备
// @Since: v1.00a
// @Para: None
// @Return: None
//------------------------------------------------------------------
IDirect3DDevice9 *DIRECTFONT_CALLMETHOD DirectFont::GetDevice() const
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);
	return m_pD3D9Device;
}

//------------------------------------------------------------------
// @Function:	 GetFont() const
// @Purpose: DirectFont获取D3D9字体
// @Since: v1.00a
// @Para: None
// @Return: None
//------------------------------------------------------------------
ID3DXFont *DIRECTFONT_CALLMETHOD DirectFont::GetFont() const
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);
	return m_pD3D9Font;
}

//------------------------------------------------------------------
// @Function:	 Create()
// @Purpose: DirectFont初始化D3D9字体
// @Since: v1.00a
// @Para: int nFontSize
// @Para: LPWSTR lpszFontType
// @Return: None
//------------------------------------------------------------------
HRESULT DIRECTFONT_CALLMETHOD DirectFont::Create()
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);

	VERIFY(D3DXCreateFont(m_pD3D9Device, 12, 0, 0, 1, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, 0, _T("Consolas"), &m_pD3D9Font));

	return S_OK;
}

//------------------------------------------------------------------
// @Function:	 Create(int nFontSize)
// @Purpose: DirectFont初始化D3D9字体
// @Since: v1.00a
// @Para: int nFontSize
// @Para: LPWSTR lpszFontType
// @Return: None
//------------------------------------------------------------------
HRESULT DIRECTFONT_CALLMETHOD DirectFont::Create(int nFontSize)
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);

	VERIFY(D3DXCreateFont(m_pD3D9Device, nFontSize, 0, 0, 1, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, 0, _T("Consolas"), &m_pD3D9Font));

	return S_OK;
}

//------------------------------------------------------------------
// @Function:	 Create(int nFontSize, LPWSTR lpszFontType)
// @Purpose: DirectFont初始化D3D9字体
// @Since: v1.00a
// @Para: int nFontSize
// @Para: LPWSTR lpszFontType
// @Return: None
//------------------------------------------------------------------
HRESULT DIRECTFONT_CALLMETHOD DirectFont::Create(int nFontSize, LPWSTR lpszFontType)
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);

	VERIFY(D3DXCreateFont(m_pD3D9Device, nFontSize, 0, 0, 1, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, 0, lpszFontType, &m_pD3D9Font));

	return S_OK;
}

//------------------------------------------------------------------
// @Function:	 Reset(void)
// @Purpose: DirectFont重置D3D9字体
// @Since: v1.00a
// @Para: None
// @Return: None
//------------------------------------------------------------------
HRESULT DIRECTFONT_CALLMETHOD DirectFont::Reset()
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);
	return m_pD3D9Font->OnLostDevice();
}

//---------------------------------------------------------------------------------------------------
// @Function:	 Draw(HWND hWnd, LPCWSTR lpcszStr, DWORD Format, D3DCOLOR Color)
// @Purpose: DirectFont绘制字体
// @Since: v1.00a
// @Para: int nFontSize
// @Para: LPWSTR lpszFontType
// @Return: None
//---------------------------------------------------------------------------------------------------
void DIRECTFONT_CALLMETHOD DirectFont::Draw(HWND hWnd, LPCWSTR lpcszStr, DWORD Format, D3DCOLOR Color)
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);
	RECT Rect;

	GetClientRect(hWnd, &Rect);
	m_pD3D9Font->DrawText(NULL, lpcszStr, -1, &Rect, Format, Color);
}

//---------------------------------------------------------------------------------------------------
// @Function:	 DrawA(HWND hWnd, LPCWSTR lpcszStr, DWORD Format, D3DCOLOR Color)
// @Purpose: DirectFont绘制字体
// @Since: v1.00a
// @Para: int nFontSize
// @Para: LPWSTR lpszFontType
// @Return: None
//---------------------------------------------------------------------------------------------------
void DIRECTFONT_CALLMETHOD DirectFont::DrawA(HWND hWnd, LPCSTR lpcszStr, DWORD Format, D3DCOLOR Color)
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);
	RECT Rect;

	GetClientRect(hWnd, &Rect);
	m_pD3D9Font->DrawTextA(NULL, lpcszStr, -1, &Rect, Format, Color);
}

//---------------------------------------------------------------------------------------------------
// @Function:	 DrawW(HWND hWnd, LPCWSTR lpcszStr, DWORD Format, D3DCOLOR Color)
// @Purpose: DirectFont绘制字体
// @Since: v1.00a
// @Para: int nFontSize
// @Para: LPWSTR lpszFontType
// @Return: None
//---------------------------------------------------------------------------------------------------
void DIRECTFONT_CALLMETHOD DirectFont::DrawW(HWND hWnd, LPCWSTR lpcszStr, DWORD Format, D3DCOLOR Color)
{
	DirectThreadSafe ThreadSafe(&m_cs, m_bThreadSafe);
	RECT Rect;

	GetClientRect(hWnd, &Rect);
	m_pD3D9Font->DrawTextW(NULL, lpcszStr, -1, &Rect, Format, Color);
}

repository: gorgeousbubble/Cerasus

repo_name: gorgeousbubble/Cerasus

extension: cpp


text:
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.

package main

import (
	"github.com/mattermost/mattermost-load-test/loadtestconfig"
	"github.com/spf13/cobra"
)

func main() {
	loadtestconfig.SetupConfig()

	cmdTeams := &cobra.Command{
		Use:   "teams",
		Short: "Create some teams",
		Run:   createTeamsCmd,
	}
	loadtestconfig.SetIntFlag(cmdTeams.Flags(), "num", "n", "Numer of teams to create", "TeamsConfiguration.NumTeams", 1)
	loadtestconfig.SetBoolFlag(cmdTeams.Flags(), "rand", "r", "Use a random id to make team unique", "TeamsConfiguration.UseRandomId", false)

	cmdUsers := &cobra.Command{
		Use:   "users",
		Short: "Create some users",
		Run:   createUsersCmd,
	}
	loadtestconfig.SetIntFlag(cmdUsers.Flags(), "num", "n", "Numer of users to create", "UsersConfiguration.NumUsers", 1)
	loadtestconfig.SetBoolFlag(cmdUsers.Flags(), "rand", "r", "Use a random id to make user unique", "UsersConfiguration.UseRandomId", false)

	cmdChannels := &cobra.Command{
		Use:   "channels [teamIds]",
		Short: "Create some channels for teams",
		Run:   createChannelsCmd,
	}
	loadtestconfig.SetIntFlag(cmdChannels.Flags(), "num", "n", "Number of channels to create per team", "ChannelsConfiguration.NumChannelsPerTeam", 1)

	cmdAll := &cobra.Command{
		Use:   "all",
		Short: "Create teams, channels, and users as specified in configuration file",
		Run:   createAllCmd,
	}

	var rootCmd = &cobra.Command{Use: "mcreate"}

	loadtestconfig.SetBoolFlag(rootCmd.PersistentFlags(), "pretty", "p", "Pretty print the output of the command", "GlobalCommandConfig.PrettyPrint", false)

	rootCmd.AddCommand(cmdTeams, cmdUsers, cmdChannels, cmdAll)
	rootCmd.Execute()
}

repository: msfwaifu/mattermost-load-test

repo_name: msfwaifu/mattermost-load-test


text:
@article{kalbitzer_patterns_2021,
 author = {Kalbitzer, Urs and Chapman, Colin A.},
 doi = {10.1016/j.anbehav.2021.04.024},
 file = {Kalbitzer and Chapman - 2021 - Patterns of female social relationships in a prima.pdf:/Users/Urs/Zotero/storage/EDVTTAKJ/Kalbitzer and Chapman - 2021 - Patterns of female social relationships in a prima.pdf:application/pdf},
 issn = {00033472},
 journal = {Animal Behaviour},
 language = {en},
 month = {July},
 pages = {117--133},
 title = {Patterns of female social relationships in a primate with female-biased dispersal},
 url = {https://linkinghub.elsevier.com/retrieve/pii/S0003347221001342},
 urldate = {2021-05-27},
 volume = {177},
 year = {2021}
}

gha_language: TeX


text:
#pragma once

#include <ctime>
#include <vector>

#include "Sensor.h"
#include "Network_data.h"

using std::time_t;
using std::vector;

using Readings::Sensor;

namespace Readings {
    ///
    /// Container that stored data from one reading.
    ///
    class Reading_data
    {
    public:
        ///
        /// Instantiate object of <see cref="Reading_data" />.
        /// <param name="start_datetime">Time the reading started.</param>
        /// <param name="end_datetime">Time the reading ended.</param>
        /// <param name="sensor_data">List of sensor readings associated with this particular reading.</param>
        ///
        Reading_data(time_t start_datetime, time_t end_datetime, vector<Sensor*> sensor_data);

        ~Reading_data();

        ///
        /// Get sensor data associated with this reading.
        /// <returns>Vector of <see cref="Sensor" /> instances.</returns>
        ///
        vector<Sensor*> get_data();

        ///
        /// Get reading start time.
        /// <returns><see cref="time_t" /> readings start time.</returns>
        ///
        time_t get_reading_start_datetime();

        ///
        /// Get reading finish time.
        /// <returns><see cref="time_t" /> readings finish time.</returns>
        ///
        time_t get_reading_end_datetime();

        ///
        /// Statis helper used to convert packet to <see cref="Sensor" /> object.
        /// <param name="packet"><see cref="Packet" /> instance.</param>
        /// <returns><see cref="Sensor" /> instance. NULL if not possible to convert.</returns>
        ///
        static Sensor * convert_packet_to_sensor(Packet packet);
    private:
        ///
        /// Time the reading started.
        ///
        time_t reading_start_datetime;

        ///
        /// Time the reading ended.
        ///
        time_t reading_end_datetime;

        ///
        /// Associated sensor data - <see cref="vector" /> of <see cref="Sensor" /> instances.
        ///
        vector<Sensor*> sensor_data;
    };
}

repository: tm-kn/rads

repo_name: tm-kn/rads

extension: h


text:
DESCRIPTION = "Some configuration file when running special x86 machine."
SECTION = "base"
LICENSE = "MIT"
DEPENDS = "base-files dialog opengalax"
LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"

SRC_URI = "file://COPYING.MIT \
           file://cocon-spmachine \
	   file://card-fbdev.conf \
	   file://defaultdepth.conf \
           file://geode-1024x600.conf \
           file://geode-800x480.conf \
           file://poulsbo.conf \
           file://smi_712.conf \
           file://libretto-lx.conf \
           file://sony-pcg-c1.conf \
           file://kohjinsha-pm.conf \
"

S="${WORKDIR}"

do_install() {
	set -ex

	install -d ${D}${bindir}/
        install -m 0755    ${WORKDIR}/cocon-spmachine    ${D}${bindir}/cocon-spmachine

	install -d ${D}${datadir}/spmachine-486/
        install -m 0644 ${WORKDIR}/*.conf ${D}${datadir}/spmachine-486/

}

FILES_${PN} = "/"

repository: gitter-badger/meta-cocon

repo_name: gitter-badger/meta-cocon


text:
package cli

import (
	"fmt"

	wire "github.com/cosmos/cosmos-sdk/codec"
	"github.com/lino-network/lino/client"
	"github.com/spf13/cobra"
	"github.com/spf13/viper"

	sdk "github.com/cosmos/cosmos-sdk/types"
	post "github.com/lino-network/lino/x/post/types"
)

// PostTxCmd will create a post tx and sign it with the given key
func UpdatePostTxCmd(cdc *wire.Codec) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "post",
		Short: "public a post to blockchain",
		RunE:  sendUpdatePostTx(cdc),
	}
	cmd.Flags().String(FlagAuthor, "", "author of this post")
	cmd.Flags().String(FlagPostID, "", "post id to identify this post for the author")
	cmd.Flags().String(FlagTitle, "", "title for the post")
	cmd.Flags().String(FlagContent, "", "content for the post")
	return cmd
}

// send update post transaction to the blockchain
func sendUpdatePostTx(cdc *wire.Codec) client.CommandTxCallback {
	return func(cmd *cobra.Command, args []string) error {
		ctx := client.NewCoreContextFromViper()

		msg := post.NewUpdatePostMsg(
			viper.GetString(FlagAuthor), viper.GetString(FlagPostID),
			viper.GetString(FlagTitle), viper.GetString(FlagContent))

		// build and sign the transaction, then broadcast to Tendermint
		res, err := ctx.SignBuildBroadcast([]sdk.Msg{msg}, cdc)
		if err != nil {
			return err
		}

		fmt.Printf("Committed at block %d. Hash: %s\n", res.Height, res.Hash.String())
		return nil
	}
}

repository: goldfintech/lino

repo_name: goldfintech/lino


text:
package lexer

import (
	"bufio"
	"bytes"
	"io"
	"unicode/utf8"
)

// Lexer can lex PHP source code into tokens
type Lexer struct {
	input        string
	position     int  // current position in input (points to current char)
	readPosition int  // current reading position in input (after current char)
	ch           rune // current rune under examination
	chsize       int  // current length of the rune in ch
	line         int  // current line in input
	checkers     []checker
}

// New will return a pointer to a fresh lexer initialized with input
func New(input io.Reader) (*Lexer, error) {

	reader := bufio.NewReader(input)
	var delim byte
	stringInput, err := reader.ReadString(delim)
	if err != nil && err != io.EOF {
		return nil, err
	}

	l := &Lexer{input: stringInput, line: 1}
	l.checkers = []checker{
		delimiterChecker{},
		eofChecker{},
		arithmeticChecker{},
		equalsChecker{},
		numberChecker{},
		identifierChecker{},
		phptagChecker{},
		compareChecker{},
		stringChecker{
			delimiter: '"',
			tokenType: DOUBLEQUOTEDSTRING,
		},
		stringChecker{
			delimiter: '\'',
			tokenType: SINGLEQUOTEDSTRING,
		},
		commentChecker{},
		arrowChecker{},
	}
	l.readChar()

	return l, nil
}

func (l *Lexer) readChar() {
	if l.readPosition >= len(l.input) {
		l.ch = 0
	} else {
		l.ch, l.chsize = utf8.DecodeRuneInString(l.input[l.readPosition:])
	}
	if l.ch == '\n' {
		l.line++
	}
	l.position = l.readPosition
	l.readPosition += l.chsize
}

func (l *Lexer) advance(p int) {
	for i := 0; i < p; i++ {
		l.readChar()
	}
}

func (l *Lexer) peek(p int) string {

	var b = bytes.Buffer{}
	var readPosition = l.readPosition

	for i := 0; i < p; i++ {
		if readPosition >= len(l.input) {
			break
		}
		ch, chsize := utf8.DecodeRuneInString(l.input[readPosition:])
		b.WriteRune(ch)
		readPosition += chsize
	}

	return b.String()
}

func (l *Lexer) scan(c []rune) {
	for !runeInSlice(l.ch, c) {
		l.readChar()
		if l.ch == 0 {
			return
		}
	}
}

func runeInSlice(b rune, s []rune) bool {
	for _, test := range s {
		if b == test {
			return true
		}
	}

	return false
}

// NextToken returns the next token and advances internally. At the end it will return EOF
func (l *Lexer) NextToken() Token {

	l.skipWhitespace()

	for _, c := range l.checkers {
		if tok, ok := c.Check(l); ok {
			tok.Line = l.line
			return tok
		}
	}

	var tok Token
	tok.Line = l.line
	tok = newToken(ILLEGAL, l.ch, l.line)
	l.readChar()

	return tok
}

func (l *Lexer) skipWhitespace() {
	for l.ch == ' ' || l.ch == '\t' || l.ch == '\n' || l.ch == '\r' {
		l.readChar()
	}
}

func newToken(t TokenType, l rune, line int) Token {
	return Token{Type: t, Literal: string(l), Line: line}
}

repository: bestform/shmehashme

repo_name: bestform/shmehashme

gha_language: Go


text:
/*
Copyright 2020 the Velero contributors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package serverstatus

import (
	"context"
	"time"

	"github.com/pkg/errors"
	"k8s.io/apimachinery/pkg/util/wait"
	kbclient "sigs.k8s.io/controller-runtime/pkg/client"

	velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
	"github.com/vmware-tanzu/velero/pkg/builder"
)

type Getter interface {
	GetServerStatus(kbClient kbclient.Client) (*velerov1api.ServerStatusRequest, error)
}

type DefaultServerStatusGetter struct {
	Namespace string
	Context   context.Context
}

func (g *DefaultServerStatusGetter) GetServerStatus(kbClient kbclient.Client) (*velerov1api.ServerStatusRequest, error) {
	created := builder.ForServerStatusRequest(g.Namespace, "", "0").ObjectMeta(builder.WithGenerateName("velero-cli-")).Result()

	if err := kbClient.Create(context.Background(), created, &kbclient.CreateOptions{}); err != nil {
		return nil, errors.WithStack(err)
	}

	ctx, cancel := context.WithCancel(g.Context)
	defer cancel()

	key := kbclient.ObjectKey{Name: created.Name, Namespace: g.Namespace}
	checkFunc := func() {
		updated := &velerov1api.ServerStatusRequest{}
		if err := kbClient.Get(ctx, key, updated); err != nil {
			return
		}

		// TODO: once the minimum supported Kubernetes version is v1.9.0, remove the following check.
		// See http://issue.k8s.io/51046 for details.
		if updated.Name != created.Name {
			return
		}

		if updated.Status.Phase == velerov1api.ServerStatusRequestPhaseProcessed {
			created = updated
			cancel()
		}
	}

	wait.Until(checkFunc, 250*time.Millisecond, ctx.Done())

	return created, nil
}

repository: vmware-tanzu/velero

repo_name: vmware-tanzu/velero


text:
package column

import (
	"fmt"
	"strings"
)

// LongTextColumn models a column with a large ASCII text type.
type LongTextColumn struct {
	name      string
	modifiers []string
}

// LongText creates a new large ASCII text column.
func LongText(name string) *LongTextColumn {
	return &LongTextColumn{
		name:      name,
		modifiers: []string{"NOT NULL"},
	}
}

// SQL generates the SQL needed to create the column.
func (col *LongTextColumn) SQL() string {
	modifiers := strings.Join(col.modifiers, " ")
	return fmt.Sprintf("`%s` LONGTEXT %s", col.name, modifiers)
}

// Nullable allows the column to contain NULLs.
func (col *LongTextColumn) Nullable() *LongTextColumn {
	for i, m := range col.modifiers {
		if m == "NOT NULL" {
			col.modifiers = append(col.modifiers[:i], col.modifiers[i+1:]...)
			break
		}
	}

	return col
}

repository: altipla-consulting/schema

repo_name: altipla-consulting/schema


text:
//----------------------------------------------------------------------------
//  History:    2012-12-14 Dwayne Robinson - Created
//----------------------------------------------------------------------------
#pragma once

template<typename T>
T* GetClassFromWindow(HWND hwnd)
{
    return reinterpret_cast<T*>(::GetWindowLongPtr(hwnd, GWLP_USERDATA));
}

template<typename T>
T* GetClassFromDialog(HWND hwnd)
{
    return reinterpret_cast<T*>(::GetWindowLongPtr(hwnd, DWLP_USER));
}

HRESULT SetClipboardText(HWND hwnd, array_ref<char16_t const> text);

HRESULT GetClipboardText(OUT std::u16string& text);

int GetWindowText(HWND hwnd, _Out_ std::u16string& s);

// Satisfy functionality hole, a complement to SetWindowPos.
BOOL GetWindowPos(HWND hwnd, _Out_ RECT& rect);

HMENU WINAPI GetSubMenu(
    HMENU parentMenu,
    UINT item,
    BOOL byPosition
    );

struct TrackPopupMenu_Item
{
    UINT_PTR id;
    char16_t const* name;
};

// Creates the menu given the item list.
int TrackPopupMenu(
    array_ref<TrackPopupMenu_Item const> items,
    HWND controlHwnd,
    HWND parentHwnd,
    uint32_t defaultMenuItemId = ~0
    );

// More useful version that places the menu where it should go to begin with,
// around the pertinent rect of the control.
int TrackPopupMenu(
    HMENU menu,
    HWND controlHwnd,
    HWND parentHwnd
    );

bool GetOpenFileName(
    HWND hwnd,
    _In_opt_z_ char16_t const* fileTypes,
    _Out_ std::u16string& fileName,
    char16_t const* title = nullptr
    );

bool GetSaveFileName(
    HWND hwnd,
    _In_opt_z_ char16_t const* fileTypes,
    _In_opt_z_ char16_t const* defaultExtension,
    _In_opt_z_ char16_t const* defaultFileName,
    _Out_ std::u16string& fileName,
    char16_t const* title = nullptr
    );

// A more recallable and sensible name, since the function is not dialog-specific.
inline HWND WINAPI GetWindowFromId(_In_opt_ HWND parentWindowHandle, _In_ int windowId) { return GetDlgItem(parentWindowHandle, windowId); }

enum PositionOptions : uint32_t
{
    PositionOptionsNone                 = 0,

    // Per-window options.
    PositionOptionsUseSlackWidth        = 1,        // use any remaining width of parent's client rect (use FillWidth unless you want specific alignment)
    PositionOptionsUseSlackHeight       = 2,        // use any remaining height of parent's client rect (use FillHeight unless you want specific alignment)
    PositionOptionsAlignHCenter         = 0,        // center horizontally within allocated space
    PositionOptionsAlignLeft            = 16,       // align left within allocated space
    PositionOptionsAlignRight           = 32,       // align right within allocated space
    PositionOptionsAlignHStretch        = 16|32,    // stretch left within allocated space
    PositionOptionsAlignHMask           = 16|32,    // mask for horizontal alignment
    PositionOptionsAlignVCenter         = 0,        // center vertically within allocated space
    PositionOptionsAlignTop             = 64,       // align top within allocated space
    PositionOptionsAlignBottom          = 128,      // align bottom within allocated space
    PositionOptionsAlignVStretch        = 64|128,   // stretch within allocated space
    PositionOptionsAlignVMask           = 64|128,   // mask for vertical alignment

    PositionOptionsPreNewLine           = 256,      // start this control on a new line
    PositionOptionsPostNewLine          = 512,      // new line after this control

    PositionOptionsIgnored              = 1024,     // window will not be adjusted (either hidden or floating or out-of-band)
    PositionOptionsInvisible            = 2048,     // window will not be adjusted because it is invisible

    // General behavior options (ignored on individual controls).
    PositionOptionsUnwrapped            = 8192,     // do not wrap / allow controls to flow off the edge even if larger than containing parent width/height
    PositionOptionsReverseFlowDu        = 16384,    // reverse the primary direction (ltr->rtl in horz, ttb->btt in vert)
    PositionOptionsReverseFlowDv        = 32768,    // reverse the secondary direction (ttb->btt in horz, ltr->rtl in vert)
    PositionOptionsFlowHorizontal       = 0,        // flow primarily horizontal, then vertical
    PositionOptionsFlowVertical         = 65536,    // flow primarily vertical, then horizontal

    PositionOptionsDefault              = PositionOptionsAlignLeft|PositionOptionsAlignTop,
    PositionOptionsFillWidth            = PositionOptionsUseSlackWidth|PositionOptionsAlignHStretch,
    PositionOptionsFillHeight           = PositionOptionsUseSlackHeight|PositionOptionsAlignVStretch,
    PositionOptionsIgnoredOrInvisible   = PositionOptionsIgnored|PositionOptionsInvisible,
};
DEFINE_ENUM_FLAG_OPERATORS(PositionOptions);

struct WindowPosition
{
    HWND hwnd;
    PositionOptions options;
    RECT rect;

    WindowPosition();
    WindowPosition(HWND newHwnd, PositionOptions newOptions = PositionOptionsDefault);
    WindowPosition(HWND newHwnd, PositionOptions newOptions, const RECT& newRect);

    inline long GetWidth();
    inline long GetHeight();

    // Updates the real system window to match the rectangle in the structure.
    // If a deferred window position handle is passed, it will apply it to that,
    // otherwise the effect is immediate.
    void Update(HDWP hdwp = nullptr);

    static void Update(
        __inout_ecount(windowPositionsCount) WindowPosition* windowPositions,
        __inout uint32_t windowPositionsCount
        );

    void SetOptions(PositionOptions setOptions, PositionOptions clearOptions);

    // Clamp the size of the rect.
    void ClampRect(
        SIZE size
        );

        // Align the window to the given rectangle, using the window
    // rectangle and positioning flags.
    void AlignToRect(
        RECT rect
        );

    static RECT GetBounds(
        __inout_ecount(windowPositionsCount) WindowPosition* windowPositions,
        uint32_t windowPositionsCount
        );

    static void Offset(
        __inout_ecount(windowPositionsCount) WindowPosition* windowPositions,
        uint32_t windowPositionsCount,
        long dx,
        long dy
        );

    static RECT ReflowGrid(
        __inout_ecount(windowPositionsCount) WindowPosition* windowPositions,
        uint32_t windowPositionsCount,
        const RECT& clientRect,
        long spacing,
        uint32_t maxCols,
        PositionOptions parentOptions,
        bool queryOnly = false
        );

private:
    struct GridDimension
    {
        PositionOptions options;    // combined options for this grid cell (they come from the respective windows)
        long offset;                // x in horizontal, y in vertical
        long size;                  // width in horizontal, height in vertical
    };

    static void DistributeGridDimensions(
        __inout_ecount(gridDimensionsCount) GridDimension* gridDimensions,
        uint32_t gridDimensionsCount,
        long clientSize,
        long spacing,
        PositionOptions optionsMask // can be PositionOptionsUseSlackHeight or PositionOptionsUseSlackWidth
        );
};

struct DialogProcResult
{
    INT_PTR handled; // whether it was handled or not
    LRESULT value;   // the return value

    DialogProcResult(INT_PTR newHandled, LRESULT newValue)
    :   handled(newHandled),
        value(newValue)
    { }

    DialogProcResult(bool newHandled)
    :   handled(newHandled),
        value()
    { }
};

void ListView_ToggleSelectSingleItem(HWND hwnd, int i);

// Why doesn't CommCtrl.h have a helper function like this?
void ListView_SelectSingleVisibleItem(HWND hwnd, int i);

struct ListViewWriter : LVITEM
{
public:
    HWND hwnd;

public:
    ListViewWriter(HWND listHwnd);
    void InsertItem(char16_t const* text = u"");
    void SetItemText(int j, char16_t const* text);
    void AdvanceItem();
    int  GetItemCount();
    void ReserveItemCount(int itemCount);
    void SelectAndFocusItem(int i);
    void SelectItem(int i);
    void SelectItem();
    void FocusItem(int i);
    void EnsureVisible();
    void DisableDrawing();
    void EnableDrawing();
    void DeleteAllItems();
};

std::u16string GetListViewText(
    HWND listViewHwnd,
    _In_z_ char16_t const* separator
    );

void CopyListTextToClipboard(
    HWND listViewHwnd,
    _In_z_ char16_t const* separator
    );

std::vector<uint32_t> GetListViewMatchingIndices(
    HWND hwnd,
    uint32_t searchMask = LVNI_SELECTED,
    bool returnAllIfNoMatch = false
    );

std::vector<uint32_t> GetListViewCheckedIndices(
    HWND listViewHwnd
    );

void ListViewRemapIndicesToLparam(
    HWND listViewHwnd,
    _Inout_ array_ref<uint32_t> indices
    );

int32_t ListViewRemapLparamToIndex(
    HWND listViewHwnd,
    uint32_t lparamValue
    );

int MapScrollBarCodeToPosition(HWND hwnd, int barType, UINT code, int smallStep, _Out_ int& delta);

repository: fdwr/TextLayoutSampler

repo_name: fdwr/TextLayoutSampler


text:
package sous

type (
	// Deployer describes a complete deployment system, which is able to create,
	// read, update, and delete deployments.
	Deployer interface {
		RunningDeployments(from Clusters) (Deployments, error)
		RectifyCreates(<-chan *Deployment, chan<- RectificationError)
		RectifyDeletes(<-chan *Deployment, chan<- RectificationError)
		RectifyModifies(<-chan *DeploymentPair, chan<- RectificationError)
	}

	DummyDeployer struct {
		deps Deployments
	}
)

// NewDummyDeployer creates a DummyDeployer
func NewDummyDeployer() *DummyDeployer {
	return &DummyDeployer{deps: NewDeployments()}
}

// RunningDeployments implements Deployer
func (dd *DummyDeployer) RunningDeployments(from Clusters) (Deployments, error) {
	return dd.deps, nil
}

// RectifyCreates implements Deployer
func (dd *DummyDeployer) RectifyCreates(<-chan *Deployment, chan<- RectificationError) {}

// RectifyDeletes implements Deployer
func (dd *DummyDeployer) RectifyDeletes(<-chan *Deployment, chan<- RectificationError) {}

// RectifyModifies implements Deployer
func (dd *DummyDeployer) RectifyModifies(<-chan *DeploymentPair, chan<- RectificationError) {}

repository: tranhungt/sous

repo_name: tranhungt/sous


text:
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package codegen

// fragmentProtocolInterfaceTmpl contains the definition for
// fidl::WireSyncClient<Protocol>.
const fragmentProtocolSyncClientTmpl = `
{{- define "ProtocolSyncClientDeclaration" }}
{{- EnsureNamespace "" }}
template<>
class {{ .WireSyncClient }} final {
  public:
   WireSyncClient() = default;

   explicit WireSyncClient(::fidl::ClientEnd<{{ . }}> client_end)
       : client_end_(std::move(client_end)) {}

   ~WireSyncClient() = default;
   WireSyncClient(WireSyncClient&&) = default;
   WireSyncClient& operator=(WireSyncClient&&) = default;

   const ::fidl::ClientEnd<{{ . }}>& client_end() const { return client_end_; }
   ::fidl::ClientEnd<{{ . }}>& client_end() { return client_end_; }

   const ::zx::channel& channel() const { return client_end_.channel(); }
   ::zx::channel* mutable_channel() { return &client_end_.channel(); }
{{ "" }}
   {{- /* Client-calling functions do not apply to events. */}}
   {{- range .ClientMethods -}}
   {{- .Docs }}
   //{{ template "ClientAllocationComment" . }}
   {{ .WireResult }} {{ .Name }}({{ RenderParams .RequestArgs }}) {
     return {{ .WireResult }}({{ RenderForwardParams "this->client_end()" .RequestArgs }});
   }
{{ "" }}
     {{- if or .RequestArgs .ResponseArgs }}
       {{- .Docs }}
   // Caller provides the backing storage for FIDL message via request and response buffers.
   {{ .WireUnownedResult }} {{ .Name }}({{ template "SyncRequestCallerAllocateMethodArguments" . }}) {
    {{- $args := (List "this->client_end()") }}
    {{- if .RequestArgs }}
      {{- $args = (List $args "_request_buffer.data" "_request_buffer.capacity") }}
    {{- end -}}
    {{- $args = (List $args .RequestArgs) }}
    {{- if .HasResponse }}
      {{- $args = (List $args "_response_buffer.data" "_response_buffer.capacity") }}
    {{- end }}
    return {{ .WireUnownedResult }}({{ RenderForwardParams $args }});
   }
     {{- end }}
{{ "" }}
   {{- end }}
   {{- if .Events }}
   // Handle all possible events defined in this protocol.
   // Blocks to consume exactly one message from the channel, then call the corresponding virtual
   // method defined in |SyncEventHandler|. The return status of the handler function is folded with
   // any transport-level errors and returned.
   ::fidl::Result HandleOneEvent({{ .WireSyncEventHandler  }}& event_handler) {
     return event_handler.HandleOneEvent(client_end_);
   }
   {{- end }}
  private:
    ::fidl::ClientEnd<{{ . }}> client_end_;
};
{{- end }}
`


text:
@inproceedings{yu_sequence-based_2020,
 abstract = {With the massive growth of community designed parts, opensource repositories such as SynBioHub [2] have become increasingly popular among synthetic biologists as a convenient way to store and share their genetic designs online. However, the sheer size of such repositories make it difficult to simply browse for the desired parts. The reference instance https://synbiohub.org) contains over 100,000 publicly
available parts in its repository, not counting the various private repositories added by users. Currently, users can only find a part based on a keyword in the part’s description, or through various filters such as date of creation, creator, or collection. However, prior to this work, it was not possible in SynBioHub to search for similar sequences.},
 address = {Virtual},
 author = {Yu, Eric and Myers, Chris},
 booktitle = {IWBDA2020Proceedings},
 keywords = {Search, Sequence, SynBioHub},
 language = {English},
 month = {August},
 pages = {76--77},
 title = {Sequence-based Searching for SynBioHub Using VSEARCH},
 url = {https://www.iwbdaconf.org/2020/docs/IWBDA2020Proceedings.pdf},
 year = {2020}
}

gha_language: HTML


text:
SECTION = "kernel"
SUMMARY = "Mainline Linux kernel for TI devices"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"

inherit kernel

require recipes-kernel/linux/kernel-rdepends.inc
require recipes-kernel/linux/ti-kernel.inc

DEPENDS += "gmp-native libmpc-native"

KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT} \
		      ${EXTRA_DTC_ARGS}"

S = "${WORKDIR}/git"

# 6.2 Mainline version
SRCREV = "c9c3395d5e3dcc6daee66c6908354d47bf98cb0c"
PV = "6.2+git${SRCPV}"

# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
MACHINE_KERNEL_PR:append = "b"
PR = "${MACHINE_KERNEL_PR}"

KERNEL_GIT_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git"
KERNEL_GIT_PROTOCOL = "https"
KERNEL_GIT_BRANCH = "master"
SRC_URI += " \
	${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${KERNEL_GIT_BRANCH} \
"

DEFCONFIG_NAME = "multi_v7_defconfig"
DEFCONFIG_NAME:omapl138 = "davinci_all_defconfig"
DEFCONFIG_NAME:k3 = "defconfig"
KERNEL_CONFIG_COMMAND = "oe_runmake -C ${S} O=${B} ${DEFCONFIG_NAME}"

do_shared_workdir:prepend() {
	cd ${B}
	echo >> Module.symvers
}

FILES:${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/*.itb"

repository: YoeDistro/meta-ti

repo_name: YoeDistro/meta-ti

gha_language: BitBake


text:
package v1

import (
	"errors"
	"strconv"
	"strings"

	"github.com/gomodule/redigo/redis"
)

type User struct {
	ID   int    `redis:"id"`
	Name string `redis:"name"`
	Age  int    `redis:"age"`
	City string `redis:"city"`
}

var userKeyPrefix = "user:"

var (
	ErrNoUserFound = errors.New("no user found")
)

func ListAllUsers(conn redis.Conn) ([]*User, error) {
	//Fetch all the keys match this pattern "user:[0-9]"
	userIDPattern := userKeyPrefix + "[0-9]"
	keys, err := redis.Strings(conn.Do("KEYS", userIDPattern))
	if err != nil {
		return nil, err
	}
	//Loop through found user keys and fetch each user record
	var users []*User
	for _, key := range keys {
		idString := strings.TrimPrefix(key, userKeyPrefix)
		id, err := strconv.Atoi(idString)
		if err != nil {
			return nil, err
		}
		user, err := FindUserByID(conn, id)
		if err != nil {
			return nil, err
		}
		users = append(users, user)
	}

	return users, nil
}

func FindUserByID(conn redis.Conn, userID int) (*User, error) {
	userKey := userKeyPrefix + strconv.Itoa(userID)
	//get all the values stores for this userKey
	values, err := redis.Values(conn.Do("HGETALL", userKey))
	if err != nil {
		return nil, err
	}
	if len(values) == 0 {
		return nil, ErrNoUserFound
	}
	var user User
	//map stored values to redis user struct
	err = redis.ScanStruct(values, &user)
	if err != nil {
		return nil, err
	}
	return &user, nil
}

func CreateOrUpdateUser(conn redis.Conn, user *User) error {
	var (
		id     int
		err    error
		userID string
		exists int
	)

	//check input user.ID to either create or update
	if user.ID > 0 {
		userID = "user:" + strconv.Itoa(user.ID)
		exists, err = redis.Int(conn.Do("EXISTS", userID))
		if exists == 0 {
			return ErrNoUserFound
		}
	} else {
		id, err = getNewUserID(conn)
		if err != nil {
			return err
		}
		user.ID = id
		userID = "user:" + strconv.Itoa(id)
	}

	if _, err = conn.Do("HMSET", redis.Args{}.Add(userID).AddFlat(user)...); err != nil {
		return err
	}
	return nil
}

//getNewUserID is to use userIncrID as an auto increment key for userID
func getNewUserID(conn redis.Conn) (int, error) {
	var (
		key    = "userIncrID"
		id     int
		err    error
		exists int
	)

	exists, err = redis.Int(conn.Do("EXISTS", key))
	if err != nil {
		return 0, err
	}
	//if userIncrID is not set, set to 1 as initial id
	if exists == 0 {
		_, err = redis.String(conn.Do("SET", key, 1))
		if err != nil {
			return 0, err
		}
		return 1, nil
	}

	id, err = redis.Int(conn.Do("INCR", key))
	if err != nil {
		return 0, err
	}
	return id, nil
}

repository: ruinr/rest-api-sample

repo_name: ruinr/rest-api-sample


text:
package isocodes

import (
    "fmt"
)

type Numeric int

func (n Numeric) String() string {
    return fmt.Sprintf("%03d", n)
}

repository: rutm/isocodes

repo_name: rutm/isocodes


text:
@online{circle_systems_stat,
	title = {Stat Transfer Data Conversion Software Utility},
	url = {http://www.stattransfer.com/},
	abstract = {Excerpt: "Stat/Transfer has provided fast, reliable, and convenient data transfer between popular software packages for thousands of users, worldwide. Stat/Transfer knows about statistical data --- it handles missing data, value and variable labels and all of the other details that are necessary to move as much information as is possible from one file format to another."},
	author = {Circle Systems},
	urldate = {2011-02-22}
}

@article{rivera_prospective_2008,
	title = {Prospective, randomized evaluation of a personal digital assistant-based research tool in the emergency department},
	volume = {8},
	issn = {1472-6947},
	url = {http://www.biomedcentral.com/1472-6947/8/3},
	doi = {10.1186/1472-6947-8-3},
	abstract = {Abstract: "{BACKGROUND}: Personal digital assistants ({PDA}) offer putative advantages over paper for collecting research data. However, there are no data prospectively comparing {PDA} and paper in the emergency department. The aim of this study was to prospectively compare the performance of {PDA} and paper enrollment instruments with respect to time required and errors generated. {METHODS}: We randomized consecutive patients enrolled in an ongoing prospective study to having their data recorded either on a {PDA} or a paper data collection instrument. For each method, we recorded the total time required for enrollment, and the time required for manual transcription (paper) onto a computer database. We compared data error rates by examining missing data, nonsensical data, and errors made during the transcription of paper forms. Statistical comparisons were performed by Kruskal-Wallis and Poisson regression analyses for time and errors, respectively. {RESULTS}: We enrolled 68 patients (37 {PDA}, 31 paper). Two of 31 paper forms were not available for analysis. Total data gathering times, inclusive of transcription, were significantly less for {PDA} (6:13 min per patient) compared to paper (9:12 min per patient; p {\textless} 0.001). There were a total of 0.9 missing and nonsense errors per paper form compared to 0.2 errors per {PDA} form (p {\textless} 0.001). An additional 0.7 errors per paper form were generated during transcription. In total, there were 1.6 errors per paper form and 0.2 errors per {PDA} form (p {\textless} 0.001). {CONCLUSION}: Using a {PDA}-based data collection instrument for clinical research reduces the time required for data gathering and significantly improves data integrity."},
	pages = {3},
	number = {1},
	journaltitle = {{BMC} Medical Informatics and Decision Making},
	author = {Rivera, Morris and Donnelly, Jason and Parry, Blair and Dinizio, Anthony and Johnson, Charles and Kline, Jeffrey and Kabrhel, Christopher},
	urldate = {2011-02-22},
	date = {2008}
}

@article{pogue_should_2009,
	title = {Should You Worry About Data Rot?},
	issn = {0362-4331},
	url = {http://www.nytimes.com/2009/03/26/technology/personaltech/26pogue-email.html},
	abstract = {Excerpt: "Data rot refers mainly to problems with the medium on which information is stored. Over time, things like temperature, humidity, exposure to light, being stored not-very-good locations like moldy basements, make this information very difficult to read. The second aspect of data rot is actually finding the machines to read them. And that is a real problem. If you think of the 8-track tape player, for example, basically the only way you can find 8-track cartridges is in a flea market or a garage sale."},
	journaltitle = {The New York Times},
	author = {Pogue, David},
	urldate = {2009-03-30},
	date = {2009-03-26},
	keywords = {Data management}
}

repository: pmean/build-website

repo_name: pmean/build-website


text:
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build darwin dragonfly freebsd linux netbsd openbsd solaris

package net

import (
	"github.com/h4ck3rm1k3/gocore/reflect"
	"testing"
)

var dnsReadConfigTests = []struct {
	name string
	conf dnsConfig
}{
	{
		name: "testdata/resolv.conf",
		conf: dnsConfig{
			servers:  []string{"8.8.8.8", "2001:4860:4860::8888", "fe80::1%lo0"},
			search:   []string{"localdomain"},
			ndots:    5,
			timeout:  10,
			attempts: 3,
			rotate:   true,
		},
	},
	{
		name: "testdata/domain-resolv.conf",
		conf: dnsConfig{
			servers:  []string{"8.8.8.8"},
			search:   []string{"localdomain"},
			ndots:    1,
			timeout:  5,
			attempts: 2,
		},
	},
	{
		name: "testdata/search-resolv.conf",
		conf: dnsConfig{
			servers:  []string{"8.8.8.8"},
			search:   []string{"test", "invalid"},
			ndots:    1,
			timeout:  5,
			attempts: 2,
		},
	},
	{
		name: "testdata/empty-resolv.conf",
		conf: dnsConfig{
			ndots:    1,
			timeout:  5,
			attempts: 2,
		},
	},
}

func TestDNSReadConfig(t *testing.T) {
	for _, tt := range dnsReadConfigTests {
		conf, err := dnsReadConfig(tt.name)
		if err != nil {
			t.Fatal(err)
		}
		if !reflect.DeepEqual(conf, &tt.conf) {
			t.Errorf("got %v; want %v", conf, &tt.conf)
		}
	}
}