text:
// Copyright 2020-2021 Buf Technologies, Inc.
//
// 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 netconfig is roughly analogous to netrc but with json or yaml configuration
// and more validation.
package netconfig

// ExternalRemote represents a remote configuration in json or yaml.
type ExternalRemote struct {
	Address string        `json:"address,omitempty" yaml:"address,omitempty"`
	Login   ExternalLogin `json:"login,omitempty" yaml:"login,omitempty"`
}

// ExternalLogin represents a credentials configuration in json or yaml.
type ExternalLogin struct {
	Token string `json:"token,omitempty" yaml:"token,omitempty"`
}

// Remote represents the configuration required for a given address.
type Remote interface {
	Address() string
	Login() (Login, bool)

	toExternalRemote() ExternalRemote
}

// Login represents user credentials.
type Login interface {
	Token() string

	toExternalLogin() ExternalLogin
}

// RemoteProvider provides Remotes.
type RemoteProvider interface {
	// GetRemote gets the Remote for the address.
	//
	// Returns false if no such remote exists.
	GetRemote(address string) (Remote, bool)
	// WithUpdatedRemote returns a new RemoteProvider with the Remote updated at the given address.
	//
	// If this Remote already existed, this overwrites the existing remote.
	// If this Remote did not exist, this adds a new Remote.
	WithUpdatedRemote(address string, updatedToken string) (RemoteProvider, error)
	// WithoutRemote returns a new RemoteProvider with the Remove deleted.
	//
	// Returns false if the remote did not exist.
	WithoutRemote(address string) (RemoteProvider, bool)
	// ToExternalRemotes converts the RemoteProvider into sorted ExternalRemotes.
	//
	// Sorted by address.
	ToExternalRemotes() []ExternalRemote
}

// NewRemoteProvider returns a new RemoteProvider for the ExternalRemotes.
func NewRemoteProvider(externalRemotes []ExternalRemote) (RemoteProvider, error) {
	return newRemoteProvider(externalRemotes)
}

repository: powerman/buf

repo_name: powerman/buf

extension: go


text:
# WriteSmarterPackageVersionFile.cmake
#
# Mark J. Olah (mjo@cs.unm DOT edu)
# Copyright 2017-2018
# Licensed under the Apache License, Version 2.0
# https://www.apache.org/licenses/LICENSE-2.0
# See: LICENCE file
#
# A PackageVersion.cmake file generator that is aware of build types
#
# Options:
# Single Argument Keywords
#   VERSION - [optional] version string to match for this export.
#   CONFIG_DIR - [optional] [default: ${CMAKE_BINARY_DIR}] Location to configure the files before installation.
#                 This should also match where the build-tree export PackageConfig.cmake file is to enable version selection for
#                 build-tree exports in the user package registry.
#   TEMPLATE_FILE - [optional] Main template file for use by the ordinary WRITE_BASIC_CONFIG_VERSION_FILE
#   INSTALL_DIR - [optional] Default: lib/cmake/${PROJECT_NAME}
#   VERSION_COMPATIBILITY - [optional] Default: AnyNewerVersion Options: <AnyNewerVersion|SameMajorVersion|SameMinorVersion|ExactVersion>
#   BUILD_TYPE_COMPATIBILITY - [optional] Default: Exact Options:<Exact|Any>
# Multi-Argument Keywords
#   PROVIDED_COMPONENTS - List of provided components which enables the version file to check for required components and reject builds with missing required components.
#                         If this variable is not set, the component check with PackageConfigVersion.cmake is disabled.
#   EXPORTED_BUILD_TYPES - [optional] Default: ${BUILD_TYPE}
include(CMakePackageConfigHelpers)
set(_WriteSmarterPackageVersionFile_PATH ${CMAKE_CURRENT_LIST_DIR})
function(install_smarter_package_version_file)
    set(options)
    set(oneValueArgs VERSION TEMPLATE_FILE CONFIG_DIR INSTALL_DIR VERSION_COMPATIBILITY BUILD_TYPE_COMPATIBILITY)
    set(multiValueArgs PROVIDED_COMPONENTS EXPORTED_BUILD_TYPES)
    cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}"  ${ARGN})
    if(ARG_UNPARSED_ARGUMENTS)
        message(FATAL_ERROR "Unknown keywords given to install_smarter_package_version_file(): \"${ARG_UNPARSED_ARGUMENTS}\"")
    endif()
    if(NOT ARG_VERSION)
        set(ARG_VERSION ${PACKAGE_VERSION})
    endif()
    if(NOT ARG_CONFIG_DIR)
        set(ARG_CONFIG_DIR ${CMAKE_BINARY_DIR})
    endif()
    if(NOT ARG_INSTALL_DIR)
        set(ARG_INSTALL_DIR lib/cmake/${PROJECT_NAME})
    endif()
    if(NOT ARG_VERSION_COMPATIBILITY)
        set(ARG_VERSION_COMPATIBILITY AnyNewerVersion)
    endif()
    if(NOT ARG_BUILD_TYPE_COMPATIBILITY)
        set(ARG_BUILD_TYPE_COMPATIBILITY Exact)
    endif()
    if(NOT ARG_EXPORTED_BUILD_TYPES)
        string(TOLOWER "${CMAKE_BUILD_TYPE}" ARG_EXPORTED_BUILD_TYPES)
    endif()

    set(ARG_TEMPLATE_DIR ${_WriteSmarterPackageVersionFile_PATH}/Templates)

    #Generate the normal write_basic_config_version_file as ${PROJECT_NAME}ConfigVersionNumber.cmake
    set(ARG_NUMERIC_VERSION_FILE ${ARG_CONFIG_DIR}/${PROJECT_NAME}ConfigVersionNumber.cmake)
    if(NOT ARG_TEMPLATE_FILE)
        write_basic_config_version_file(${ARG_NUMERIC_VERSION_FILE} VERSION ${ARG_VERSION} COMPATIBILITY ${ARG_VERSION_COMPATIBILITY})
    else()
        write_basic_config_version_file(${ARG_NUMERIC_VERSION_FILE} VERSION ${ARG_VERSION} COMPATIBILITY ${ARG_VERSION_COMPATIBILITY}
                                        TEMPLATE_FILE ${ARG_TEMPLATE_FILE})
    endif()
    install(FILES ${ARG_NUMERIC_VERSION_FILE} DESTINATION ${ARG_INSTALL_DIR} COMPONENT Development)

    #Generate and install <Package>ConfigProvidedComponents.cmake
    # This files appends EXPORTED_BUILD_TYPES to PACKAGE_BUILD_TYPES when called by find_package for use in main PackageConfigVersion.cmake
    set(ARG_EXPORTED_PROVIDED_COMPONENTS_TEMPLATE ${ARG_TEMPLATE_DIR}/SmarterPackageVersionProvidedComponents.cmake.in)
    set(ARG_EXPORTED_PROVIDED_COMPONENTS_FILE ${ARG_CONFIG_DIR}/${PROJECT_NAME}ConfigProvidedComponents.cmake)
    configure_file(${ARG_EXPORTED_PROVIDED_COMPONENTS_TEMPLATE} ${ARG_EXPORTED_PROVIDED_COMPONENTS_FILE} @ONLY)
    install(FILES ${ARG_EXPORTED_PROVIDED_COMPONENTS_FILE} DESTINATION ${ARG_INSTALL_DIR} COMPONENT Development)

    #Generate and install <Package>ConfigVersionBuildType-<BUILD_TYPE>.cmake
    # This files appends EXPORTED_BUILD_TYPES to PACKAGE_BUILD_TYPES when called by find_package for use in main PackageConfigVersion.cmake
    set(ARG_EXPORTED_BUILD_TYPE_TEMPLATE ${ARG_TEMPLATE_DIR}/SmarterPackageVersionBuildType.cmake.in)
    string(CONCAT ARG_BUILD_TYPE_NAME ${ARG_EXPORTED_BUILD_TYPES})
    set(ARG_EXPORTED_BUILD_TYPE_FILE ${ARG_CONFIG_DIR}/${PROJECT_NAME}ConfigVersionBuildType-${ARG_BUILD_TYPE_NAME}.cmake)
    configure_file(${ARG_EXPORTED_BUILD_TYPE_TEMPLATE} ${ARG_EXPORTED_BUILD_TYPE_FILE} @ONLY)
    install(FILES ${ARG_EXPORTED_BUILD_TYPE_FILE} DESTINATION ${ARG_INSTALL_DIR} COMPONENT Development)

    #Generate and install the primary PackageConfigVersion.cmake file
    set(ARG_CONFIG_VERSION_TEMPLATE ${ARG_TEMPLATE_DIR}/SmarterPackageVersion.cmake.in)
    set(ARG_CONFIG_VERSION_FILE ${ARG_CONFIG_DIR}/${PROJECT_NAME}ConfigVersion.cmake)
    configure_file(${ARG_CONFIG_VERSION_TEMPLATE} ${ARG_CONFIG_VERSION_FILE} @ONLY)
    install(FILES ${ARG_CONFIG_VERSION_FILE} DESTINATION ${ARG_INSTALL_DIR} COMPONENT Development)
endfunction()

repository: markjolah/MexIFace-Example

license_type: permissive

repo_name: markjolah/MexIFace-Example

branch_name: refs/heads/master

extension: cmake


text:
#include "Stack.h"
#include <exception>

struct Node {
  unsigned data;
  Node* next;
};

class EmptyException : public std::exception {
    const char * what () const throw () {
      return "Empty Exception";
   }
};

Stack::Stack() {

    this->_top = nullptr;
    this-> _count = 0;

  // TODO.
}

void Stack::push(unsigned elem) {

    Node *ptr = new Node();
    ptr->data = elem;
    ptr->next = ptr;
    this->_top = ptr;
    this->_count++;

}

void Stack::pop() {
    if(isempty()){
        throw Stack::EmptyException();
    }
    else{
        Node *ptr = this->_top;
        this-> _top = this->_top-> next;
        delete(ptr);
        this-> _count--;
    }

}

unsigned Stack::top() {
     if(isempty()){
      throw Stack::EmptyException();
    }
    else{
        return this->_top->data;
    }
  return 0;

}

unsigned Stack::count() const {
  return this-> _count;
}

bool Stack::isempty(){

    if(this->_top == nullptr){
        return true;
    }
    else{
        return false;
    }
}

license: MIT

branch_name: refs/heads/main

extension: cpp


text:
# need a lower-case subdirectory name to use for the chosen build type
if (NOT CMAKE_BUILD_TYPE)
  message(WARNING "No CMAKE_BUILD_TYPE detected")
  set(lower_CMAKE_BUILD_TYPE "undefined")
else()
  string(TOLOWER ${CMAKE_BUILD_TYPE} lower_CMAKE_BUILD_TYPE)
endif()

# enumerate configurations we will support
if (NOT DEFINED CMAKE_CONFIGURATION_TYPES)
  set(VT_CONFIG_TYPES ${lower_CMAKE_BUILD_TYPE} "debug" "release" "relwithdebinfo")
else()
  set(VT_CONFIG_TYPES ${lower_CMAKE_BUILD_TYPE})
  foreach(type ${CMAKE_CONFIGURATION_TYPES})
    string(TOLOWER ${type} tmp_lowercase_type)
    list(APPEND VT_CONFIG_TYPES ${tmp_lowercase_type})
  endforeach(type)
  unset(tmp_lowercase_type)
endif()
list(REMOVE_DUPLICATES VT_CONFIG_TYPES)

# to speedup compiling, we can disable debug_print
if (${VT_DEBUG_FAST})
  set(VT_DEBUG_MODE_ON 0)
else()
  set(VT_DEBUG_MODE_ON 1)
endif()

# all debug_print and vt_print categories we can potentially compile in
set(
  cmake_vt_debug_modes_all
  "CatEnum::gen          | \
   CatEnum::runtime      | \
   CatEnum::active       | \
   CatEnum::term         | \
   CatEnum::termds       | \
   CatEnum::barrier      | \
   CatEnum::pipe         | \
   CatEnum::param        | \
   CatEnum::pool         | \
   CatEnum::reduce       | \
   CatEnum::rdma         | \
   CatEnum::rdma_channel | \
   CatEnum::handler      | \
   CatEnum::hierlb       | \
   CatEnum::gossiplb     | \
   CatEnum::scatter      | \
   CatEnum::serial_msg   | \
   CatEnum::sequence     | \
   CatEnum::trace        | \
   CatEnum::objgroup     | \
   CatEnum::location     | \
   CatEnum::lb           | \
   CatEnum::vrt_coll     | \
   CatEnum::group        | \
   CatEnum::broadcast      \
   "
)

option(vt_detector_disabled "Build VT with detector disabled" OFF)
option(vt_lb_enabled "Build VT with load balancing enabled" OFF)
option(vt_trace_enabled "Build VT with trace enabled" OFF)
option(vt_priorities_enabled "Build VT with message priorities enabled" ON)

set(
  vt_priority_bits_per_level 3 CACHE
  STRING "Number of bits to use per VT priority level"
)

if (${vt_detector_disabled})
  message(STATUS "Building VT with detector disabled")
  set(vt_feature_cmake_detector "0")
else()
  message(STATUS "Building VT with detector enabled")
  set(vt_feature_cmake_detector "1")
endif()

if (${vt_lb_enabled})
  message(STATUS "Building VT with load balancing enabled")
  set(vt_feature_cmake_lblite "1")
else()
  message(STATUS "Building VT with load balancing disabled")
  set(vt_feature_cmake_lblite "0")
endif()

if (${vt_trace_enabled})
  message(STATUS "Building VT with tracing enabled")
  set(vt_feature_cmake_trace_enabled "1")
else()
  message(STATUS "Building VT with tracing disabled")
  set(vt_feature_cmake_trace_enabled "0")
endif()

if (${vt_priorities_enabled})
  message(STATUS "Building VT with priorities enabled")
  message(
    STATUS
    "Building VT with priority bits per level: ${vt_priority_bits_per_level}"
  )
  set(vt_feature_cmake_priorities "1")
else()
  message(STATUS "Building VT with priorities disabled")
  set(vt_feature_cmake_priorities "0")
endif()

set(vt_feature_cmake_priority_bits_level "${vt_priority_bits_per_level}")

if (${vt_bit_check_overflow})
  message(STATUS "Building VT with bit check overflow")
  set(vt_feature_cmake_bit_check_overflow "1")
else()
  set(vt_feature_cmake_bit_check_overflow "0")
endif()

if (${vt_fcontext_enabled})
  message(STATUS "Building VT with fcontext (ULT) enabled")
  set(vt_feature_cmake_fcontext "1")
else()
  message(STATUS "Building VT with fcontext (ULT) disabled")
  set(vt_feature_cmake_fcontext "0")
endif()

if (${vt_mimalloc_enabled})
  message(STATUS "Building VT with mimalloc enabled")
  set(vt_feature_cmake_mimalloc "1")
else()
  message(STATUS "Building VT with mimalloc disabled")
  set(vt_feature_cmake_mimalloc "0")
endif()

option(vt_zoltan_enabled "Build VT with Zoltan" OFF)
if (vt_zoltan_enabled AND vt_zoltan_found)
  message(STATUS "Building VT with zoltan enabled")
  set(vt_feature_cmake_zoltan "1")
elseif (vt_zoltan_enabled AND NOT vt_zoltan_found)
  message(STATUS "Building VT with zoltan disabled (requested, but Zoltan not found)")
  set(vt_feature_cmake_zoltan "0")
else()
  message(STATUS "Building VT with zoltan disabled")
  set(vt_feature_cmake_zoltan "0")
endif()

if (vt_mpi_guards AND PERL_FOUND)
  message(STATUS "Building VT with user MPI prevention guards enabled")
  set(vt_feature_cmake_mpi_access_guards "1")
elseif (vt_mpi_guards AND NOT PERL_FOUND)
  # No perl? Can't generate wrapper source file.
  message(STATUS "Building VT with user MPI prevention guards disabled (requested, but perl not found)")
  set(vt_feature_cmake_mpi_access_guards "0")
else()
  message(STATUS "Building VT with user MPI prevention guards disabled")
  set(vt_feature_cmake_mpi_access_guards "0")
endif()

if(${vt_ci_build})
  set(vt_feature_cmake_ci_build "1")
else()
  set(vt_feature_cmake_ci_build "0")
endif()

message(STATUS "CI_BUILD = ${vt_feature_cmake_ci_build}")

set(vt_feature_cmake_no_feature "0")
set(vt_feature_cmake_production "0")

set (vt_feature_cmake_mpi_rdma "0")
set (vt_feature_cmake_print_term_msgs "0")
set (vt_feature_cmake_default_threading "1")
set (vt_feature_cmake_no_pool_alloc_env "0")
set (vt_feature_cmake_memory_pool "1")
set (vt_feature_cmake_cons_multi_idx "0")

set(cmake_vt_debug_modes_debug                 "${cmake_vt_debug_modes_all}")
set(cmake_vt_debug_modes_relwithdebinfo        "")
set(cmake_vt_debug_modes_release               "")
set(cmake_config_debug_enabled_debug           ${VT_DEBUG_MODE_ON})
set(cmake_config_debug_enabled_relwithdebinfo  0)
set(cmake_config_debug_enabled_release         0)

set(
  cmake_vt_modes
  ${cmake_vt_debug_modes_all}
)

# this loop executes over all known build types, not just the selected one
foreach(loop_build_type ${VT_CONFIG_TYPES})
  #message(STATUS "generating for build type=${loop_build_type}")

  # disable debug_print for unfamiliar build types
  if (NOT DEFINED cmake_vt_debug_modes_${loop_build_type})
    set(cmake_vt_debug_modes_${loop_build_type} "")
  endif()
  if (NOT DEFINED cmake_config_debug_enabled_${loop_build_type})
    set(cmake_config_debug_enabled_${loop_build_type} 0)
  endif()

  # use the debug_print modes specified for this build type before the loop
  set(
    cmake_vt_debug_modes
    ${cmake_vt_debug_modes_${loop_build_type}}
  )

  # assume production mode for everything except debug or CI build
  if (loop_build_type STREQUAL "debug" OR ${vt_feature_cmake_ci_build})
    set(vt_feature_cmake_production "0")
  else()
    set(vt_feature_cmake_production "1")
  endif()

  # use the debug_print configuration specified for this build type before the loop
  set(
    cmake_config_debug_enabled
    ${cmake_config_debug_enabled_${loop_build_type}}
  )

  # put the config file in a subdirectory corresponding to the lower case build name
  configure_file(
    ${PROJECT_BASE_DIR}/cmake_config.h.in
    ${PROJECT_BIN_DIR}/${loop_build_type}/vt/cmake_config.h @ONLY
  )

  # install the correct config file when this build is selected
  install(
    FILES            "${PROJECT_BINARY_DIR}/${loop_build_type}/vt/cmake_config.h"
    DESTINATION      include/vt
    CONFIGURATIONS   ${loop_build_type}
  )

  # append the lower-case build type to the library name
  string(TOUPPER ${loop_build_type} loop_build_type_upper)
  set(CMAKE_${loop_build_type_upper}_POSTFIX "-${loop_build_type}")
  set_target_properties(
    ${VIRTUAL_TRANSPORT_LIBRARY}
    PROPERTIES ${loop_build_type_upper}_POSTFIX "-${loop_build_type}"
  )
endforeach()

# message(STATUS "chosen build type=${CMAKE_BUILD_TYPE}")

# build types below are not case sensitive (but the directories are)
target_include_directories(
  ${VIRTUAL_TRANSPORT_LIBRARY} PUBLIC
  $<BUILD_INTERFACE:$<$<CONFIG:debug>:${PROJECT_BIN_DIR}/debug>>
  $<BUILD_INTERFACE:$<$<CONFIG:relwithdebinfo>:${PROJECT_BIN_DIR}/relwithdebinfo>>
  $<BUILD_INTERFACE:$<$<CONFIG:release>:${PROJECT_BIN_DIR}/release>>
  $<BUILD_INTERFACE:$<$<CONFIG:${CMAKE_BUILD_TYPE}>:${PROJECT_BIN_DIR}/${lower_CMAKE_BUILD_TYPE}>>
  $<BUILD_INTERFACE:$<$<CONFIG:>:${PROJECT_BIN_DIR}/undefined>>
  $<INSTALL_INTERFACE:include>
)

repository: YouCannotBurnMyShadow/vt

repo_name: YouCannotBurnMyShadow/vt


text:
#include <CL/sycl.hpp>
#include <iostream>
#include "oneAPI/pagani/demos/new_time_and_call.dp.hpp"
#include "oneAPI/mcubes/demo_utils.dp.hpp"
#include "common/oneAPI/integrands.hpp"

int
main(int argc, char** argv)
{
  int num_repeats = argc > 1 ? std::stoi(argv[1]) : 11;

  for (auto device : sycl::device::get_devices(sycl::info::device_type::gpu)) {
    std::cout << "  Device: " << device.get_info<sycl::info::device::name>()
              << std::endl;
  }

  //pagani kernels

  call_cubature_rules<F_1_8D, 8>(num_repeats);
  call_cubature_rules<F_2_8D, 8>(num_repeats);
  call_cubature_rules<F_3_8D, 8>(num_repeats);
  call_cubature_rules<F_4_8D, 8>(num_repeats);
  call_cubature_rules<F_5_8D, 8>(num_repeats);
  call_cubature_rules<F_6_8D, 8>(num_repeats);
  call_cubature_rules<F_1_7D, 7>(num_repeats);

  call_cubature_rules<F_1_7D, 7>(num_repeats);
  call_cubature_rules<F_2_7D, 7>(num_repeats);
  call_cubature_rules<F_3_7D, 7>(num_repeats);
  call_cubature_rules<F_4_7D, 7>(num_repeats);
  call_cubature_rules<F_5_7D, 7>(num_repeats);
  call_cubature_rules<F_6_7D, 7>(num_repeats);

  call_cubature_rules<F_1_6D, 6>(num_repeats);
  call_cubature_rules<F_2_6D, 6>(num_repeats);
  call_cubature_rules<F_3_6D, 6>(num_repeats);
  call_cubature_rules<F_4_6D, 6>(num_repeats);
  call_cubature_rules<F_5_6D, 6>(num_repeats);
  call_cubature_rules<F_6_6D, 6>(num_repeats);

  call_cubature_rules<SinSum_8D, 8>(num_repeats);
  call_cubature_rules<SinSum_7D, 7>(num_repeats);
  call_cubature_rules<SinSum_6D, 6>(num_repeats);
  call_cubature_rules<SinSum_5D, 5>(num_repeats);
  call_cubature_rules<SinSum_4D, 4>(num_repeats);
  call_cubature_rules<SinSum_3D, 3>(num_repeats);

  call_cubature_rules<Addition_8D, 8>(num_repeats);
  call_cubature_rules<Addition_7D, 7>(num_repeats);
  call_cubature_rules<Addition_6D, 6>(num_repeats);
  call_cubature_rules<Addition_5D, 5>(num_repeats);
  call_cubature_rules<Addition_4D, 4>(num_repeats);
  call_cubature_rules<Addition_3D, 3>(num_repeats);

  //mcubes kernels

  call_mcubes_kernel<F_1_8D, 8>(num_repeats);
  call_mcubes_kernel<F_2_8D, 8>(num_repeats);
  call_mcubes_kernel<F_3_8D, 8>(num_repeats);
  call_mcubes_kernel<F_4_8D, 8>(num_repeats);
  call_mcubes_kernel<F_5_8D, 8>(num_repeats);
  call_mcubes_kernel<F_6_8D, 8>(num_repeats);

  call_mcubes_kernel<F_1_7D, 7>(num_repeats);
  call_mcubes_kernel<F_2_7D, 7>(num_repeats);
  call_mcubes_kernel<F_3_7D, 7>(num_repeats);
  call_mcubes_kernel<F_4_7D, 7>(num_repeats);
  call_mcubes_kernel<F_5_7D, 7>(num_repeats);
  call_mcubes_kernel<F_6_7D, 7>(num_repeats);

  call_mcubes_kernel<F_1_6D, 6>(num_repeats);
  call_mcubes_kernel<F_2_6D, 6>(num_repeats);
  call_mcubes_kernel<F_3_6D, 6>(num_repeats);
  call_mcubes_kernel<F_4_6D, 6>(num_repeats);
  call_mcubes_kernel<F_5_6D, 6>(num_repeats);
  call_mcubes_kernel<F_6_6D, 6>(num_repeats);

  call_mcubes_kernel<SinSum_8D, 8>(num_repeats);
  call_mcubes_kernel<SinSum_7D, 7>(num_repeats);
  call_mcubes_kernel<SinSum_6D, 6>(num_repeats);
  call_mcubes_kernel<SinSum_5D, 5>(num_repeats);
  call_mcubes_kernel<SinSum_4D, 4>(num_repeats);
  call_mcubes_kernel<SinSum_3D, 3>(num_repeats);

  call_mcubes_kernel<Addition_8D, 8>(num_repeats);
  call_mcubes_kernel<Addition_7D, 7>(num_repeats);
  call_mcubes_kernel<Addition_6D, 6>(num_repeats);
  call_mcubes_kernel<Addition_5D, 5>(num_repeats);
  call_mcubes_kernel<Addition_4D, 4>(num_repeats);
  call_mcubes_kernel<Addition_3D, 3>(num_repeats);

    return 0;
}

repository: marcpaterno/gpuintegration

repo_name: marcpaterno/gpuintegration

gha_license_id: NOASSERTION


text:
package main

import (
	"fmt"
	"time"
)

func Help(s string) (a string, e error) {
	fmt.Println(s, time.Now())
	return s, nil
}

type Man struct{}

func (s *Man) Hello() error {
	fmt.Println("hello")
	return nil
}

func NewMan() *Man {
	return new(Man)
}


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.1.0">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting keepoldvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="no" active="no"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="no"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="no"/>
<layer number="4" name="Route4" color="1" fill="4" visible="no" active="no"/>
<layer number="5" name="Route5" color="4" fill="4" visible="no" active="no"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="no"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="no"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="no"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="no"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="no"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="no"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="no"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="no"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="no"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="no"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="no" active="no"/>
<layer number="17" name="Pads" color="2" fill="1" visible="no" active="no"/>
<layer number="18" name="Vias" color="2" fill="1" visible="no" active="no"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="no" active="no"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="no" active="no"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="no" active="no"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="no" active="no"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="no" active="no"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="no"/>
<layer number="25" name="tNames" color="7" fill="1" visible="no" active="no"/>
<layer number="26" name="bNames" color="7" fill="1" visible="no" active="no"/>
<layer number="27" name="tValues" color="7" fill="1" visible="no" active="no"/>
<layer number="28" name="bValues" color="7" fill="1" visible="no" active="no"/>
<layer number="29" name="tStop" color="15" fill="3" visible="no" active="no"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="no"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="no"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="no"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="no"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="no"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="no"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="no"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="no"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="no"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="no"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="no"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="no"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="no"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="no"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="no"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="no"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="no"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="no"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="no"/>
<layer number="49" name="Reference" color="13" fill="1" visible="no" active="no"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="14" fill="1" visible="no" active="no"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="no"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="88" name="SimResults" color="9" fill="1" visible="yes" active="yes"/>
<layer number="89" name="SimProbes" color="9" fill="1" visible="yes" active="yes"/>
<layer number="90" name="Modules" color="5" fill="1" visible="yes" active="yes"/>
<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>
<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="yes"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>
<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>
<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>
<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>
<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="yes" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="yes" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="yes" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="yes" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="yes" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="yes" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="yes" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="yes" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="yes" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="113" name="IDFDebug" color="4" fill="1" visible="yes" active="yes"/>
<layer number="114" name="Badge_Outline" color="7" fill="1" visible="no" active="yes"/>
<layer number="115" name="ReferenceISLANDS" color="7" fill="1" visible="no" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="yes" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="yes" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="yes" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="yes" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="yes" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="yes" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="yes" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="yes" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="yes" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="yes" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="yes" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="yes" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="yes" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="yes" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="yes" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="yes" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="232" name="Eagle3D_PG2" color="7" fill="1" visible="yes" active="yes"/>
<layer number="233" name="Eagle3D_PG3" color="7" fill="1" visible="yes" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="yes" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="yes" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="yes" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<schematic xreflabel="%F%N/%S" xrefpart="/%S.%C%R">
<libraries>
<library name="SparkFun-LED">
<description>
SparkFun LEDs

This library contains discrete LEDs for illumination or indication, but no displays.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is  the end user's responsibility to ensure correctness and suitablity for a given componet or application.

If you enjoy using this library, please buy one of our products at SparkFun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="LED-1206">
<description>
LED 1206 SMT

1206, surface mount.

Specifications:

Pin count: 2

Pin pitch:

Area: 0.125" x 0.06"

Example device(s):

LED

</description>
<wire x1="2.4" y1="0.6825" x2="2.4" y2="-0.6825" width="0.2032" layer="21"/>
<smd name="A" x="-1.5" y="0" dx="1.2" dy="1.4" layer="1"/>
<smd name="C" x="1.5" y="0" dx="1.2" dy="1.4" layer="1"/>
<text x="0" y="0.9525" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">>NAME</text>
<text x="0" y="-0.9525" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">>VALUE</text>
<wire x1="0.65375" y1="0.6825" x2="0.65375" y2="-0.6825" width="0.2032" layer="51"/>
<wire x1="0.635" y1="0" x2="0.15875" y2="0.47625" width="0.2032" layer="51"/>
<wire x1="0.635" y1="0" x2="0.15875" y2="-0.47625" width="0.2032" layer="51"/>
</package>
<package name="LED-0603">
<description>LED 0603 SMT

0603, surface mount.

Specifications:

Pin count: 2

Pin pitch:0.075inch

Area: 0.06" x 0.03"

Example device(s):

LED - BLUE
</description>
<smd name="C" x="0.877" y="0" dx="1" dy="1" layer="1" roundness="30" rot="R270"/>
<smd name="A" x="-0.877" y="0" dx="1" dy="1" layer="1" roundness="30" rot="R270"/>
<text x="0" y="0.635" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">>NAME</text>
<text x="0" y="-0.635" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">>VALUE</text>
<wire x1="1.5875" y1="0.47625" x2="1.5875" y2="-0.47625" width="0.127" layer="21"/>
<wire x1="0.15875" y1="0.47625" x2="0.15875" y2="0" width="0.127" layer="51"/>
<wire x1="0.15875" y1="0" x2="0.15875" y2="-0.47625" width="0.127" layer="51"/>
<wire x1="0.15875" y1="0" x2="-0.15875" y2="0.3175" width="0.127" layer="51"/>
<wire x1="0.15875" y1="0" x2="-0.15875" y2="-0.3175" width="0.127" layer="51"/>
</package>
<package name="SUPER_BRIGHT_SMD_LED_3014">
<description>3014 Package for LEDs</description>
<wire x1="-1.45" y1="0.7" x2="1.45" y2="0.7" width="0.127" layer="51"/>
<wire x1="1.45" y1="0.7" x2="1.45" y2="-0.7" width="0.127" layer="51"/>
<wire x1="1.45" y1="-0.7" x2="-1.45" y2="-0.7" width="0.127" layer="51"/>
<wire x1="-1.45" y1="-0.7" x2="-1.45" y2="0.7" width="0.127" layer="51"/>
<smd name="A" x="-1.2" y="0" dx="0.8" dy="1" layer="1" rot="R90" cream="no"/>
<smd name="C" x="0.827" y="0" dx="0.8" dy="1.9" layer="1" rot="R90" cream="no"/>
<wire x1="-1.5" y1="0.7" x2="1.5" y2="0.7" width="0.2032" layer="21"/>
<wire x1="1.5" y1="0.7" x2="1.5" y2="0.5" width="0.2032" layer="21"/>
<wire x1="1.5" y1="-0.5" x2="1.5" y2="-0.7" width="0.2032" layer="21"/>
<wire x1="1.5" y1="-0.7" x2="-1.5" y2="-0.7" width="0.2032" layer="21"/>
<wire x1="-1.5" y1="0.7" x2="-1.5" y2="0.5" width="0.2032" layer="21"/>
<wire x1="-1.5" y1="-0.7" x2="-1.5" y2="-0.5" width="0.2032" layer="21"/>
<rectangle x1="-0.075" y1="-0.35" x2="1.675" y2="0.35" layer="51"/>
<rectangle x1="-1.625" y1="-0.35" x2="-0.775" y2="0.35" layer="51"/>
<rectangle x1="-1.5" y1="-0.3" x2="-0.9" y2="0.3" layer="31"/>
<rectangle x1="0" y1="-0.3" x2="0.6" y2="0.3" layer="31"/>
<rectangle x1="1" y1="-0.3" x2="1.6" y2="0.3" layer="31"/>
<text x="-1.5" y="0.9" size="0.6096" layer="25" font="vector" ratio="20">>Name</text>
<text x="-1.5" y="-1.4" size="0.6096" layer="27" font="vector" ratio="20">>Value</text>
<wire x1="2.019" y1="0.6825" x2="2.019" y2="-0.6825" width="0.2032" layer="21"/>
</package>
</packages>
<symbols>
<symbol name="LED">
<description>
LED

</description>
<wire x1="1.27" y1="0" x2="0" y2="-2.54" width="0.254" layer="94"/>
<wire x1="0" y1="-2.54" x2="-1.27" y2="0" width="0.254" layer="94"/>
<wire x1="1.27" y1="-2.54" x2="0" y2="-2.54" width="0.254" layer="94"/>
<wire x1="0" y1="-2.54" x2="-1.27" y2="-2.54" width="0.254" layer="94"/>
<wire x1="1.27" y1="0" x2="-1.27" y2="0" width="0.254" layer="94"/>
<wire x1="-2.032" y1="-0.762" x2="-3.429" y2="-2.159" width="0.1524" layer="94"/>
<wire x1="-1.905" y1="-1.905" x2="-3.302" y2="-3.302" width="0.1524" layer="94"/>
<text x="-3.429" y="-4.572" size="1.778" layer="95" font="vector" rot="R90">>NAME</text>
<text x="1.905" y="-4.572" size="1.778" layer="96" font="vector" rot="R90" align="top-left">>VALUE</text>
<pin name="C" x="0" y="-5.08" visible="off" length="short" direction="pas" rot="R90"/>
<pin name="A" x="0" y="2.54" visible="off" length="short" direction="pas" rot="R270"/>
<polygon width="0.1524" layer="94">
<vertex x="-3.429" y="-2.159"/>
<vertex x="-3.048" y="-1.27"/>
<vertex x="-2.54" y="-1.778"/>
</polygon>
<polygon width="0.1524" layer="94">
<vertex x="-3.302" y="-3.302"/>
<vertex x="-2.921" y="-2.413"/>
<vertex x="-2.413" y="-2.921"/>
</polygon>
</symbol>
</symbols>
<devicesets>
<deviceset name="LED-WHITE" prefix="D" uservalue="yes">
<description>
White SMD LED

Used in manufacturing several products at SparkFun.

Packages:

 0603 - Bright White SMD 0603  package[Product Link]

 1206 - Bright White SMD1206  package [Product Link]

 3014 - Super Bright SMD 3014 package [Datasheet]

SparkFun Products:

Blackberry Trackballer Breakout

Digital SandBox

</description>
<gates>
<gate name="G$1" symbol="LED" x="0" y="0"/>
</gates>
<devices>
<device name="1206" package="LED-1206">
<connects>
<connect gate="G$1" pin="A" pad="A"/>
<connect gate="G$1" pin="C" pad="C"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="DIO-09955" constant="no"/>
<attribute name="VALUE" value="WHITE" constant="no"/>
</technology>
</technologies>
</device>
<device name="0603" package="LED-0603">
<connects>
<connect gate="G$1" pin="A" pad="A"/>
<connect gate="G$1" pin="C" pad="C"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="DIO-09004"/>
<attribute name="VALUE" value="WHITE" constant="no"/>
</technology>
</technologies>
</device>
<device name="3014" package="SUPER_BRIGHT_SMD_LED_3014">
<connects>
<connect gate="G$1" pin="A" pad="A"/>
<connect gate="G$1" pin="C" pad="C"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="DIO-13728" constant="no"/>
<attribute name="VALUE" value="White, 60mA" constant="no"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
<library name="SparkFun-Resistors">
<description>
SparkFun Resistors

This library contains resistors. Reference designator:R.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is  the end user's responsibility to ensure correctness and suitablity for a given componet or application.

If you enjoy using this library, please buy one of our products at SparkFun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="AXIAL-0.3">
<description>
AXIAL-0.3

Commonly used for 1/4W through-hole resistors. 0.3" pitch between holes.
</description>
<wire x1="-2.54" y1="0.762" x2="2.54" y2="0.762" width="0.2032" layer="21"/>
<wire x1="2.54" y1="0.762" x2="2.54" y2="0" width="0.2032" layer="21"/>
<wire x1="2.54" y1="0" x2="2.54" y2="-0.762" width="0.2032" layer="21"/>
<wire x1="2.54" y1="-0.762" x2="-2.54" y2="-0.762" width="0.2032" layer="21"/>
<wire x1="-2.54" y1="-0.762" x2="-2.54" y2="0" width="0.2032" layer="21"/>
<wire x1="-2.54" y1="0" x2="-2.54" y2="0.762" width="0.2032" layer="21"/>
<wire x1="2.54" y1="0" x2="2.794" y2="0" width="0.2032" layer="21"/>
<wire x1="-2.54" y1="0" x2="-2.794" y2="0" width="0.2032" layer="21"/>
<pad name="P$1" x="-3.81" y="0" drill="0.9" diameter="1.8796"/>
<pad name="P$2" x="3.81" y="0" drill="0.9" diameter="1.8796"/>
<text x="0" y="1.016" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">>Name</text>
<text x="0" y="-1.016" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">>Value</text>
</package>
<package name="AXIAL-0.3EZ">
<description>This is the "EZ" version of the standard .3" spaced resistor package.

It has a reduced top mask to make it harder to install upside-down.</description>
<wire x1="-2.54" y1="0.762" x2="2.54" y2="0.762" width="0.2032" layer="21"/>
<wire x1="2.54" y1="0.762" x2="2.54" y2="0" width="0.2032" layer="21"/>
<wire x1="2.54" y1="0" x2="2.54" y2="-0.762" width="0.2032" layer="21"/>
<wire x1="2.54" y1="-0.762" x2="-2.54" y2="-0.762" width="0.2032" layer="21"/>
<wire x1="-2.54" y1="-0.762" x2="-2.54" y2="0" width="0.2032" layer="21"/>
<wire x1="-2.54" y1="0" x2="-2.54" y2="0.762" width="0.2032" layer="21"/>
<wire x1="2.54" y1="0" x2="2.794" y2="0" width="0.2032" layer="21"/>
<wire x1="-2.54" y1="0" x2="-2.794" y2="0" width="0.2032" layer="21"/>
<pad name="P$1" x="-3.81" y="0" drill="0.9" diameter="1.8796" stop="no"/>
<pad name="P$2" x="3.81" y="0" drill="0.9" diameter="1.8796" stop="no"/>
<text x="0" y="1.016" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">>Name</text>
<text x="0" y="-1.016" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">>Value</text>
<circle x="-3.81" y="0" radius="0.508" width="0" layer="29"/>
<circle x="3.81" y="0" radius="0.523634375" width="0" layer="29"/>
<circle x="-3.81" y="0" radius="1.02390625" width="0" layer="30"/>
<circle x="3.81" y="0" radius="1.04726875" width="0" layer="30"/>
</package>
<package name="AXIAL-0.1">
<description>
AXIAL-0.1

Commonly used for 1/4W through-hole resistors. 0.1" pitch between holes.
</description>
<wire x1="0" y1="-0.762" x2="0" y2="0" width="0.2032" layer="21"/>
<wire x1="0" y1="0" x2="0" y2="0.762" width="0.2032" layer="21"/>
<wire x1="0.254" y1="0" x2="0" y2="0" width="0.2032" layer="21"/>
<wire x1="0" y1="0" x2="-0.254" y2="0" width="0.2032" layer="21"/>
<pad name="P$1" x="-1.27" y="0" drill="0.9" diameter="1.8796"/>
<pad name="P$2" x="1.27" y="0" drill="0.9" diameter="1.8796"/>
<text x="0" y="1.143" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">>Name</text>
<text x="0" y="-1.143" size="0.6096" layer="21" font="vector" ratio="20" align="top-center">>Value</text>
</package>
<package name="AXIAL-0.1-KIT">
<description>
AXIAL-0.1-KIT

Commonly used for 1/4W through-hole resistors. 0.1" pitch between holes.

Warning: This is the KIT version of the AXIAL-0.1 package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side.
</description>
<wire x1="0" y1="-0.762" x2="0" y2="0" width="0.2032" layer="21"/>
<wire x1="0" y1="0" x2="0" y2="0.762" width="0.2032" layer="21"/>
<wire x1="0.254" y1="0" x2="0" y2="0" width="0.2032" layer="21"/>
<wire x1="0" y1="0" x2="-0.254" y2="0" width="0.2032" layer="21"/>
<pad name="P$1" x="-1.27" y="0" drill="0.9" diameter="1.8796" stop="no"/>
<pad name="P$2" x="1.27" y="0" drill="0.9" diameter="1.8796" stop="no"/>
<text x="0" y="1.143" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">>Name</text>
<text x="0" y="-1.143" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">>Value</text>
<circle x="-1.27" y="0" radius="0.4572" width="0" layer="29"/>
<circle x="-1.27" y="0" radius="1.016" width="0" layer="30"/>
<circle x="1.27" y="0" radius="1.016" width="0" layer="30"/>
<circle x="-1.27" y="0" radius="0.4572" width="0" layer="29"/>
<circle x="1.27" y="0" radius="0.4572" width="0" layer="29"/>
</package>
<package name="0603">
<description>
Generic 1608 (0603) package

0.2mm courtyard excess rounded to nearest 0.05mm.
</description>
<wire x1="-1.6" y1="0.7" x2="1.6" y2="0.7" width="0.0508" layer="39"/>
<wire x1="1.6" y1="0.7" x2="1.6" y2="-0.7" width="0.0508" layer="39"/>
<wire x1="1.6" y1="-0.7" x2="-1.6" y2="-0.7" width="0.0508" layer="39"/>
<wire x1="-1.6" y1="-0.7" x2="-1.6" y2="0.7" width="0.0508" layer="39"/>
<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
<text x="0" y="0.762" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">>NAME</text>
<text x="0" y="-0.762" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">>VALUE</text>
<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
</package>
</packages>
<symbols>
<symbol name="RESISTOR">
<wire x1="-2.54" y1="0" x2="-2.159" y2="1.016" width="0.1524" layer="94"/>
<wire x1="-2.159" y1="1.016" x2="-1.524" y2="-1.016" width="0.1524" layer="94"/>
<wire x1="-1.524" y1="-1.016" x2="-0.889" y2="1.016" width="0.1524" layer="94"/>
<wire x1="-0.889" y1="1.016" x2="-0.254" y2="-1.016" width="0.1524" layer="94"/>
<wire x1="-0.254" y1="-1.016" x2="0.381" y2="1.016" width="0.1524" layer="94"/>
<wire x1="0.381" y1="1.016" x2="1.016" y2="-1.016" width="0.1524" layer="94"/>
<wire x1="1.016" y1="-1.016" x2="1.651" y2="1.016" width="0.1524" layer="94"/>
<wire x1="1.651" y1="1.016" x2="2.286" y2="-1.016" width="0.1524" layer="94"/>
<wire x1="2.286" y1="-1.016" x2="2.54" y2="0" width="0.1524" layer="94"/>
<text x="0" y="1.524" size="1.778" layer="95" font="vector" align="bottom-center">>NAME</text>
<text x="0" y="-1.524" size="1.778" layer="96" font="vector" align="top-center">>VALUE</text>
<pin name="2" x="5.08" y="0" visible="off" length="short" direction="pas" swaplevel="1" rot="R180"/>
<pin name="1" x="-5.08" y="0" visible="off" length="short" direction="pas" swaplevel="1"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="100OHM" prefix="R">
<description>
100Ω resistor

A resistor is a passive two-terminal electrical component that implements electrical resistance as a circuit element. Resistors act to reduce current flow, and, at the same time, act to lower voltage levels within circuits. - Wikipedia
</description>
<gates>
<gate name="G$1" symbol="RESISTOR" x="0" y="0"/>
</gates>
<devices>
<device name="-HORIZ-1/4W-1%" package="AXIAL-0.3">
<connects>
<connect gate="G$1" pin="1" pad="P$1"/>
<connect gate="G$1" pin="2" pad="P$2"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="RES-12181" constant="no"/>
<attribute name="VALUE" value="100" constant="no"/>
</technology>
</technologies>
</device>
<device name="-HORIZ_KIT-1/4W-1%" package="AXIAL-0.3EZ">
<connects>
<connect gate="G$1" pin="1" pad="P$1"/>
<connect gate="G$1" pin="2" pad="P$2"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="RES-12181" constant="no"/>
<attribute name="VALUE" value="100" constant="no"/>
</technology>
</technologies>
</device>
<device name="-VERT-1/4W-1%" package="AXIAL-0.1">
<connects>
<connect gate="G$1" pin="1" pad="P$1"/>
<connect gate="G$1" pin="2" pad="P$2"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="RES-12181"/>
<attribute name="VALUE" value="100"/>
</technology>
</technologies>
</device>
<device name="-VERT_KIT-1/4W-1%" package="AXIAL-0.1-KIT">
<connects>
<connect gate="G$1" pin="1" pad="P$1"/>
<connect gate="G$1" pin="2" pad="P$2"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="RES-12181" constant="no"/>
<attribute name="VALUE" value="100" constant="no"/>
</technology>
</technologies>
</device>
<device name="-0603-1/4W-5%" package="0603">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="RES-12438"/>
<attribute name="VALUE" value="100"/>
</technology>
</technologies>
</device>
<device name="-0603-1/10W-1%" package="0603">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="RES-07863"/>
<attribute name="VALUE" value="100"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
<library name="SparkFun-PowerSymbols">
<description>
SparkFun Power Symbols

This library contains power, ground, and voltage-supply symbols.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is  the end user's responsibility to ensure correctness and suitablity for a given componet or application.

If you enjoy using this library, please buy one of our products at SparkFun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
</packages>
<symbols>
<symbol name="DGND">
<description>
Digital Ground Supply
</description>
<wire x1="-1.905" y1="0" x2="1.905" y2="0" width="0.254" layer="94"/>
<pin name="GND" x="0" y="2.54" visible="off" length="short" direction="sup" rot="R270"/>
<text x="0" y="-0.254" size="1.778" layer="96" align="top-center">>VALUE</text>
</symbol>
<symbol name="VCC">
<description>
VCC Voltage Supply
</description>
<wire x1="0.762" y1="1.27" x2="0" y2="2.54" width="0.254" layer="94"/>
<wire x1="0" y1="2.54" x2="-0.762" y2="1.27" width="0.254" layer="94"/>
<pin name="VCC" x="0" y="0" visible="off" length="short" direction="sup" rot="R90"/>
<text x="0" y="2.794" size="1.778" layer="96" align="bottom-center">>VALUE</text>
</symbol>
<symbol name="V_BATT">
<description>
Battery Voltage Supply
</description>
<wire x1="0.762" y1="1.27" x2="0" y2="2.54" width="0.254" layer="94"/>
<wire x1="0" y1="2.54" x2="-0.762" y2="1.27" width="0.254" layer="94"/>
<pin name="V_BATT" x="0" y="0" visible="off" length="short" direction="sup" rot="R90"/>
<text x="0" y="2.794" size="1.778" layer="96" align="bottom-center">>VALUE</text>
</symbol>
</symbols>
<devicesets>
<deviceset name="GND" prefix="GND">
<description>
Ground Supply Symbol

Generic signal ground supply symbol.
</description>
<gates>
<gate name="1" symbol="DGND" x="0" y="0"/>
</gates>
<devices>
<device name="">
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="VCC" prefix="SUPPLY">
<description>
VCC Voltage Supply

Positive voltage supply (traditionally for a BJT device, C=collector).
</description>
<gates>
<gate name="G$1" symbol="VCC" x="0" y="0"/>
</gates>
<devices>
<device name="">
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="V_BATT" prefix="SUPPLY">
<description>
Battery Voltage Supply

Generic symbol for the battery input to a system.
</description>
<gates>
<gate name="G$1" symbol="V_BATT" x="0" y="0"/>
</gates>
<devices>
<device name="">
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
<library name="SparkFun-Switches">
<description>
SparkFun Switches, Buttons, Encoders

In this library you'll find switches, buttons, joysticks, and anything that moves to create or disrupt an electrical connection.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is  the end user's responsibility to ensure correctness and suitablity for a given componet or application.

If you enjoy using this library, please buy one of our products at SparkFun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="SWITCH_SPDT_PTH_11.6X4.0MM">
<description>
SPDT PTH Slide Switch

Single-pole, double-throw (SPDT) switch.

Dimensional Drawing
</description>
<wire x1="2.175" y1="5.815" x2="-2.175" y2="5.815" width="0.2032" layer="21"/>
<wire x1="-2.175" y1="5.815" x2="-2.175" y2="-5.815" width="0.2032" layer="21"/>
<wire x1="-2.175" y1="-5.815" x2="2.175" y2="-5.815" width="0.2032" layer="21"/>
<wire x1="2.175" y1="-5.815" x2="2.175" y2="5.815" width="0.2032" layer="21"/>
<pad name="1" x="0" y="2.54" drill="1.016" diameter="1.8796"/>
<pad name="2" x="0" y="0" drill="1.016" diameter="1.8796"/>
<pad name="3" x="0" y="-2.54" drill="1.016" diameter="1.8796"/>
<text x="-2.413" y="0" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">>Name</text>
<text x="2.413" y="0" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="top-center">>Value</text>
</package>
<package name="SWITCH_DPDT_SMD_AYZ0202">
<description>
ITT Industries AYZ0202 DPDT Switch - SMD

Double-pole, double-throw switches.

Datasheet
</description>
<wire x1="-3.6" y1="1.75" x2="-3.6" y2="-1.75" width="0.2032" layer="21"/>
<wire x1="-3.6" y1="-1.75" x2="3.6" y2="-1.75" width="0.2032" layer="21"/>
<wire x1="3.6" y1="-1.75" x2="3.6" y2="1.75" width="0.2032" layer="21"/>
<wire x1="3.6" y1="1.75" x2="-3.6" y2="1.75" width="0.2032" layer="21"/>
<smd name="3" x="2.5" y="2.825" dx="1" dy="1.15" layer="1"/>
<smd name="2" x="0" y="2.825" dx="1" dy="1.15" layer="1"/>
<smd name="1" x="-2.5" y="2.825" dx="1" dy="1.15" layer="1"/>
<smd name="6" x="2.5" y="-2.825" dx="1" dy="1.15" layer="1"/>
<smd name="5" x="0" y="-2.825" dx="1" dy="1.15" layer="1"/>
<smd name="4" x="-2.5" y="-2.825" dx="1" dy="1.15" layer="1"/>
<hole x="1.5" y="0" drill="0.85"/>
<hole x="-1.5" y="0" drill="0.85"/>
<text x="-3.81" y="0" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">>Name</text>
<text x="3.81" y="0" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="top-center">>Value</text>
</package>
<package name="SWITCH_SPDT_PTH_11.6X4.0MM_LOCK">
<description>
SPDT PTH Slide Switch - Locking Footprint

Single-pole, double-throw (SPDT) switch.

Warning: This is the LOCK version of this package. This package has offset PTH pins, which help to hold the part in place while soldering.

Dimensional Drawing
</description>
<wire x1="2.175" y1="5.815" x2="-2.175" y2="5.815" width="0.2032" layer="21"/>
<wire x1="-2.175" y1="5.815" x2="-2.175" y2="-5.815" width="0.2032" layer="21"/>
<wire x1="-2.175" y1="-5.815" x2="2.175" y2="-5.815" width="0.2032" layer="21"/>
<wire x1="2.175" y1="-5.815" x2="2.175" y2="5.815" width="0.2032" layer="21"/>
<pad name="1" x="0" y="2.7178" drill="1.016" diameter="1.8796"/>
<pad name="2" x="0" y="0" drill="1.016" diameter="1.8796"/>
<pad name="3" x="0" y="-2.7178" drill="1.016" diameter="1.8796"/>
<rectangle x1="-0.2286" y1="-0.3048" x2="0.2286" y2="0.3048" layer="51"/>
<rectangle x1="-0.2286" y1="2.2352" x2="0.2286" y2="2.8448" layer="51"/>
<rectangle x1="-0.2286" y1="-2.8448" x2="0.2286" y2="-2.2352" layer="51"/>
<text x="-2.413" y="0" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">>Name</text>
<text x="2.413" y="0" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="top-center">>Value</text>
</package>
<package name="SWITCH_SPDT_PTH_11.6X4.0MM_KIT">
<description>
SPDT PTH Slide Switch - KIT Footprint

Single-pole, double-throw (SPDT) switch.

Warning: This is the KIT version of this package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side.

Dimensional Drawing
</description>
<wire x1="2.175" y1="5.815" x2="-2.175" y2="5.815" width="0.2032" layer="21"/>
<wire x1="-2.175" y1="5.815" x2="-2.175" y2="-5.815" width="0.2032" layer="21"/>
<wire x1="-2.175" y1="-5.815" x2="2.175" y2="-5.815" width="0.2032" layer="21"/>
<wire x1="2.175" y1="-5.815" x2="2.175" y2="5.815" width="0.2032" layer="21"/>
<pad name="1" x="0" y="2.7178" drill="1.016" diameter="1.8796" stop="no"/>
<pad name="2" x="0" y="0" drill="1.016" diameter="1.8796" stop="no"/>
<pad name="3" x="0" y="-2.7178" drill="1.016" diameter="1.8796" stop="no"/>
<rectangle x1="-0.2286" y1="-0.3048" x2="0.2286" y2="0.3048" layer="51"/>
<rectangle x1="-0.2286" y1="2.2352" x2="0.2286" y2="2.8448" layer="51"/>
<rectangle x1="-0.2286" y1="-2.8448" x2="0.2286" y2="-2.2352" layer="51"/>
<polygon width="0.127" layer="30">
<vertex x="-0.0178" y="1.8414" curve="-90.039946"/>
<vertex x="-0.8787" y="2.6975" curve="-90"/>
<vertex x="-0.0026" y="3.5916" curve="-90.006409"/>
<vertex x="0.8738" y="2.6975" curve="-90.03214"/>
</polygon>
<polygon width="0.127" layer="30">
<vertex x="-0.0051" y="-3.5967" curve="-90.006558"/>
<vertex x="-0.8788" y="-2.7431" curve="-90.037923"/>
<vertex x="0.0128" y="-1.8363" curve="-90.006318"/>
<vertex x="0.8814" y="-2.7432" curve="-90.038792"/>
</polygon>
<polygon width="0.127" layer="30">
<vertex x="-0.0102" y="-0.8738" curve="-90.019852"/>
<vertex x="-0.8762" y="-0.0203" curve="-90.019119"/>
<vertex x="0.0153" y="0.8789" curve="-90"/>
<vertex x="0.8739" y="-0.0077" curve="-90.038897"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="0" y="2.2758" curve="-90.012891"/>
<vertex x="-0.4445" y="2.7" curve="-90"/>
<vertex x="0" y="3.1673" curve="-90"/>
<vertex x="0.4419" y="2.7102" curve="-90.012967"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="0.0026" y="-3.1648" curve="-90.012891"/>
<vertex x="-0.4419" y="-2.7406" curve="-90"/>
<vertex x="0.0026" y="-2.2733" curve="-90"/>
<vertex x="0.4445" y="-2.7304" curve="-90.012967"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="0.0102" y="-0.4471" curve="-90.012891"/>
<vertex x="-0.4343" y="-0.0229" curve="-90"/>
<vertex x="0.0102" y="0.4444" curve="-90"/>
<vertex x="0.4521" y="-0.0127" curve="-90.012967"/>
</polygon>
<text x="-2.413" y="0" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">>Name</text>
<text x="2.413" y="0" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="top-center">>Value</text>
</package>
<package name="SWITCH_SPST_SMD_A">
<description>
SPDT Slide Switch - SMD

Single-pole, double-throw (SPDT) switch.

Datasheet
</description>
<wire x1="-3.35" y1="1.3" x2="-3.35" y2="-1.3" width="0.127" layer="51"/>
<wire x1="-3.35" y1="-1.3" x2="3.35" y2="-1.3" width="0.127" layer="51"/>
<wire x1="3.35" y1="-1.3" x2="3.35" y2="1.3" width="0.127" layer="51"/>
<wire x1="3.35" y1="1.3" x2="-0.1" y2="1.3" width="0.127" layer="51"/>
<wire x1="-0.1" y1="1.3" x2="-1.4" y2="1.3" width="0.127" layer="51"/>
<wire x1="-1.4" y1="1.3" x2="-3.35" y2="1.3" width="0.127" layer="51"/>
<wire x1="-0.1" y1="1.3" x2="-0.1" y2="2.8" width="0.127" layer="51"/>
<wire x1="-0.1" y1="2.8" x2="-1.4" y2="2.8" width="0.127" layer="51"/>
<wire x1="-1.4" y1="2.8" x2="-1.4" y2="1.3" width="0.127" layer="51"/>
<wire x1="-3.477" y1="0.427" x2="-3.477" y2="-0.427" width="0.2032" layer="21"/>
<wire x1="3.477" y1="0.427" x2="3.477" y2="-0.427" width="0.2032" layer="21"/>
<wire x1="2.7" y1="1.427" x2="-2.7" y2="1.427" width="0.2032" layer="21"/>
<wire x1="1.627" y1="-1.427" x2="-0.127" y2="-1.427" width="0.2032" layer="21"/>
<smd name="1" x="-2.25" y="-1.75" dx="0.7" dy="1.5" layer="1" rot="R180"/>
<smd name="2" x="-0.75" y="-1.75" dx="0.7" dy="1.5" layer="1" rot="R180"/>
<smd name="3" x="2.25" y="-1.75" dx="0.7" dy="1.5" layer="1" rot="R180"/>
<smd name="GND1" x="-3.65" y="1" dx="1" dy="0.6" layer="1"/>
<smd name="GND2" x="-3.65" y="-1.1" dx="1" dy="0.8" layer="1"/>
<smd name="GND3" x="3.65" y="1" dx="1" dy="0.6" layer="1"/>
<smd name="GND4" x="3.65" y="-1.1" dx="1" dy="0.8" layer="1"/>
<hole x="-1.5" y="0" drill="0.9"/>
<hole x="1.5" y="0" drill="0.9"/>
<text x="0.762" y="-1.397" size="0.6096" layer="25" font="vector" ratio="20" rot="R180" align="bottom-center">>Name</text>
<text x="0" y="1.397" size="0.6096" layer="27" font="vector" ratio="20" rot="R180" align="top-center">>Value</text>
</package>
</packages>
<symbols>
<symbol name="TOGGLE">
<description>
Single Pole, Double Throw (SPDT) Switch

Single-pole, double-throw (SPDT) switch.
</description>
<wire x1="0" y1="0" x2="2.54" y2="1.27" width="0.1524" layer="94"/>
<wire x1="2.54" y1="-2.54" x2="3.175" y2="-2.54" width="0.127" layer="94"/>
<wire x1="2.54" y1="2.54" x2="3.175" y2="2.54" width="0.1524" layer="94"/>
<circle x="2.54" y="2.54" radius="0.3592" width="0.2032" layer="94"/>
<circle x="2.54" y="-2.54" radius="0.3592" width="0.2032" layer="94"/>
<circle x="0" y="0" radius="0.3592" width="0.2032" layer="94"/>
<text x="1.27" y="3.048" size="1.778" layer="95" font="vector" align="bottom-center">>NAME</text>
<text x="1.016" y="-3.302" size="1.778" layer="96" font="vector" align="top-center">>VALUE</text>
<pin name="P" x="-2.54" y="0" visible="off" length="short" direction="pas"/>
<pin name="S" x="5.08" y="-2.54" visible="off" length="short" direction="pas" rot="R180"/>
<pin name="O" x="5.08" y="2.54" visible="off" length="short" direction="pas" rot="R180"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="SWITCH-SPDT" prefix="S" uservalue="yes">
<description>
Single Pole, Double Throw (SPDT) Switch

Single-pole, double-throw (SPDT) switch.

Variant Overview

SMD-AYZ0202

Surface Mount DPDT Switch (COM-00597)

Used on e.g. LilyPad Arduino USB - ATmega32U4 Board

PTH-11.6X4.0MM

SPDT Mini Power Switch (COM-00102)

Used on e.g. SparkFun Simon Says - Through-Hole Soldering Kit (KIT-10547)

PTH-11.6X4.0MM-KIT

KIT version of SPDT Mini Power Switch - Simplifies soldering by removing tStop of switch pins - only one side can be soldered.

PTH-11.6X4.0MM-LOCK

LOCK version of SPDT Mini Power Switch - Offset pins hold switch in place for easier soldering.

SMD-RIGHT-ANGLE

Surface Mount Right Angle Switch (COM-10860)

Used on e.g. SparkFun ESP8266 Thing

</description>
<gates>
<gate name="1" symbol="TOGGLE" x="-2.54" y="0"/>
</gates>
<devices>
<device name="-PTH-11.6X4.0MM" package="SWITCH_SPDT_PTH_11.6X4.0MM">
<connects>
<connect gate="1" pin="O" pad="1"/>
<connect gate="1" pin="P" pad="2"/>
<connect gate="1" pin="S" pad="3"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="SWCH-08261"/>
<attribute name="SF_SKU" value="COM-00102"/>
</technology>
</technologies>
</device>
<device name="-SMD-AYZ0202" package="SWITCH_DPDT_SMD_AYZ0202">
<connects>
<connect gate="1" pin="O" pad="1"/>
<connect gate="1" pin="P" pad="2"/>
<connect gate="1" pin="S" pad="3"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="SWCH-08179" constant="no"/>
<attribute name="SF_ID" value="COM-00597" constant="no"/>
</technology>
</technologies>
</device>
<device name="-PTH-11.6X4.0MM-LOCK" package="SWITCH_SPDT_PTH_11.6X4.0MM_LOCK">
<connects>
<connect gate="1" pin="O" pad="1"/>
<connect gate="1" pin="P" pad="2"/>
<connect gate="1" pin="S" pad="3"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="SWCH-08261"/>
<attribute name="SF_SKU" value="COM-00102 "/>
</technology>
</technologies>
</device>
<device name="-PTH-11.6X4.0MM-KIT" package="SWITCH_SPDT_PTH_11.6X4.0MM_KIT">
<connects>
<connect gate="1" pin="O" pad="1"/>
<connect gate="1" pin="P" pad="2"/>
<connect gate="1" pin="S" pad="3"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="SWCH-08261"/>
<attribute name="SF_SKU" value="COM-00102"/>
</technology>
</technologies>
</device>
<device name="-SMD-RIGHT-ANGLE" package="SWITCH_SPST_SMD_A">
<connects>
<connect gate="1" pin="O" pad="1"/>
<connect gate="1" pin="P" pad="2"/>
<connect gate="1" pin="S" pad="3"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="SWCH-10651"/>
<attribute name="SF_SKU" value="COM-10860"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
<library name="7.9MM_COIN_CELL_BATTERY">
<packages>
<package name="7.8MM_COIN_CELL_BATT">
<smd name="GND" x="0" y="0" dx="3.175" dy="3.175" layer="1"/>
<pad name="VBATT+" x="-4.191" y="0" drill="1.1938"/>
<pad name="P$3" x="4.318" y="0" drill="1.1938"/>
<circle x="0.127" y="0" radius="3.9116" width="0.254" layer="21"/>
</package>
</packages>
<symbols>
<symbol name="7.8MM_COIN_CELL_BATT">
<wire x1="-5.08" y1="0" x2="-2.54" y2="0" width="0.254" layer="94"/>
<wire x1="-2.54" y1="0" x2="-2.54" y2="2.54" width="0.254" layer="94"/>
<wire x1="-2.54" y1="2.54" x2="-2.54" y2="-2.54" width="0.254" layer="94"/>
<wire x1="-2.54" y1="-2.54" x2="-2.54" y2="-5.08" width="0.254" layer="94"/>
<wire x1="-2.54" y1="-5.08" x2="-2.54" y2="5.08" width="0.254" layer="94"/>
<wire x1="0" y1="2.54" x2="0" y2="-2.54" width="0.254" layer="94"/>
<wire x1="2.54" y1="5.08" x2="2.54" y2="-5.08" width="0.254" layer="94"/>
<wire x1="5.08" y1="2.54" x2="5.08" y2="0" width="0.254" layer="94"/>
<wire x1="5.08" y1="0" x2="5.08" y2="-2.54" width="0.254" layer="94"/>
<wire x1="5.08" y1="-2.54" x2="5.08" y2="0" width="0.254" layer="94"/>
<wire x1="5.08" y1="0" x2="7.62" y2="0" width="0.254" layer="94"/>
<pin name="BATT+" x="-10.16" y="0" visible="off" length="middle" direction="in"/>
<pin name="BATT-" x="12.7" y="0" visible="off" length="middle" direction="in" rot="R180"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="7.8MM_COIN_CELL_BATTERY">
<gates>
<gate name="G$1" symbol="7.8MM_COIN_CELL_BATT" x="0" y="0"/>
</gates>
<devices>
<device name="" package="7.8MM_COIN_CELL_BATT">
<connects>
<connect gate="G$1" pin="BATT+" pad="P$3 VBATT+"/>
<connect gate="G$1" pin="BATT-" pad="GND"/>
</connects>
<technologies>
<technology name="">
<attribute name="PARTNO" value="36-2989-ND  " constant="no"/>
<attribute name="VENDOR" value="DIGIKEY" constant="no"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<parts>
<part name="D1" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="D2" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="D3" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="D4" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="D5" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="D6" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="D19" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="D20" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="R1" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="R2" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="R3" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="R4" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="R5" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="R6" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="R7" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="R8" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="GND1" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
<part name="SUPPLY1" library="SparkFun-PowerSymbols" deviceset="VCC" device=""/>
<part name="D7" library="SparkFun-LED" deviceset="LED-WHITE" device="1206" value="WHITE"/>
<part name="R9" library="SparkFun-Resistors" deviceset="100OHM" device="-0603-1/4W-5%" value="100"/>
<part name="S1" library="SparkFun-Switches" deviceset="SWITCH-SPDT" device="-SMD-RIGHT-ANGLE"/>
<part name="SUPPLY3" library="SparkFun-PowerSymbols" deviceset="VCC" device=""/>
<part name="SUPPLY5" library="SparkFun-PowerSymbols" deviceset="V_BATT" device=""/>
<part name="U$1" library="7.9MM_COIN_CELL_BATTERY" deviceset="7.8MM_COIN_CELL_BATTERY" device=""/>
<part name="U$2" library="7.9MM_COIN_CELL_BATTERY" deviceset="7.8MM_COIN_CELL_BATTERY" device=""/>
<part name="U$3" library="7.9MM_COIN_CELL_BATTERY" deviceset="7.8MM_COIN_CELL_BATTERY" device=""/>
<part name="GND3" library="SparkFun-PowerSymbols" deviceset="GND" device=""/>
</parts>
<sheets>
<sheet>
<plain>
</plain>
<instances>
<instance part="D1" gate="G$1" x="50.8" y="111.76"/>
<instance part="D2" gate="G$1" x="63.5" y="111.76"/>
<instance part="D3" gate="G$1" x="76.2" y="111.76"/>
<instance part="D4" gate="G$1" x="86.36" y="111.76"/>
<instance part="D5" gate="G$1" x="99.06" y="111.76"/>
<instance part="D6" gate="G$1" x="111.76" y="111.76"/>
<instance part="D19" gate="G$1" x="40.64" y="111.76"/>
<instance part="D20" gate="G$1" x="30.48" y="111.76"/>
<instance part="R1" gate="G$1" x="30.48" y="93.98" rot="R90"/>
<instance part="R2" gate="G$1" x="40.64" y="93.98" rot="R90"/>
<instance part="R3" gate="G$1" x="50.8" y="93.98" rot="R90"/>
<instance part="R4" gate="G$1" x="63.5" y="93.98" rot="R90"/>
<instance part="R5" gate="G$1" x="76.2" y="93.98" rot="R90"/>
<instance part="R6" gate="G$1" x="86.36" y="93.98" rot="R90"/>
<instance part="R7" gate="G$1" x="99.06" y="93.98" rot="R90"/>
<instance part="R8" gate="G$1" x="111.76" y="93.98" rot="R90"/>
<instance part="GND1" gate="1" x="124.46" y="73.66"/>
<instance part="SUPPLY1" gate="G$1" x="30.48" y="124.46"/>
<instance part="D7" gate="G$1" x="124.46" y="111.76"/>
<instance part="R9" gate="G$1" x="124.46" y="93.98" rot="R90"/>
<instance part="S1" gate="1" x="139.7" y="121.92" rot="R180"/>
<instance part="SUPPLY3" gate="G$1" x="132.08" y="127"/>
<instance part="SUPPLY5" gate="G$1" x="172.72" y="124.46"/>
<instance part="U$1" gate="G$1" x="142.24" y="99.06" rot="R270"/>
<instance part="U$2" gate="G$1" x="157.48" y="99.06" rot="R270"/>
<instance part="U$3" gate="G$1" x="172.72" y="99.06" rot="R270"/>
<instance part="GND3" gate="1" x="142.24" y="73.66"/>
</instances>
<busses>
</busses>
<nets>
<net name="VCC" class="0">
<segment>
<pinref part="D20" gate="G$1" pin="A"/>
<pinref part="SUPPLY1" gate="G$1" pin="VCC"/>
<wire x1="30.48" y1="114.3" x2="30.48" y2="119.38" width="0.1524" layer="91"/>
<wire x1="30.48" y1="119.38" x2="30.48" y2="124.46" width="0.1524" layer="91"/>
<wire x1="30.48" y1="119.38" x2="40.64" y2="119.38" width="0.1524" layer="91"/>
<wire x1="40.64" y1="119.38" x2="50.8" y2="119.38" width="0.1524" layer="91"/>
<wire x1="50.8" y1="119.38" x2="63.5" y2="119.38" width="0.1524" layer="91"/>
<pinref part="D2" gate="G$1" pin="A"/>
<wire x1="63.5" y1="114.3" x2="63.5" y2="119.38" width="0.1524" layer="91"/>
<pinref part="D1" gate="G$1" pin="A"/>
<wire x1="50.8" y1="114.3" x2="50.8" y2="119.38" width="0.1524" layer="91"/>
<pinref part="D19" gate="G$1" pin="A"/>
<wire x1="40.64" y1="114.3" x2="40.64" y2="119.38" width="0.1524" layer="91"/>
<junction x="30.48" y="119.38"/>
<junction x="40.64" y="119.38"/>
<junction x="50.8" y="119.38"/>
<pinref part="D6" gate="G$1" pin="A"/>
<wire x1="111.76" y1="119.38" x2="111.76" y2="114.3" width="0.1524" layer="91"/>
<wire x1="99.06" y1="119.38" x2="111.76" y2="119.38" width="0.1524" layer="91"/>
<pinref part="D5" gate="G$1" pin="A"/>
<wire x1="99.06" y1="114.3" x2="99.06" y2="119.38" width="0.1524" layer="91"/>
<junction x="99.06" y="119.38"/>
<wire x1="86.36" y1="119.38" x2="99.06" y2="119.38" width="0.1524" layer="91"/>
<pinref part="D4" gate="G$1" pin="A"/>
<wire x1="86.36" y1="114.3" x2="86.36" y2="119.38" width="0.1524" layer="91"/>
<junction x="86.36" y="119.38"/>
<wire x1="76.2" y1="119.38" x2="86.36" y2="119.38" width="0.1524" layer="91"/>
<pinref part="D3" gate="G$1" pin="A"/>
<wire x1="76.2" y1="114.3" x2="76.2" y2="119.38" width="0.1524" layer="91"/>
<wire x1="111.76" y1="119.38" x2="124.46" y2="119.38" width="0.1524" layer="91"/>
<pinref part="D7" gate="G$1" pin="A"/>
<wire x1="124.46" y1="119.38" x2="124.46" y2="114.3" width="0.1524" layer="91"/>
<junction x="111.76" y="119.38"/>
<wire x1="76.2" y1="119.38" x2="63.5" y2="119.38" width="0.1524" layer="91"/>
<junction x="76.2" y="119.38"/>
<junction x="63.5" y="119.38"/>
</segment>
<segment>
<pinref part="S1" gate="1" pin="S"/>
<wire x1="134.62" y1="124.46" x2="132.08" y2="124.46" width="0.1524" layer="91"/>
<pinref part="SUPPLY3" gate="G$1" pin="VCC"/>
<wire x1="132.08" y1="124.46" x2="132.08" y2="127" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$1" class="0">
<segment>
<pinref part="D20" gate="G$1" pin="C"/>
<pinref part="R1" gate="G$1" pin="2"/>
<wire x1="30.48" y1="106.68" x2="30.48" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$2" class="0">
<segment>
<pinref part="D19" gate="G$1" pin="C"/>
<pinref part="R2" gate="G$1" pin="2"/>
<wire x1="40.64" y1="106.68" x2="40.64" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$3" class="0">
<segment>
<pinref part="D1" gate="G$1" pin="C"/>
<pinref part="R3" gate="G$1" pin="2"/>
<wire x1="50.8" y1="106.68" x2="50.8" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$4" class="0">
<segment>
<pinref part="D2" gate="G$1" pin="C"/>
<pinref part="R4" gate="G$1" pin="2"/>
<wire x1="63.5" y1="106.68" x2="63.5" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$5" class="0">
<segment>
<pinref part="D3" gate="G$1" pin="C"/>
<pinref part="R5" gate="G$1" pin="2"/>
<wire x1="76.2" y1="106.68" x2="76.2" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$6" class="0">
<segment>
<pinref part="D4" gate="G$1" pin="C"/>
<pinref part="R6" gate="G$1" pin="2"/>
<wire x1="86.36" y1="106.68" x2="86.36" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$7" class="0">
<segment>
<pinref part="D5" gate="G$1" pin="C"/>
<pinref part="R7" gate="G$1" pin="2"/>
<wire x1="99.06" y1="106.68" x2="99.06" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="N$8" class="0">
<segment>
<pinref part="D6" gate="G$1" pin="C"/>
<pinref part="R8" gate="G$1" pin="2"/>
<wire x1="111.76" y1="106.68" x2="111.76" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="GND" class="0">
<segment>
<pinref part="GND1" gate="1" pin="GND"/>
<pinref part="R9" gate="G$1" pin="1"/>
<wire x1="124.46" y1="88.9" x2="124.46" y2="81.28" width="0.1524" layer="91"/>
<pinref part="R1" gate="G$1" pin="1"/>
<wire x1="124.46" y1="81.28" x2="124.46" y2="76.2" width="0.1524" layer="91"/>
<wire x1="30.48" y1="88.9" x2="30.48" y2="81.28" width="0.1524" layer="91"/>
<wire x1="30.48" y1="81.28" x2="40.64" y2="81.28" width="0.1524" layer="91"/>
<pinref part="R8" gate="G$1" pin="1"/>
<wire x1="40.64" y1="81.28" x2="50.8" y2="81.28" width="0.1524" layer="91"/>
<wire x1="50.8" y1="81.28" x2="63.5" y2="81.28" width="0.1524" layer="91"/>
<wire x1="63.5" y1="81.28" x2="76.2" y2="81.28" width="0.1524" layer="91"/>
<wire x1="76.2" y1="81.28" x2="86.36" y2="81.28" width="0.1524" layer="91"/>
<wire x1="86.36" y1="81.28" x2="99.06" y2="81.28" width="0.1524" layer="91"/>
<wire x1="99.06" y1="81.28" x2="111.76" y2="81.28" width="0.1524" layer="91"/>
<wire x1="111.76" y1="81.28" x2="111.76" y2="88.9" width="0.1524" layer="91"/>
<pinref part="R7" gate="G$1" pin="1"/>
<wire x1="99.06" y1="88.9" x2="99.06" y2="81.28" width="0.1524" layer="91"/>
<pinref part="R6" gate="G$1" pin="1"/>
<wire x1="86.36" y1="88.9" x2="86.36" y2="81.28" width="0.1524" layer="91"/>
<pinref part="R5" gate="G$1" pin="1"/>
<wire x1="76.2" y1="88.9" x2="76.2" y2="81.28" width="0.1524" layer="91"/>
<pinref part="R4" gate="G$1" pin="1"/>
<wire x1="63.5" y1="88.9" x2="63.5" y2="81.28" width="0.1524" layer="91"/>
<pinref part="R3" gate="G$1" pin="1"/>
<wire x1="50.8" y1="88.9" x2="50.8" y2="81.28" width="0.1524" layer="91"/>
<pinref part="R2" gate="G$1" pin="1"/>
<wire x1="40.64" y1="88.9" x2="40.64" y2="81.28" width="0.1524" layer="91"/>
<wire x1="111.76" y1="81.28" x2="124.46" y2="81.28" width="0.1524" layer="91"/>
<junction x="124.46" y="81.28"/>
<junction x="111.76" y="81.28"/>
<junction x="99.06" y="81.28"/>
<junction x="86.36" y="81.28"/>
<junction x="76.2" y="81.28"/>
<junction x="63.5" y="81.28"/>
<junction x="50.8" y="81.28"/>
<junction x="40.64" y="81.28"/>
</segment>
<segment>
<pinref part="U$1" gate="G$1" pin="BATT-"/>
<wire x1="142.24" y1="86.36" x2="142.24" y2="81.28" width="0.1524" layer="91"/>
<wire x1="142.24" y1="81.28" x2="142.24" y2="76.2" width="0.1524" layer="91"/>
<wire x1="142.24" y1="76.2" x2="142.24" y2="81.28" width="0.1524" layer="91"/>
<wire x1="142.24" y1="81.28" x2="157.48" y2="81.28" width="0.1524" layer="91"/>
<pinref part="U$3" gate="G$1" pin="BATT-"/>
<wire x1="157.48" y1="81.28" x2="172.72" y2="81.28" width="0.1524" layer="91"/>
<wire x1="172.72" y1="81.28" x2="172.72" y2="86.36" width="0.1524" layer="91"/>
<pinref part="U$2" gate="G$1" pin="BATT-"/>
<wire x1="157.48" y1="86.36" x2="157.48" y2="81.28" width="0.1524" layer="91"/>
<junction x="157.48" y="81.28"/>
<pinref part="GND3" gate="1" pin="GND"/>
<junction x="142.24" y="81.28"/>
</segment>
</net>
<net name="N$9" class="0">
<segment>
<pinref part="D7" gate="G$1" pin="C"/>
<pinref part="R9" gate="G$1" pin="2"/>
<wire x1="124.46" y1="106.68" x2="124.46" y2="99.06" width="0.1524" layer="91"/>
</segment>
</net>
<net name="V_BATT" class="0">
<segment>
<pinref part="S1" gate="1" pin="P"/>
<wire x1="142.24" y1="121.92" x2="172.72" y2="121.92" width="0.1524" layer="91"/>
<pinref part="SUPPLY5" gate="G$1" pin="V_BATT"/>
<wire x1="172.72" y1="121.92" x2="172.72" y2="124.46" width="0.1524" layer="91"/>
<pinref part="U$1" gate="G$1" pin="BATT+"/>
<wire x1="142.24" y1="109.22" x2="142.24" y2="114.3" width="0.1524" layer="91"/>
<wire x1="142.24" y1="114.3" x2="157.48" y2="114.3" width="0.1524" layer="91"/>
<pinref part="U$3" gate="G$1" pin="BATT+"/>
<wire x1="157.48" y1="114.3" x2="172.72" y2="114.3" width="0.1524" layer="91"/>
<wire x1="172.72" y1="114.3" x2="172.72" y2="109.22" width="0.1524" layer="91"/>
<pinref part="U$2" gate="G$1" pin="BATT+"/>
<wire x1="157.48" y1="109.22" x2="157.48" y2="114.3" width="0.1524" layer="91"/>
<junction x="157.48" y="114.3"/>
<wire x1="172.72" y1="114.3" x2="172.72" y2="121.92" width="0.1524" layer="91"/>
<junction x="172.72" y="114.3"/>
<junction x="172.72" y="121.92"/>
</segment>
</net>
</nets>
</sheet>
</sheets>
</schematic>
</drawing>
</eagle>

repository: ADataDate/e-jewelry

repo_name: ADataDate/e-jewelry

extension: sch


text:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <Windows.h>

//Marius Weinhardt	22.9.2014
//--------------------------------------------------
void gotoxy (short x, short y)
{
	HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD pos;
	pos.X=x-1;
	pos.Y=y-1;
	SetConsoleCursorPosition(hcon , pos);
}
	int main(void)
{
 double U,I,R,P;
 printf("********************************************************************************\n");
 printf("					U,I--> R,P\n");
 printf("********************************************************************************\n\n");

 printf("Spannung :			Volt");		//Eingabe
 gotoxy(35,8);
 scanf ("%lf",&U);
 gotoxy(35,8);
 printf("%6.2lf\n", U);
 printf("Strom:					Ampere");
 gotoxy(35,7);
 scanf("%lf",&I);
 gotoxy(35,7);
 printf("%6.2lf\n", I);
 R=U/I;							//Verarbeitung
 P=U*I;
 printf("\nWiederstand  [ohm] = %8.2lf\n",R);		//Ausgabe
 printf("Leistung [W] = %8.2lf\n\n",P);
 system("Pause");
 return 0;
}

repository: thatdude-cpu/Codedump

path: /CC++/spannungs rechner.cpp

repo_name: thatdude-cpu/Codedump

filename: spannungs rechner.cpp


text:
package rental_test

import (
	"testing"

	"github.com/Buzzvil/stella/rentalsvc/internal/pkg/rental"
	"github.com/bxcodec/faker"
	"github.com/stretchr/testify/mock"
	"github.com/stretchr/testify/suite"
)

func (ts *UsecaseTestSuite) Test_GetResourceStatus() {
	var rr *rental.Rental
	err := faker.FakeData(&rr)
	ts.repo.On("GetLastRentalByEntityID", mock.Anything).Return(rr, nil).Once()

	result, err := ts.usecase.GetResourceStatus(rr.EntityID)

	ts.NoError(err)
	if rr.IsReturned {
		ts.Equal(result.Availability, rental.Available)
	} else {
		ts.Equal(*result.HolderID, rr.UserID)
		ts.Equal(result.Availability, rental.Unavailable)
	}
	ts.repo.AssertExpectations(ts.T())
}

func (ts *UsecaseTestSuite) Test_GetUserStatus() {
	var rentals []*rental.Rental
	var watches []*rental.Watch
	ts.NoError(faker.FakeData(&rentals))
	ts.NoError(faker.FakeData(&watches))
	userID := rentals[0].UserID

	renteds, helds := make([]*rental.Rental, 0), make([]*rental.Rental, 0)

	for _, r := range rentals {
		if r.IsReturned {
			renteds = append(renteds, r)
		} else {
			helds = append(helds, r)
		}
	}

	ts.repo.On("ListRentalByUserID", userID).Return(rentals, nil).Once()
	ts.repo.On("ListWatchByUserID", userID).Return(watches, nil).Once()

	result, err := ts.usecase.GetUserStatus(userID)

	ts.NoError(err)
	ts.Equal(len(renteds), len(result.RentedEntities))
	ts.Equal(len(helds), len(result.HeldEntities))
	ts.Equal(len(watches), len(result.WatchingEntities))

	ts.repo.AssertExpectations(ts.T())
}

func (ts *UsecaseTestSuite) Test_ListResourceWatchers() {
	var rrs []*rental.Watch
	ts.NoError(faker.FakeData(&rrs))
	ts.repo.On("ListWatchByEntityID", mock.Anything).Return(rrs, nil).Once()

	ids, err := ts.usecase.ListResourceWatchers(1234)

	ts.NoError(err)
	for i, rr := range rrs {
		ts.Equal(rr.UserID, ids[i])
	}
	ts.repo.AssertExpectations(ts.T())
}

func (ts *UsecaseTestSuite) Test_RentResource() {
	var rr *rental.Rental
	ts.NoError(faker.FakeData(&rr))
	rr.IsReturned = true
	ts.repo.On("GetLastRentalByEntityID", rr.EntityID).Return(rr, nil).Once()
	ts.repo.On("UpsertRental", mock.Anything).Return(nil).Once()

	err := ts.usecase.RentResource(rr.UserID+1, rr.EntityID)

	ts.NoError(err)
	ts.repo.AssertExpectations(ts.T())
}

func (ts *UsecaseTestSuite) Test_ReturnResource() {
	var rr *rental.Rental
	ts.NoError(faker.FakeData(&rr))
	rr.IsReturned = false
	ts.repo.On("GetLastRentalByEntityID", rr.EntityID).Return(rr, nil).Once()
	ts.repo.On("UpsertRental", mock.Anything).Return(nil).Once()

	err := ts.usecase.ReturnResource(rr.UserID, rr.EntityID)

	ts.NoError(err)
	ts.repo.AssertExpectations(ts.T())
}

func (ts *UsecaseTestSuite) Test_WatchResource() {
	var rr *rental.Rental
	ts.NoError(faker.FakeData(&rr))
	rr.IsReturned = false
	ts.repo.On("GetLastRentalByEntityID", rr.EntityID).Return(rr, nil).Once()
	ts.repo.On("InsertWatch", mock.Anything).Return(nil).Once()

	err := ts.usecase.WatchResource(rr.UserID+1, rr.EntityID)

	ts.NoError(err)
	ts.repo.AssertExpectations(ts.T())
}

// If the book is already taken by the user, reserveResource request will be failed.
func (ts *UsecaseTestSuite) Test_WatchResource_AlreadyTaken() {
	var rr *rental.Rental
	ts.NoError(faker.FakeData(&rr))
	rr.IsReturned = true
	ts.repo.On("GetLastRentalByEntityID", rr.EntityID).Return(rr, nil).Once()

	err := ts.usecase.WatchResource(rr.UserID, rr.EntityID)

	ts.Error(err)
	ts.repo.AssertExpectations(ts.T())
}

func (ts *UsecaseTestSuite) Test_UnwatchResource() {
	ts.repo.On("DeleteWatch", mock.Anything).Return(nil).Once()

	err := ts.usecase.UnwatchResource(1111, 2222)

	ts.NoError(err)
	ts.repo.AssertExpectations(ts.T())
}

func TestUsecaseSuite(t *testing.T) {
	suite.Run(t, new(UsecaseTestSuite))
}

var (
	_ suite.SetupTestSuite = &UsecaseTestSuite{}
)

type UsecaseTestSuite struct {
	suite.Suite
	repo    *mockRepo
	usecase rental.Usecase
}

func (ts *UsecaseTestSuite) SetupTest() {
	ts.repo = new(mockRepo)
	ts.usecase = rental.NewUsecase(ts.repo)
}

var _ rental.Repository = &mockRepo{}

type mockRepo struct {
	mock.Mock
}

func (r *mockRepo) UpsertRental(request rental.Rental) error {
	ret := r.Called(request)
	return ret.Error(0)
}

func (r *mockRepo) GetLastRentalByEntityID(entityID int64) (*rental.Rental, error) {
	ret := r.Called(entityID)
	return ret.Get(0).(*rental.Rental), ret.Error(1)
}

func (r *mockRepo) ListRentalByUserID(userID int64) ([]*rental.Rental, error) {
	ret := r.Called(userID)
	return ret.Get(0).([]*rental.Rental), ret.Error(1)
}

func (r *mockRepo) ListWatchByEntityID(entityID int64) ([]*rental.Watch, error) {
	ret := r.Called(entityID)
	return ret.Get(0).([]*rental.Watch), ret.Error(1)
}

func (r *mockRepo) ListWatchByUserID(userID int64) ([]*rental.Watch, error) {
	ret := r.Called(userID)
	return ret.Get(0).([]*rental.Watch), ret.Error(1)
}

func (r *mockRepo) InsertWatch(request rental.Watch) error {
	ret := r.Called(request)
	return ret.Error(0)
}

func (r *mockRepo) DeleteWatch(request rental.Watch) error {
	ret := r.Called(request)
	return ret.Error(0)
}

repository: blockspacer/stella

repo_name: blockspacer/stella


text:
SUMMARY = "A terminal emulator QML widget, based on LXQt's QTermWidget"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b"

PV = "0.14.1+git${SRCPV}"
SRCREV = "32da270eb832c4f42215c499d3d225a14be8af91"

DEPENDS = "qtbase qtdeclarative qt5compat"
RDEPENDS:${PN} = "ttf-liberation-mono"

SRC_URI = " \
    git://github.com/Tofee/qmltermwidget.git;protocol=https;branch=tofe/qt6 \
    file://0001-qmltermwidget.pro-don-t-install-asset-directories-tw.patch \
"
S = "${WORKDIR}/git"

inherit qt6-qmake

FILES:${PN} += "${libdir}"

repository: webOS-ports/meta-webos-ports

repo_name: webOS-ports/meta-webos-ports

branch_name: refs/heads/kirkstone

gha_language: BitBake

extension: bb


text:
@book{RSPressman,
  author = {Roger S. Pressman},
  title = {{Software Engineering: A Practitioner's Approach}},
  publisher = {McGraw-Hill Science/Engineering/Math},
  year = {2009}
}

@article{Girba2005,
  author = {T. Girba and A. Kuhn and M. Seeberger and S. Ducasse},
  title = {{How Developers Drive Software Evolution}},
  journal = {IEEE 2005 Proceedings of the Eighth International Workshop on Principles of Software Evolution (IWPSE'2005)},
  year = {2005}
}

@article{Girba2007,
  author = {T. Girba and O. Greevy and S. Ducasse},
  title = {{How Developers Develop Features}},
  journal = {11th European Conference on Software Maintenance and Reengineering (CSMR'2007)},
  year = {2007}
}

@article{Posnett,
  author = {{D. Posnett and R. D'Souza and P. Devanbu and V. Filkov}},
  title = {{Dual Ecological Measures of Focus in Software Development}},
  journal = {Proceedings of the 2013 International Conference on Software Engineering (ICSE'2013)},
  year = {2013}
}

@article{DontTouchMyCode,
  author = {N. Nagappan and C. Bird and B. Murphy and H. Gall and P. Devanbu},
  title = {{Don't Touch My Code! Examining the Effects of Ownership on Software Quality}},
  journal = {Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (ESEC/FSE'2011)},
  year = {2011}
}

@article{Harmony,
  author = {{J.R. Falleri and C. Teyton and M. Foucault and M. Palyart and F. Morandat and X. Blanc}},
  title = {{The Harmony Platform}},
  year = {2013}
}

@misc{peoplemov,
  author = {Carlo Zapponi},
  title = {{peoplemovin}},
  howpublished = {\url{http://peoplemov.in/}},
  note = {Accessed: 2014-23-01}
}

@article{Chronia,
  author = {{M. Seeberger and A. Kuhn and T. Girba and S. Ducasse}},
  title = {{Chronia: Visualizing How Developers Change Software Systems}},
  journal = {Proceedings of the Conference on Software Maintenance and Reengineering (CSMR'2006)},
  year = {2006}
}

repository: elyas-bhy/harmony-visualizer

repo_name: elyas-bhy/harmony-visualizer

extension: bib


text:
package lstlogistics2

// AddressParam 结构体
type AddressParam struct {
	// 省
	ProvinceName string `json:"province_name,omitempty" xml:"province_name,omitempty"`
	// 市
	CityName string `json:"city_name,omitempty" xml:"city_name,omitempty"`
	// 区
	DistrictName string `json:"district_name,omitempty" xml:"district_name,omitempty"`
	// 街道
	StreetName string `json:"street_name,omitempty" xml:"street_name,omitempty"`
	// 详细地址
	Address string `json:"address,omitempty" xml:"address,omitempty"`
}

repository: bububa/opentaobao

repo_name: bububa/opentaobao

gha_language: Go


text:
package main

import "fmt"

// START OMIT
type Coordinate struct {
	X    int
	Y    int
	Z    int
	name string
}

func NewCoordinate() *Coordinate {
	return &Coordinate{1, 2, 3, "foo"}
}

func main() {
	var cp *Coordinate = NewCoordinate()
	fmt.Println(cp)
	fmt.Printf("%T\n", cp)
	fmt.Println(*cp)
	fmt.Printf("%T\n", *cp)
	fmt.Println(&cp)
	fmt.Printf("%T\n", &cp)
	// fmt.Println(cp->X) // Doesn't exist
	fmt.Println((*cp).X) // Don't use
	fmt.Println(cp.X)    // Use this instead
}

// END OMIT

repository: bgmerrell/presentations

repo_name: bgmerrell/presentations


text:
package models_test

import (
	"testing"

	. "github.com/almighty/almighty-core/models"
	"github.com/almighty/almighty-core/resource"
)

var (
	stString   = SimpleType{Kind: KindString}
	stInt      = SimpleType{Kind: KindInteger}
	stFloat    = SimpleType{Kind: KindFloat}
	stDuration = SimpleType{Kind: KindDuration}
	stURL      = SimpleType{Kind: KindURL}
	stList     = SimpleType{Kind: KindList}
)

type input struct {
	t             FieldType
	value         interface{}
	expectedValue interface{}
	errorExpected bool
}

func TestSimpleTypeConversion(t *testing.T) {
	t.Parallel()
	resource.Require(t, resource.UnitTest)

	test_data := []input{
		{stString, "hello world", "hello world", false},
		{stString, "", "", false},
		{stString, 100, nil, true},
		{stString, 1.90, nil, true},

		{stInt, 100.0, nil, true},
		{stInt, 100, 100, false},
		{stInt, "100", nil, true},
		{stInt, true, nil, true},

		{stFloat, 1.1, 1.1, false},
		{stFloat, 1, nil, true},
		{stFloat, "a", nil, true},

		{stDuration, 0, 0, false},
		{stDuration, 1.1, nil, true},
		{stDuration, "duration", nil, true},

		{stURL, "http://www.google.com", "http://www.google.com", false},
		{stURL, "", nil, true},
		{stURL, "google", nil, true},
		{stURL, "http://google.com", "http://google.com", false},

		{stList, [4]int{1, 2, 3, 4}, [4]int{1, 2, 3, 4}, false},
		{stList, [2]string{"1", "2"}, [2]string{"1", "2"}, false},
		{stList, "", nil, true},
		// {stList, []int{}, []int{}, false}, need to find out the way for empty array.
		// because slices do not have equality operator.
	}
	for _, inp := range test_data {
		retVal, err := inp.t.ConvertToModel(inp.value)
		if retVal == inp.expectedValue && (err != nil) == inp.errorExpected {
			t.Log("test pass for input: ", inp)
		} else {
			t.Error(retVal, err)
			t.Fail()
		}
	}
}

var (
	stEnum = SimpleType{KindEnum}
	enum   = EnumType{
		BaseType: stEnum,
		// ENUM with same type values
		Values: []interface{}{"new", "triaged", "WIP", "QA", "done"},
	}

	multipleTypeEnum = EnumType{
		BaseType: stEnum,
		// ENUM with different type values.
		Values: []interface{}{100, 1.1, "hello"},
	}
)

func TestEnumTypeConversion(t *testing.T) {
	t.Parallel()
	resource.Require(t, resource.UnitTest)

	data := []input{
		{enum, "string", nil, true},
		{enum, "triaged", "triaged", false},
		{enum, "done", "done", false},
		{enum, "", nil, true},
		{enum, 100, nil, true},

		{multipleTypeEnum, "abcd", nil, true},
		{multipleTypeEnum, 100, 100, false},
		{multipleTypeEnum, "hello", "hello", false},
	}
	for _, inp := range data {
		retVal, err := inp.t.ConvertToModel(inp.value)
		if retVal == inp.expectedValue && (err != nil) == inp.errorExpected {
			t.Log("test pass for input: ", inp)
		} else {
			t.Error(retVal, err)
			t.Fail()
		}
	}
}

var (
	intList = ListType{
		SimpleType:    SimpleType{Kind: KindList},
		ComponentType: SimpleType{Kind: KindInteger},
	}
	strList = ListType{
		SimpleType:    SimpleType{Kind: KindList},
		ComponentType: SimpleType{Kind: KindString},
	}
)

func TestListTypeConversion(t *testing.T) {
	t.Parallel()
	resource.Require(t, resource.UnitTest)

	data := []input{
		{intList, [2]int{11, 2}, "array/slice", false},
		{intList, [2]string{"11", "2"}, nil, true},

		{strList, [2]string{"11", "2"}, "array/slice", false},
		{strList, [2]int{11, 2}, nil, true},
	}

	for _, inp := range data {
		// Ignore expectedValue for now.
		// slices can be compared only with nil.
		// Because we will need to iterate and match the output.
		retVal, err := inp.t.ConvertToModel(inp.value)
		if (err != nil) == inp.errorExpected {
			t.Log("test pass for input: ", inp)
		} else {
			t.Error("failed for input=", inp)
			t.Error(retVal, err)
			t.Fail()
		}
	}
}

repository: redhat-developer/almighty-core

repo_name: redhat-developer/almighty-core


text:
package main

import (
	"net/http"
	"os"
	"fmt"
	"regexp"
	"log"
	"mime"
	"path/filepath"
	"strconv"
)

const (
	rootPath = "/"
	subscribePath = "/subscribe"
	emailField = "email"
	emailRegexp = "^(((([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+(\\.([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])([a-zA-Z]|\\d|-|\\.|_|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*([a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.)+(([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])([a-zA-Z]|\\d|-|\\.|_|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*([a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.?$"
)

func root(w http.ResponseWriter, r *http.Request) {
	path := r.URL.Path[1:]
	if (path == "") {
		path = "index.html"
	}
	data, contentType, err := getResource("static/" + path)
	if (err != nil) {
		http.Error(w, "File not found", http.StatusNotFound)
		return
	}
	w.Header().Set("Content-Type", contentType)
	w.Header().Set("Content-Length", strconv.Itoa(len(data)))
	w.Write(data)
}

func getResource(path string) ([]byte, string, error) {
	extension := filepath.Ext(path)
	contentType := mime.TypeByExtension(extension)
	if (contentType == "") {
		contentType = "text/plain"
	}
	data, err := Asset(path)
	if (err != nil) {
		return nil, "", err
	}
	return data, contentType, nil
}

func subscribe(w http.ResponseWriter, r *http.Request) {
	r.ParseForm()
	email := r.Form.Get(emailField)
	if !isValidEmail(email) {
		log.Printf("Skipping invalid email [%s]\n", email)
		http.Error(w, "no valid email provided", http.StatusBadRequest)
		return
	}
	err := saveEmail(email)
	if (err != nil) {
		log.Printf("Server error: %v\n", err)
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}
	log.Printf("Saved email [%s]\n", email)
}

func isValidEmail(email string) bool {
	if (len(email) == 0) {
		return false
	}
	regex := regexp.MustCompile(emailRegexp)
	return regex.MatchString(email)
}

func saveEmail(email string) error {
	f, err := os.OpenFile(file, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0600)
	if err != nil {
		return err
	}

	defer f.Close()

	if _, err = f.WriteString(fmt.Sprintf("%s\n", email)); err != nil {
		return err
	}
	return nil
}

func addCommonHeaders(fn http.HandlerFunc) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		w.Header().Set("Server", "Almighty 1.0 with BlackJack Patch 1.1, Hookers Patch 2.1")
		fn(w, r)
	}
}

func mux() http.Handler {
	mux := http.NewServeMux()
	mux.HandleFunc(rootPath, addCommonHeaders(root))
	mux.HandleFunc(subscribePath, addCommonHeaders(subscribe))
	return mux
}

repository: vania-pooh/ssa

repo_name: vania-pooh/ssa