./.github/.codecov.yml .bundle/config .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata .swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist .swiftpm/xcode/xcshareddata/xcschemes/Ariadne.xcscheme Ariadne.podspec Ariadne.xcodeproj/project.pbxproj Ariadne.xcodeproj/project.xcworkspace/contents.xcworkspacedata Ariadne.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist Ariadne.xcodeproj/xcshareddata/xcschemes/Ariadne.xcscheme Gemfile Gemfile.lock LICENSE Package.swift Plist/Framework.plist Plist/Tests.plist Source/Ariadne/AnyBuilder.swift Source/Ariadne/Ariadne.swift Source/Ariadne/BaseTransition.swift Source/Ariadne/CurrentlyVisibleViewFinder.swift Source/Ariadne/NavigationTransition.swift Source/Ariadne/NavigationViewBuilder.swift Source/Ariadne/PresentationTransition.swift Source/Ariadne/RootViewTransition.swift Source/Ariadne/Route.swift Source/Ariadne/SplitViewBuilder.swift Source/Ariadne/TabBarViewBuilder.swift Source/Ariadne/UpdatableViewFinder.swift Source/Ariadne/ViewControllerBuilder.swift Source/Ariadne/ViewTransition.swift Source/Tests/TestsAppKit.swift Source/Tests/TestsUIKit.swift docs/badge.svg docs/css/highlight.css docs/css/jazzy.css docs/docsets/Ariadne.docset/Contents/Info.plist docs/docsets/Ariadne.docset/Contents/Resources/Documents/badge.svg docs/docsets/Ariadne.docset/Contents/Resources/Documents/css/highlight.css docs/docsets/Ariadne.docset/Contents/Resources/Documents/css/jazzy.css docs/docsets/Ariadne.docset/Contents/Resources/Documents/js/jazzy.js docs/docsets/Ariadne.docset/Contents/Resources/Documents/js/jazzy.search.js docs/docsets/Ariadne.docset/Contents/Resources/Documents/js/jquery.min.js docs/docsets/Ariadne.docset/Contents/Resources/Documents/js/lunr.min.js docs/docsets/Ariadne.docset/Contents/Resources/Documents/js/typeahead.jquery.js docs/docsets/Ariadne.docset/Contents/Resources/Documents/search.json docs/docsets/Ariadne.docset/Contents/Resources/Documents/undocumented.json docs/docsets/Ariadne.docset/Contents/Resources/docSet.dsidx docs/docsets/Ariadne.tgz docs/docsets/Ariadne.xml docs/js/jazzy.js docs/js/jazzy.search.js docs/js/jquery.min.js docs/js/lunr.min.js docs/js/typeahead.jquery.js docs/search.json docs/undocumented.json fastlane/Fastfile fastlane/Pluginfile fastlane/Scanfile iOS Example/AppDelegate.swift iOS Example/Assets.xcassets/AppIcon.appiconset/Contents.json iOS Example/Assets.xcassets/Contents.json iOS Example/Base.lproj/Example.storyboard iOS Example/Base.lproj/LaunchScreen.storyboard iOS Example/Base.lproj/Main.storyboard iOS Example/Buildable.swift iOS Example/ExampleViewController.swift iOS Example/ExamplesTableViewController.swift iOS Example/Generated/Storyboards.swift iOS Example/Info.plist iOS Example/iOS Example.entitlements <<<<<< network # path=./Ariadne.framework.coverage.txt /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/AnyBuilder.swift: 1| |// 2| |// AnyBuilder.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 08.11.2019. 6| |// Copyright © 2019 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |/// Type-erased wrapper for `ViewControllerBuilder`. It can be used to shorten `ViewControllerBuilder` signatures in cases, where generic type information is not needed by consumer of the Route. 27| |/// Another reason to do this if this generic information obstructs your usage of `ViewControllerBuilder`s, for example in cases where you want to create a UITabBarController with array of builders, and each of them has completely different type. In this case, you can convert them to array of `AnyBuilder` objects. 28| |/// 29| |/// For example, when using navigation view builder, signature can become pretty long - NavigationSingleViewEmbeddingBuilder>. But generally, you don't really care about resulting type as long as it's type is ensured, and it is a UIViewController. In those cases, you could cast a builder like so: 30| |/// `builder.asAnyBuilder` 31| |/// which wraps builder in the `AnyBuilder`, which can be now used as return type that is much shorter. 32| |public struct AnyBuilder: ViewControllerBuilder { 33| | 34| | /// Closure, that constructs `ViewController`. 35| | let builder: () throws -> ViewController 36| | 37| | /// Creates `AnyBuilder` instance. 38| | /// - Parameters: 39| | /// - builder: builder, whose type is going to be erased. 40| | /// - context: Context to be used when building `ViewController` 41| 0| public init(builder: T, context: T.Context) { 42| 0| self.builder = { try builder.build(with: context) } 43| 0| } 44| | 45| | /// Creates `AnyBuilder` instance 46| | /// - Parameter builder: builder, whose type is going to be erased. 47| 0| public init(builder: T) where T.Context == Void { 48| 0| self.builder = { try builder.build(with: ()) } 49| 0| } 50| | 51| | /// Creates `AnyBuilder` instance 52| | /// - Parameter buildingBy: closure to build `ViewController` when Route is executed. 53| 0| public init(buildingBy: @escaping () throws -> T) { 54| 0| self.builder = { try buildingBy() } 55| 0| } 56| | 57| | /// Builds `ViewController` by running `builder` closure. 58| | /// - Parameter context: context is always Void, because Builder and Context types have been erased and are unknown at this point. 59| 0| public func build(with context: ()) throws -> ViewController { 60| 0| return try builder() 61| 0| } 62| |} 63| | 64| |extension ViewControllerBuilder where Context == Void { 65| | /// Converts any `ViewControllerBuilder` with Void context to AnyBuilder, erasing it's type. 66| 0| public var asAnyBuilder: AnyBuilder { 67| 0| return AnyBuilder(builder: self) 68| 0| } 69| |} /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/Ariadne.swift: 1| |// 2| |// Ariadne.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 10/11/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| |#if canImport(UIKit) 28| |import UIKit 29| |#endif 30| |/// Type, responsible for finding currently visible view in existing view hierarchy. 31| |public protocol ViewFinder { 32| | 33| | /// Returns currently visible view in view hierarchy. 34| | /// 35| | /// - Parameter startingFrom: root view to start searching from. 36| | /// - Returns: currently visible view or nil, if it was not found. 37| | func currentlyVisibleView(startingFrom: ViewController?) -> ViewController? 38| |} 39| | 40| |/// Type that is responsible for providing root view in current view hierarchy. 41| |/// - Note: on iOS and tvOS, commonly, the root provider is UIWindow via UIApplication.shared.keyWindow, however there are scenarios where keyWindow might not be accessible, for example in iMesssage apps and application extensions. In those cases you can use root view controller that is accessible in those context, for example in iMessage extensions this could be `MSMessagesAppViewController`, or view controller presented on top of it. 42| |/// Also, your app might have several UIWindow objects working in the same time, for example when app is using AirPlay, or if `UIWindow`s are used to present different interfaces modally. In those cases it's recommended to have multiple `Router` objects with different `RootViewProvider`s. 43| |public protocol RootViewProvider { 44| | 45| | /// Root view in current view hierarchy. 46| | var rootViewController: ViewController? { get } 47| |} 48| | 49| |/// Type, that is capable of performing route from current screen to another one. 50| |/// One example of such type is Route type, that includes necessary builder to build next visible view, and transition object, that will perform a transition. 51| |public protocol Routable { 52| | 53| | /// Type, responsible for building a view, that is needed for routing. 54| | associatedtype Builder: ViewControllerBuilder 55| | 56| | /// Type, responsible for performing a transition. 57| | associatedtype Transition: ViewTransition 58| | 59| | /// Instance of `ViewBuilder`. 60| | var builder: Builder { get } 61| | 62| | /// Instance of `ViewTransition`. 63| | var transition: Transition { get } 64| | 65| | /// Performs route using provided context. 66| | /// 67| | /// - Parameters: 68| | /// - withViewFinder: object, that can be used to find currently visible view in view hierarchy 69| | /// - context: object, that can be used for building a new route destination view. 70| | /// - completion: closure to be called, once routing is completed. 71| | func perform(withViewFinder: ViewFinder, 72| | context: Builder.Context, 73| | completion: ((Bool) -> Void)?) 74| |} 75| | 76| |/// Object responsible for performing navigation to concrete routes, as well as keeping references to root view provider and view finder. 77| |open class Router { 78| | 79| | /// Object responsible for finding view on which route should be performed. 80| | open var viewFinder: ViewFinder 81| | 82| | /// Object responsible for providing root view of interface hierarchy. 83| | open var rootViewProvider: RootViewProvider 84| | 85| | #if os(iOS) || os(tvOS) 86| | 87| | /// Creates `Router` with `CurrentlyVisibleViewFinder` object set as a `ViewFinder` instance. 88| | /// 89| | /// - Parameter rootViewProvider: provider of the root view of interface. 90| 18| public init(rootViewProvider: RootViewProvider) { 91| 18| self.viewFinder = CurrentlyVisibleViewFinder(rootViewProvider: rootViewProvider) 92| 18| self.rootViewProvider = rootViewProvider 93| 18| } 94| | 95| | #else 96| | 97| | /// Creates `Router` with specified root view provider and view finder. 98| | /// 99| | /// - Parameters: 100| | /// - rootViewProvider: provider of the root view of interface. 101| | /// - viewFinder: object responsible for finding view on which route should be performed. 102| | public init(rootViewProvider: RootViewProvider, viewFinder: ViewFinder) { 103| | self.viewFinder = viewFinder 104| | self.rootViewProvider = rootViewProvider 105| | } 106| | 107| | #endif 108| | 109| | #if os(iOS) || os(tvOS) 110| | 111| | /// Returns route, that calls `popViewController` method on currently visible navigation controller. No view is getting built in the process of routing. 112| | /// 113| | /// - Parameter isAnimated: should the transition be animated. 114| | /// - Returns: performable route. 115| 2| open class func popRoute(isAnimated: Bool = true) -> Route { 116| 2| return .init(builder: NonBuilder(), transition: PopNavigationTransition(isAnimated: isAnimated)) 117| 2| } 118| | 119| | /// Returns route, that calls `popViewController` method on currently visible navigation controller. No view is getting built in the process of routing. 120| | /// 121| | /// - Parameter isAnimated: should the transition be animated. 122| | /// - Returns: performable route. 123| 2| open func popRoute(isAnimated: Bool = true) -> Route { 124| 2| return Router.popRoute(isAnimated: isAnimated) 125| 2| } 126| | 127| | /// Returns route, that calls `popToRootViewController` method on currently visible navigation controller. No view is getting built in the process of routing. 128| | /// 129| | /// - Parameter isAnimated: should the transition be animated. 130| | /// - Returns: performable route. 131| 1| open class func popToRootRoute(isAnimated: Bool = true) -> Route { 132| 1| return .init(builder: NonBuilder(), transition: PopNavigationTransition(.popToRoot, isAnimated: isAnimated)) 133| 1| } 134| | 135| | /// Returns route, that calls `popToViewController(_:animated:)` method on currently visible navigation controller. No view is getting built in the process of routing. First instance of `type` view controllers available in navigation stack is selected 136| | /// - Parameters: 137| | /// - type: type of view controller to search for in navigation stack 138| | /// - isAnimated: should the transition be animated. 139| 1| open class func popToFirstInstanceOf(_ type: UIViewController.Type, isAnimated: Bool = true) -> Route { 140| 1| return Route(builder: NonBuilder(), transition: PopNavigationTransition(.popToFirstInstanceOf(type), isAnimated: isAnimated)) 141| 1| } 142| | 143| | /// Returns route, that calls `popToViewController(_:animated:)` method on currently visible navigation controller. No view is getting built in the process of routing. First instance of `type` view controllers available in navigation stack is selected 144| | /// - Parameters: 145| | /// - type: type of view controller to search for in navigation stack 146| | /// - isAnimated: should the transition be animated. 147| 0| open func popToFirstInstanceOf(_ type: UIViewController.Type, isAnimated: Bool = true) -> Route { 148| 0| return Router.popToFirstInstanceOf(type, isAnimated: isAnimated) 149| 0| } 150| | 151| | /// Returns route, that calls `popToViewController(_:animated:)` method on currently visible navigation controller. No view is getting built in the process of routing. Last instance of `type` view controllers available in navigation stack is selected. 152| | /// - Parameters: 153| | /// - type: type of view controller to search for in navigation stack 154| | /// - isAnimated: should the transition be animated. 155| 2| open class func popToLastInstanceOf(_ type: UIViewController.Type, isAnimated: Bool = true) -> Route { 156| 2| return Route(builder: NonBuilder(), transition: PopNavigationTransition(.popToLastInstanceOf(type), isAnimated: isAnimated)) 157| 2| } 158| | 159| | /// Returns route, that calls `popToViewController(_:animated:)` method on currently visible navigation controller. No view is getting built in the process of routing. Last instance of `type` view controllers available in navigation stack is selected. 160| | /// - Parameters: 161| | /// - type: type of view controller to search for in navigation stack 162| | /// - isAnimated: should the transition be animated. 163| 0| open func popToLastInstanceOf(_ type: UIViewController.Type, isAnimated: Bool = true) -> Route { 164| 0| return Router.popToLastInstanceOf(type, isAnimated: isAnimated) 165| 0| } 166| | 167| | /// Returns route, that calls `popToRootViewController` method on currently visible navigation controller. No view is getting built in the process of routing. 168| | /// 169| | /// - Parameter isAnimated: should the transition be animated. 170| | /// - Returns: performable route. 171| 1| open func popToRootRoute(isAnimated: Bool = true) -> Route { 172| 1| return Router.popToRootRoute(isAnimated: isAnimated) 173| 1| } 174| | 175| | /// Returns route, that calls `dismiss` method on currently visible view controller. No view is getting built in the process of routing. 176| | /// 177| | /// - Parameter isAnimated: should the transition be animated. 178| | /// - Returns: performable route. 179| 1| open class func dismissRoute(isAnimated: Bool = true) -> Route { 180| 1| return .init(builder: NonBuilder(), transition: DismissTransition(isAnimated: isAnimated)) 181| 1| } 182| | 183| | /// Returns route, that calls `dismiss` method on currently visible view controller. No view is getting built in the process of routing. 184| | /// 185| | /// - Parameter isAnimated: should the transition be animated. 186| | /// - Returns: performable route. 187| 1| open func dismissRoute(isAnimated: Bool = true) -> Route { 188| 1| return Router.dismissRoute(isAnimated: isAnimated) 189| 1| } 190| | 191| | #endif 192| | 193| | /// Performs navigation to `route` using provided `context` and calling `completion` once routing process is completed. 194| | /// 195| | /// - Parameters: 196| | /// - route: route to navigate to. 197| | /// - context: object that will be used to build view to navigate to, if needed. 198| | /// - completion: will be called once routing is completed. 199| | open func navigate(to route: T, 200| | with context: T.Builder.Context, 201| | completion: ((Bool) -> Void)? = nil) 202| 21| { 203| 21| route.perform(withViewFinder: viewFinder, context: context, completion: completion) 204| 21| } 205| | 206| | /// Performs navigation to `route` and calls `completion` once routing process is completed. 207| | /// 208| | /// - Parameters: 209| | /// - route: route to navigate to. 210| | /// - completion: will be called once routing is completed. 211| | open func navigate(to route: T, completion: ((Bool) -> Void)? = nil) 212| 18| where T.Builder.Context == Void { 213| 18| navigate(to: route, with: (), completion: completion) 214| 18| } 215| |} /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/BaseTransition.swift: 1| |// 2| |// BaseTransition.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 2/9/19. 6| |// Copyright © 2019 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |/// Base class for transition objects. 29| |open class BaseTransition { 30| | 31| | /// Should the transition be animated. 32| | open var isAnimated: Bool 33| | 34| | /// Object responsible for finding currently visible view in view hierarchy. 35| | public let viewFinder: ViewFinder? 36| | 37| | /// Creates animated transition object. If `finder` argument is nil, `Route` class uses `ViewFinder` passed by the `Router` that performs the route. This is recommended behavior unless you want to customize view searching for this particular transition. 38| | /// 39| | /// - Parameters: 40| | /// - finder: Object responsible for finding currently visible view in view hierarchy. Defaults to nil. 41| | /// - isAnimated: Should the transition be animated. Defaults to true. 42| 17| public init(finder: ViewFinder? = nil, isAnimated: Bool = true) { 43| 17| viewFinder = finder 44| 17| self.isAnimated = isAnimated 45| 17| } 46| | 47| | #if os(iOS) || os(tvOS) 48| | 49| | /// If `isAnimated` flag is true, calls visibleView.transitionCoordinator `animate(alongsideTransition:)` method and calls completion block once transition has been completed. If `isAnimated` is false, just calls completion block and returns. 50| | /// - Parameter visibleView: View to perform transition on 51| | /// - Parameter isAnimated: whether transition should be animated 52| | /// - Parameter completion: completion block to call once transition is completed 53| 13| open func animateAlongsideTransition(with visibleView: ViewController?, isAnimated: Bool, completion: ((Bool) -> Void)?) { 54| 13| if let coordinator = visibleView?.transitionCoordinator, isAnimated { 55| 0| coordinator.animate(alongsideTransition: nil) { _ in 56| 0| completion?(true) 57| 0| } 58| 13| } else { 59| 13| completion?(true) 60| 13| } 61| 13| } 62| | 63| | #endif 64| |} /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/CurrentlyVisibleViewFinder.swift: 1| |// 2| |// CurrentlyVisibleViewFinder.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 10/17/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| |#if canImport(UIKit) 28| |import UIKit 29| | 30| |#if os(iOS) || os(tvOS) 31| |extension UIWindow: RootViewProvider {} 32| | 33| |/// Class, capable of finding currently visible view, using recursive search through UIViewController, UINavigationController and UITabBarController APIs. 34| |open class CurrentlyVisibleViewFinder: ViewFinder { 35| | 36| | /// Provider of root view in hierarchy 37| | public let rootViewProvider: RootViewProvider? 38| | 39| | /// Creates `CurrentlyVisibleViewFinder`. 40| | /// 41| | /// - Parameter rootViewProvider: provider of root view in hierarchy 42| 20| public init(rootViewProvider: RootViewProvider?) { 43| 20| self.rootViewProvider = rootViewProvider 44| 20| } 45| | 46| | /// Searches view hierarhcy for currently visible view. If no visible view was found, root view controller from `rootViewProvider` is returned. 47| | /// 48| | /// - Parameter view: view controller to start search from. When nil is passed as an argument, search starts from rootViewController. Defaults to nil. 49| | /// - Returns: currently visible view or rootViewController if none was found. 50| 23| open func currentlyVisibleView(startingFrom view: ViewController? = nil) -> ViewController? { 51| 23| return findCurrentlyVisibleView(startingFrom: view ?? rootViewProvider?.rootViewController) 52| 23| } 53| | 54| | /// Recursively searches view hierarchy for currently visible view. 55| | /// 56| | /// - Parameter view: view to start search from 57| | /// - Returns: currently visible view. 58| 57| open func findCurrentlyVisibleView(startingFrom view: ViewController?) -> ViewController? { 59| 57| guard let view = view else { return nil } 60| 34| 61| 34| var visibleView: ViewController? 62| 34| switch view { 63| 34| case let tabBar as UITabBarController: 64| 0| visibleView = findCurrentlyVisibleView(startingFrom: tabBar.selectedViewController ?? tabBar.presentedViewController) ?? tabBar 65| 34| case let navigation as UINavigationController: 66| 13| visibleView = findCurrentlyVisibleView(startingFrom: navigation.visibleViewController) ?? navigation 67| 34| default: 68| 21| visibleView = findCurrentlyVisibleView(startingFrom: view.presentedViewController) ?? view 69| 34| } 70| 34| return visibleView ?? view 71| 34| } 72| |} 73| | 74| 0|let printSplitViewControllerWarning: Void = { 75| 0| print(""" 76| 0| ⚠️ Attempting to search UISplitViewController that is collapsed. This leads to selection of only one controller, which `SplitViewCurrentlyVisibleViewFinder` will still return. 77| 0| This, however, can lead to incorrect logic, since you might get a detail view controller when requesting master and vice versa. 78| 0| This warning will be printed only once. 79| 0|""") 80| 0|}() 81| | 82| |/// `CurrentlyVisibleViewFinder` that proritizes either master or detail view controller in split view controllers. 83| |/// Please note that this ViewFinder should only be used for iPad interfaces that do not have collapsed UISplitViewControllers. 84| |/// If UISplitViewController is collapsed, it's `viewControllers` property only returns one of two(master,detail) view controllers and therefore it's impossible to know if one of those is a master or a detail. 85| |open class SplitViewCurrentlyVisibleViewFinder: CurrentlyVisibleViewFinder { 86| | 87| | /// Kind of view controller that should be prioritized when searching for currently visible view controller 88| | public enum Kind { 89| | case master 90| | case detail 91| | } 92| | 93| | /// Kind of view controller that should be prioritized when searching for currently visible view controller 94| | public let kind: Kind 95| | 96| | /// Creates `SplitViewCurrentlyVisibleViewFinder` that prioritizes `kind` view controller when searching for currently visible view controller. 97| | /// - Parameters: 98| | /// - kind: master or detail view 99| | /// - rootViewProvider: provider of root view in hierarchy 100| 0| public init(kind: Kind, rootViewProvider: RootViewProvider?) { 101| 0| self.kind = kind 102| 0| super.init(rootViewProvider: rootViewProvider) 103| 0| } 104| | 105| | /// Recursively searches view hierarchy for currently visible view. When `UISplitViewController` is encountered, `kind` is prioritized (.master: viewControllers.first, .detail: viewControllers.last) 106| | /// 107| | /// - Parameter view: view to start search from 108| | /// - Returns: currently visible view. 109| 0| open override func findCurrentlyVisibleView(startingFrom view: ViewController?) -> ViewController? { 110| 0| guard let splitView = view as? UISplitViewController else { 111| 0| return super.findCurrentlyVisibleView(startingFrom: view) 112| 0| } 113| 0| if splitView.viewControllers.count > 1 { 114| 0| printSplitViewControllerWarning 115| 0| } 116| 0| switch kind { 117| 0| case .master: 118| 0| return splitView.viewControllers.first 119| 0| case .detail: 120| 0| return splitView.viewControllers.last 121| 0| } 122| 0| } 123| |} 124| | 125| |#endif 126| | 127| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/NavigationTransition.swift: 1| |// 2| |// NavigationTransition.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 10/11/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |#if canImport(UIKit) 29| |import UIKit 30| | 31| |#if os(iOS) || os(tvOS) 32| | 33| |/// Class, that encapsulates UINavigationController.pushViewController(_:animated:) method call as a transition. 34| |open class PushNavigationTransition: BaseTransition, ViewTransition { 35| | 36| | /// Transition type .show. 37| 4| public let transitionType: TransitionType = .show 38| | 39| | /// Performs transition by calling `pushViewController(_:animated:)` on `visibleView` navigation controller with `view` argument. 40| | /// 41| | /// - Parameters: 42| | /// - view: view that is being pushed. 43| | /// - visibleView: visible view in navigation controller stack. 44| | /// - completion: called once transition has been completed 45| 4| open func perform(with view: ViewController?, on visibleView: ViewController?, completion: ((Bool) -> Void)?) { 46| 4| guard let view = view else { completion?(false); return } 47| 4| guard let navigation = (visibleView as? UINavigationController) ?? visibleView?.navigationController else { 48| 0| completion?(false); return 49| 4| } 50| 4| navigation.pushViewController(view, animated: isAnimated) 51| 4| animateAlongsideTransition(with: visibleView, isAnimated: isAnimated, completion: completion) 52| 4| } 53| |} 54| | 55| |/// Class, that encapsulates UINavigationController.popViewController(_:animated:) method call as a transition. 56| |open class PopNavigationTransition: BaseTransition, ViewTransition { 57| | 58| | /// Kind of pop navigation transition to perform 59| | public enum Behavior { 60| | case pop 61| | case popToRoot 62| | case popToFirstInstanceOf(UIViewController.Type) 63| | case popToLastInstanceOf(UIViewController.Type) 64| | } 65| | 66| | /// Transition type .hide. 67| 6| public let transitionType: TransitionType = .hide 68| | 69| | /// Behavior of pop navigation transition to perform 70| | public let behavior: Behavior 71| | 72| | /// Creates `PopNavigationTransition` with specified `behavior`. 73| | /// - Parameters: 74| | /// - behavior: Behavior of pop navigation transition 75| | /// - finder: Object responsible for finding currently visible view in view hierarchy. Defaults to nil. 76| | /// - isAnimated: Should the transition be animated. Defaults to true. 77| 6| public init(_ behavior: Behavior = .pop, finder: ViewFinder? = nil, isAnimated: Bool = true) { 78| 6| self.behavior = behavior 79| 6| super.init(finder: finder, isAnimated: isAnimated) 80| 6| } 81| | 82| | /// Performs transition by calling `popViewController(_:animated:)` on `visibleView` navigation controller. 83| | /// 84| | /// - Parameters: 85| | /// - view: currently visible view 86| | /// - visibleView: currently visible view in view hierarchy 87| | /// - completion: called once transition has been completed 88| 6| open func perform(with view: ViewController?, on visibleView: ViewController?, completion: ((Bool) -> Void)?) { 89| 6| guard let visibleView = visibleView else { completion?(false); return } 90| 6| guard let navigation = (visibleView as? UINavigationController) ?? visibleView.navigationController else { 91| 0| completion?(false); return 92| 6| } 93| 6| switch behavior { 94| 6| case .pop: navigation.popViewController(animated: isAnimated) 95| 6| case .popToRoot: navigation.popToRootViewController(animated: isAnimated) 96| 6| case .popToFirstInstanceOf(let type): 97| 2| let first = navigation.viewControllers.first(where: { $0.isKind(of: type) }) 98| 1| _ = first.flatMap { navigation.popToViewController($0, animated: isAnimated) } 99| 6| case .popToLastInstanceOf(let type): 100| 4| let last = navigation.viewControllers.last(where: { $0.isKind(of: type) }) 101| 2| _ = last.flatMap { navigation.popToViewController($0, animated: isAnimated) } 102| 6| } 103| 6| animateAlongsideTransition(with: visibleView, isAnimated: isAnimated, completion: completion) 104| 6| } 105| |} 106| | 107| |/// Class, that encapsulates UINavigationController.setViewControllers(_:animated:) method call as a transition. 108| |open class ReplaceNavigationTransition: BaseTransition, ViewTransition { 109| | 110| | /// Behavior of `ReplaceNavigationTransition`. 111| | public enum Behavior { 112| | case replaceLast 113| | case replaceAll 114| | // Choose what view controllers to keep. Navigation stack after replacement will contain view controllers returned from custom closure + replacing view controller as a last of them. 115| | case custom(keepControllers: ([UIViewController]) -> [UIViewController]) 116| | } 117| | 118| | /// Transition type .show 119| 3| public let transitionType: TransitionType = .show 120| | 121| | /// Behavior of replace navigation transition to perform 122| | public let behavior: Behavior 123| | 124| | /// Creates `ReplaceNavigationTransition` with specified `behavior`. 125| | /// - Parameters: 126| | /// - behavior: Behavior of replace navigation transition 127| | /// - finder: Object responsible for finding currently visible view in view hierarchy. Defaults to nil. 128| | /// - isAnimated: Should the transition be animated. Defaults to true. 129| 3| public init(_ behavior: Behavior = .replaceLast, finder: ViewFinder? = nil, isAnimated: Bool = true) { 130| 3| self.behavior = behavior 131| 3| super.init(finder: finder, isAnimated: isAnimated) 132| 3| } 133| | 134| | /// Performs transition by calling `setViewControllers(_:animated:)` on visible navigation controller 135| | /// - Parameters: 136| | /// - view: currently visible view 137| | /// - visibleView: currently visible view in view hierarchy 138| | /// - completion: called once transition has been completed 139| 3| open func perform(with view: ViewController?, on visibleView: ViewController?, completion: ((Bool) -> Void)?) { 140| 3| guard let view = view else { completion?(false); return } 141| 3| guard let navigation = (visibleView as? UINavigationController) ?? visibleView?.navigationController else { 142| 0| completion?(false); return 143| 3| } 144| 3| switch behavior { 145| 3| case .replaceAll: 146| 1| navigation.setViewControllers([view], animated: isAnimated) 147| 3| case .replaceLast: 148| 1| var stack = navigation.viewControllers.dropLast() 149| 1| stack.append(view) 150| 3| navigation.setViewControllers(stack.map { $0 }, animated: isAnimated) 151| 3| case .custom(keepControllers: let closure): 152| 1| var newStack = closure(navigation.viewControllers) 153| 1| newStack.append(view) 154| 2| navigation.setViewControllers(newStack.map { $0 }, animated: isAnimated) 155| 3| } 156| 3| animateAlongsideTransition(with: visibleView, isAnimated: isAnimated, completion: completion) 157| 3| } 158| |} 159| | 160| |@available(*, deprecated, message: "Please use PopNavigationTransition with .popToRoot Kind.") 161| |/// Class, that encapsulates UINavigationController.popToRootViewController(animated:) method call as a transition. 162| |open class PopToRootNavigationTransition: BaseTransition, ViewTransition { 163| | 164| | /// Transition type .hide. 165| 0| public let transitionType: TransitionType = .hide 166| | 167| | /// Performs transition by calling `popToRootViewController(animated:)` on `visibleView` navigation controller. 168| | /// 169| | /// - Parameters: 170| | /// - view: currently visible view 171| | /// - visibleView: currently visible view in view hierarchy 172| | /// - completion: called once transition has been completed 173| 0| open func perform(with view: ViewController?, on visibleView: ViewController?, completion: ((Bool) -> Void)?) { 174| 0| PopNavigationTransition(.popToRoot, finder: viewFinder, isAnimated: isAnimated) 175| 0| .perform(with: view, on: visibleView, completion: completion) 176| 0| } 177| |} 178| | 179| |#endif 180| | 181| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/NavigationViewBuilder.swift: 1| |// 2| |// NavigationViewBuilder.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 10/1/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |#if canImport(UIKit) 29| |import UIKit 30| | 31| |#if os(iOS) || os(tvOS) 32| | 33| |/// Builder for `UINavigationController` instance with array of views. 34| |open class NavigationEmbeddingBuilder: ViewControllerBuilder { 35| | 36| | /// Defines how `UINavigationController` should be created. 37| 1| open var navigationControllerBuilder : () -> UINavigationController = { .init() } ------------------ | $s7Ariadne26NavigationEmbeddingBuilderC020navigationControllerD0So012UINavigationF0Cycvpfi: | 37| 1| open var navigationControllerBuilder : () -> UINavigationController = { .init() } ------------------ | Unexecuted instantiation: $s7Ariadne26NavigationEmbeddingBuilderC020navigationControllerD0So012UINavigationF0CycvpfiAFycfU_ ------------------ 38| | 39| | // swiftlint:disable multiple_closure_params 40| | 41| | /// Creates `NavigationEmbeddingBuilder`. 42| 1| public init(navigationBuilder: @escaping () -> UINavigationController = { .init() }) { 43| 1| self.navigationControllerBuilder = navigationBuilder 44| 1| } 45| | 46| | /// Builds `UINavigationController` from provided array of views, setting them in `viewControllers` property of `UINavigationController`. 47| | /// 48| | /// - Parameter context: Array of views to set in `viewControllers` property. 49| | /// - Returns: Created `UINavigationController`. 50| 1| open func build(with context: [ViewController]) -> UINavigationController { 51| 1| let navigation = navigationControllerBuilder() 52| 1| navigation.viewControllers = context 53| 1| return navigation 54| 1| } 55| |} 56| | 57| |/// Builder for `UINavigationController` instance with a single embedded view. This builder keeps `Context` the same as `Context` of embedded view builder, thus allowing building a combination of those by passing embedded view Context. 58| |open class NavigationSingleViewEmbeddingBuilder: ViewControllerBuilder { 59| | 60| | /// `NavigationSingleViewEmbeddingBuilder`.Context is identical to embedded view Context. 61| | public typealias Context = T.Context 62| | 63| | /// Embedded view builder. 64| | public let builder: T 65| | 66| | /// Defines how `UINavigationController` should be created 67| 3| open var navigationControllerBuilder : () -> UINavigationController = { .init() } ------------------ | $s7Ariadne36NavigationSingleViewEmbeddingBuilderC020navigationControllerF0So012UINavigationH0Cycvpfi: | 67| 3| open var navigationControllerBuilder : () -> UINavigationController = { .init() } ------------------ | Unexecuted instantiation: $s7Ariadne36NavigationSingleViewEmbeddingBuilderC020navigationControllerF0So012UINavigationH0CycvpfiAFycfU_ ------------------ 68| | 69| | /// Creates `NavigationSingleViewEmbeddingBuilder` from provided embedded view builder. 70| | /// 71| | /// - Parameter builder: Embedded view builder. 72| 3| public init(builder: T) { 73| 3| self.builder = builder 74| 3| } 75| | 76| | /// Builds `UINavigationController` instance with embedded view, which is set in its `viewControllers` property. 77| | /// 78| | /// - Parameter context: Argument to build embedded view. 79| | /// - Returns: Created `UINavigationController`. 80| | /// - Throws: Embedded view build errors. 81| 3| open func build(with context: Context) throws -> UINavigationController { 82| 3| let view = try builder.build(with: context) 83| 3| let navigation = navigationControllerBuilder() 84| 3| navigation.viewControllers = [view] 85| 3| return navigation 86| 3| } 87| |} 88| | 89| |extension ViewControllerBuilder { 90| | 91| | /// Creates a `NavigationSingleViewEmbeddingBuilder`, embedding current view builder in it. 92| | /// 93| | /// - Returns: `NavigationSingleViewEmbeddingBuilder` with current builder embedded. 94| 3| public func embeddedInNavigation(navigationBuilder: @escaping () -> UINavigationController = { .init() }) -> NavigationSingleViewEmbeddingBuilder { 95| 3| let builder = NavigationSingleViewEmbeddingBuilder(builder: self) 96| 3| builder.navigationControllerBuilder = navigationBuilder 97| 3| return builder 98| 3| } 99| |} 100| | 101| |#endif 102| | 103| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/PresentationTransition.swift: 1| |// 2| |// PresentationTransition.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 10/18/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |#if canImport(UIKit) 29| |import UIKit 30| | 31| |#if os(iOS) || os(tvOS) 32| | 33| |/// Class, that encapsulates UIViewController.present(_:animated:) method call as a transition. 34| |open class PresentationTransition: BaseTransition, ViewTransition { 35| | 36| | /// Transition type .show 37| 3| public let transitionType: TransitionType = .show 38| | 39| | /// Performs transition by calling `present(_:animated:)` on `visibleView` with `view` argument. 40| | /// 41| | /// - Parameters: 42| | /// - view: view that is being presented. 43| | /// - visibleView: visible view, on which presentation will being performed. 44| | /// - completion: called once presentation has been completed. 45| 3| public func perform(with view: ViewController?, on visibleView: ViewController?, completion: ((Bool) -> Void)?) { 46| 3| guard let view = view else { completion?(false); return } 47| 3| guard let visibleView = visibleView else { completion?(false); return } 48| 3| visibleView.present(view, animated: isAnimated) { 49| 3| completion?(true) 50| 3| } 51| 3| } 52| |} 53| | 54| |/// Class, that encapsulates `UIViewController.dismiss(animated:)` method call as transition 55| |open class DismissTransition: BaseTransition, ViewTransition { 56| | 57| | /// Transition type .hide 58| 1| public let transitionType: TransitionType = .hide 59| | 60| | /// Performs transition by calling `dismiss(animated:)` on `visibleView`. 61| | /// 62| | /// - Parameters: 63| | /// - view: unused in dismiss transition 64| | /// - visibleView: view that will be dismissed 65| | /// - completion: called once dismissal is complete 66| 1| public func perform(with view: ViewController?, on visibleView: ViewController?, completion: ((Bool) -> Void)?) { 67| 1| guard let visibleView = visibleView else { completion?(false); return } 68| 1| visibleView.dismiss(animated: isAnimated) { 69| 1| completion?(true) 70| 1| } 71| 1| } 72| |} 73| | 74| |#endif 75| | 76| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/RootViewTransition.swift: 1| |// 2| |// RootViewTransition.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 10/18/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |#if os(iOS) || os(tvOS) 29| |import UIKit 30| | 31| |/// Class, that implements transition for `UIWindow.rootViewController`. 32| |open class RootViewTransition: ViewTransition { 33| | 34| | /// Transition type, defaults to .show. 35| 4| open var transitionType: TransitionType = .show 36| | 37| | /// CUrrently visible view finder. Defaults to nil and is not used in current transition. 38| | open var viewFinder: ViewFinder? 39| | 40| | /// `UIWindow` instance on which transition will be performed. 41| | public let window: UIWindow 42| | 43| | /// Duration of animated transition. Defaults to 0.3 seconds. 44| | open var duration: TimeInterval = 0.3 45| | 46| | /// Animation options for transition. Defaults to UIView.AnimationOptions.transitionCrossDissolve. 47| 4| open var animationOptions = UIView.AnimationOptions.transitionCrossDissolve 48| | 49| | /// Should the transition be animated. 50| | open var isAnimated: Bool 51| | 52| | /// Creates `RootViewTransition` from specified `UIWindow` instance. 53| | /// 54| | /// - Parameters: 55| | /// - window: `UIWindow`, on which transition will be happening. 56| | /// - isAnimated: Should the transition be animated. 57| 4| public init(window: UIWindow, isAnimated: Bool = true) { 58| 4| self.window = window 59| 4| self.isAnimated = isAnimated 60| 4| } 61| | 62| | /// Performs UIWindow.rootViewController switch using `UIView.transition(with:duration:options:animations:completion:)` method. 63| | /// 64| | /// - Parameters: 65| | /// - view: View that will be set as a `rootViewController`. 66| | /// - visibleView: Currently visibleView. Unused in this method. 67| | /// - completion: Called once transition has been completed. 68| 4| open func perform(with view: ViewController?, on visibleView: ViewController?, completion: ((Bool) -> Void)?) { 69| 4| if isAnimated { 70| 0| UIView.performWithoutAnimation { 71| 0| UIView.transition(with: window, duration: duration, 72| 0| options: animationOptions, 73| 0| animations: { 74| 0| self.window.rootViewController = view 75| 0| }, completion: { state in 76| 0| completion?(state) 77| 0| }) 78| 0| } 79| 4| } else { 80| 4| window.rootViewController = view 81| 4| completion?(true) 82| 4| } 83| 4| } 84| |} 85| | 86| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/Route.swift: 1| |// 2| |// Route.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 1/29/19. 6| |// Copyright © 2019 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |/// Type, that is responsible for performing routing between views. 29| |open class Route: Routable { 30| | 31| | /// Object, responsible for building a view, that is needed for routing. 32| | public let builder: Builder 33| | 34| | /// Object, that is responsible for performing a transition between views 35| | public let transition: Transition 36| | 37| | /// Closure, that is called prior to executing .hide transition 38| | open var prepareForHideTransition: ((_ visibleView: ViewController, _ transition: Transition) -> Void)? 39| | 40| | /// Closure, that is called prior to executing .show transition 41| | open var prepareForShowTransition: ((_ view: Builder.ViewType, _ transition: Transition, _ toView: ViewController?) -> Void)? 42| | 43| | /// Closure, that is called prior to executing a .custom transition 44| | open var prepareForCustomTransition: ((_ visibleView: ViewController, _ transition: Transition) -> Void)? 45| | 46| | /// Creates Route with specified builder and transition. 47| | /// 48| | /// - Parameters: 49| | /// - builder: Object, responsible for building a view. 50| | /// - transition: Object, that is responsible for performing transition between views. 51| 22| public init(builder: Builder, transition: Transition) { 52| 22| self.builder = builder 53| 22| self.transition = transition 54| 22| } 55| | 56| | /// Performs route between views. 57| | /// 58| | /// - Parameters: 59| | /// - viewFinder: Object, responsible for providing currently visible view. 60| | /// - context: object that will be used to build view to navigate to, if needed. 61| | /// - completion: will be called once routing is completed. 62| | open func perform(withViewFinder viewFinder: ViewFinder, 63| | context: Builder.Context, 64| 21| completion: ((Bool) -> Void)? = nil) { 65| 21| guard let visibleView = (transition.viewFinder ?? viewFinder)?.currentlyVisibleView(startingFrom: nil) else { 66| 0| completion?(false) 67| 0| return 68| 21| } 69| 21| 70| 21| switch transition.transitionType { 71| 21| case .hide: 72| 7| prepareForHideTransition?(visibleView, transition) 73| 7| transition.perform(with: nil, on: visibleView, completion: completion) 74| 21| case .show: 75| 14| guard let viewToShow = try? builder.build(with: context) else { 76| 0| completion?(false); return 77| 14| } 78| 14| prepareForShowTransition?(viewToShow, transition, visibleView) 79| 14| transition.perform(with: viewToShow, on: visibleView, completion: completion) 80| 21| case .custom: 81| 0| prepareForCustomTransition?(visibleView, transition) 82| 0| transition.perform(with: nil, on: visibleView, completion: completion) 83| 21| } 84| 21| } 85| |} 86| | 87| |/// Subclass of `Route`, that allows view to be updated instead of creating a new one to transition to. 88| |open class UpdatingRoute: Route 89| | where Builder.ViewType: ContextUpdatable, 90| | Builder.Context == Finder.ViewType.Context, 91| | Finder.Context == Builder.Context, 92| | Finder.ViewType == Builder.ViewType { 93| | 94| | /// Object, responsible for finding view to update. 95| | public let updatableViewFinder: Finder 96| | 97| | /// Creates `UpdatingRoute`. 98| | /// 99| | /// - Parameters: 100| | /// - updatableViewFinder: Object, responsible for finding view to update. 101| | /// - builder: Object, responsible for building a view, that is needed for routing. 102| | /// - transition: Object, that is responsible for performing a transition between views. 103| 1| public init(updatableViewFinder: Finder, builder: Builder, transition: Transition) { 104| 1| self.updatableViewFinder = updatableViewFinder 105| 1| super.init(builder: builder, transition: transition) 106| 1| } 107| | 108| | /// Performs route between views. If updatable view is found, it's updated with newly received context. If it's not found, this method calls superclass method and behaves as a `Route` object. 109| | /// 110| | /// - Parameters: 111| | /// - viewFinder: Object, responsible for providing currently visible view. 112| | /// - context: object that will be used to build view to navigate to, if needed. 113| | /// - completion: will be called once routing is completed. 114| 2| open override func perform(withViewFinder viewFinder: ViewFinder, context: Builder.Context, completion: ((Bool) -> Void)?) { 115| 2| guard let updatableView = updatableViewFinder.findUpdatableView(for: context) else { 116| 1| super.perform(withViewFinder: viewFinder, 117| 1| context: context, 118| 1| completion: completion) 119| 1| return 120| 1| } 121| 1| updatableView.update(with: context) 122| 1| completion?(true) 123| 1| } 124| |} 125| | 126| |#if os(iOS) || os(tvOS) 127| | 128| |extension Route where Builder.ViewType: ContextUpdatable, Builder.ViewType.Context == Builder.Context { 129| | 130| | /// Converts `Route` to `UpdatingRoute` given provided `RootViewProvider`, using `CurrentlyVisibleUpdatableViewFinder` as a `ViewFinder`. 131| | /// 132| | /// - Parameter rootProvider: Object responsible for providing root view of interface hierarchy. 133| | /// - Returns: `UpdatingRoute` with generic types identical to the current `Route`. 134| 1| open func asUpdatingRoute(withRootProvider rootProvider: RootViewProvider) -> UpdatingRoute, Builder, Transition> { 135| 1| return UpdatingRoute(updatableViewFinder: CurrentlyVisibleUpdatableViewFinder(rootProvider: rootProvider), 136| 1| builder: builder, 137| 1| transition: transition) 138| 1| } 139| |} 140| | 141| |#endif 142| | 143| |/// `Routable` type, that can be used to chain multiple `Route` objects. This is useful, for example, if you want to hide one View, and then immediately after hiding completes, show a different one. 144| |open class ChainableRoute: Routable { 145| | 146| | /// `ChainableRoute` builder is identical to first route builder 147| | public typealias Builder = T.Builder 148| | 149| | /// First route in the chain 150| | public let headRoute: T 151| | 152| | /// Other routes in the chain 153| | public let tailRoute: U 154| | 155| | /// Context, that will be used to build next View in the chain 156| | public let tailContext: U.Builder.Context 157| | 158| | /// Returns headRoute builder 159| 0| public var builder: T.Builder { 160| 0| return headRoute.builder 161| 0| } 162| | 163| | /// Returns NonTransition instance. 164| 0| public var transition: NonTransition { 165| 0| return NonTransition() 166| 0| } 167| | 168| | /// Creates chain from two routes, by placing them in a `headRoute` and `tailRoute`. 169| | /// 170| | /// - Parameters: 171| | /// - headRoute: Route to be performed first 172| | /// - tailRoute: Route to be performed next in the chain 173| | /// - tailContext: Context required to build view for next route in the chain 174| 1| public init(headRoute: T, tailRoute: U, tailContext: U.Builder.Context) { 175| 1| self.headRoute = headRoute 176| 1| self.tailRoute = tailRoute 177| 1| self.tailContext = tailContext 178| 1| } 179| | 180| | /// Performs `headRoute`, and once it completes, follows it with `tailRoute`, and once that is completed, calls completion closure. 181| | /// 182| | /// - Parameters: 183| | /// - viewFinder: object responsible for finding view on which route should be performed. 184| | /// - context: object that will be used to build view to navigate to, if needed. In this case, it's context for `headRoute`. 185| | /// - completion: will be called once head and tail routes are completed. 186| 1| open func perform(withViewFinder viewFinder: ViewFinder, context: T.Builder.Context, completion: ((Bool) -> Void)?) { 187| 1| headRoute.perform(withViewFinder: viewFinder, context: context) { [weak self] completedHead in 188| 1| guard let self = self else { 189| 0| completion?(false) 190| 0| return 191| 1| } 192| 1| self.tailRoute.perform(withViewFinder: viewFinder, context: self.tailContext, completion: { completedTail in 193| 1| completion?(completedHead && completedTail) 194| 1| }) 195| 1| } 196| 1| } 197| |} 198| | 199| |extension Routable { 200| | 201| | /// Chains current route with the next one. 202| | /// 203| | /// - Parameters: 204| | /// - chainedRoute: Route to be performed after current one. 205| | /// - context: Argument, used to build view for next route. 206| | /// - Returns: ChainedRoute with current Route set as `HeadRoute`, and `chainedRoute` set as `tailRoute`. 207| 1| public func chained(with chainedRoute: T, context: T.Builder.Context) -> ChainableRoute { 208| 1| return ChainableRoute(headRoute: self, tailRoute: chainedRoute, tailContext: context) 209| 1| } 210| | 211| | /// Chains current route with the next one. 212| | /// 213| | /// - Parameters: 214| | /// - chainedRoute: Route to be performed after current one. 215| | /// - Returns: ChainedRoute with current Route set as `HeadRoute`, and `chainedRoute` set as `tailRoute`. 216| | public func chained(with chainedRoute: T) -> ChainableRoute 217| 1| where T.Builder.Context == Void { 218| 1| return chained(with: chainedRoute, context: ()) 219| 1| } 220| |} /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/SplitViewBuilder.swift: 1| |// 2| |// SplitViewBuilder.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 10/30/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |#if canImport(UIKit) 29| |import UIKit 30| | 31| |#if os(iOS) || os(tvOS) 32| | 33| |/// Builder for `UISplitViewController` instance. 34| |open class SplitViewBuilder: ViewControllerBuilder { 35| | 36| | /// Defines how `UISplitViewController` should be created. 37| 2| open var splitViewControllerBuilder: () -> UISplitViewController = { .init() } ------------------ | $s7Ariadne16SplitViewBuilderC05splitc10ControllerD0So07UISplitcF0Cycvpfi: | 37| 1| open var splitViewControllerBuilder: () -> UISplitViewController = { .init() } ------------------ | $s7Ariadne16SplitViewBuilderC05splitc10ControllerD0So07UISplitcF0CycvpfiAFycfU_: | 37| 1| open var splitViewControllerBuilder: () -> UISplitViewController = { .init() } ------------------ 38| | 39| | /// Builder for master view 40| | public let masterBuilder: MasterBuilder 41| | 42| | /// Builder for detail view 43| | public let detailBuilder: DetailBuilder 44| | 45| | /// Creates `SplitViewBuilder` from provided master view and detail view builders. 46| | /// 47| | /// - Parameters: 48| | /// - masterBuilder: Builder to create master view. 49| | /// - detailBuilder: Bulder to create detail view. 50| 1| public init(masterBuilder: MasterBuilder, detailBuilder: DetailBuilder) { 51| 1| self.masterBuilder = masterBuilder 52| 1| self.detailBuilder = detailBuilder 53| 1| } 54| | 55| | /// Builds `UISplitViewController` from provided contexts for master view and detail view. 56| | /// 57| | /// - Parameter context: tuple of master view context and detail view context. 58| | /// - Returns: creates UISplitViewController instance. 59| | /// - Throws: Master view builder error or detail view builder error. 60| 1| open func build(with context: (MasterBuilder.Context, DetailBuilder.Context)) throws -> UISplitViewController { 61| 1| let splitView = splitViewControllerBuilder() 62| 1| let master = try masterBuilder.build(with: (context.0)) 63| 1| let detail = try detailBuilder.build(with: (context.1)) 64| 1| splitView.viewControllers = [master, detail] 65| 1| return splitView 66| 1| } 67| |} 68| | 69| |#endif 70| | 71| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/TabBarViewBuilder.swift: 1| |// 2| |// TabBarViewBuilder.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 10/30/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |#if canImport(UIKit) 29| |import UIKit 30| | 31| |#if os(iOS) || os(tvOS) 32| | 33| |/// Builder for `UITabBarController` instance. 34| |open class TabBarEmbeddingBuilder: ViewControllerBuilder { 35| | 36| | /// Defines how `UITabBarController` should be created. 37| 2| open var tabBarControllerBuilder: () -> UITabBarController = { .init() } ------------------ | $s7Ariadne22TabBarEmbeddingBuilderC03tabc10ControllerE0So05UITabcG0Cycvpfi: | 37| 2| open var tabBarControllerBuilder: () -> UITabBarController = { .init() } ------------------ | Unexecuted instantiation: $s7Ariadne22TabBarEmbeddingBuilderC03tabc10ControllerE0So05UITabcG0CycvpfiAFycfU_ ------------------ 38| | 39| | // swiftlint:disable multiple_closure_params 40| | 41| | /// Creates `TabBarEmbeddingBuilder`. 42| 2| public init(tabBarBuilder: @escaping () -> UITabBarController = { .init() }) { 43| 2| self.tabBarControllerBuilder = tabBarBuilder 44| 2| } 45| | 46| | /// Builds `UITabBarController` from provided array of views, setting them in `viewControllers` property of `UITabBarController`. 47| | /// 48| | /// - Parameter context: array of views to set in `viewControllers` property. 49| | /// - Returns: created `UITabBarController`. 50| 2| open func build(with context: [ViewController]) -> UITabBarController { 51| 2| let tabBar = tabBarControllerBuilder() 52| 2| tabBar.viewControllers = context 53| 2| return tabBar 54| 2| } 55| |} 56| | 57| |#endif 58| | 59| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/UpdatableViewFinder.swift: 1| |// 2| |// ViewUpdater.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 1/29/19. 6| |// Copyright © 2019 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |/// Type, that can be updated with newly received `Context` 29| |public protocol ContextUpdatable { 30| | 31| | /// Argument type, that can be used to update a `View`. 32| | associatedtype Context 33| | 34| | /// Updates current type with newly received `context`. 35| | /// 36| | /// - Parameter context: argument used for updating current object. 37| | func update(with context: Context) 38| |} 39| | 40| |/// Object, that searches view hierarchy to find `View`, that can be updated with provided `Context`. 41| |public protocol UpdatableViewFinder { 42| | 43| | /// Type of `View` to search for 44| | associatedtype ViewType: ViewController 45| | 46| | /// Argument type, that can be used to update a `View`. 47| | associatedtype Context 48| | 49| | /// Searches view hierarchy to find `View`, that can be updated using provided `Context`. 50| | /// 51| | /// - Parameter context: argument used for updating current `View`. 52| | /// - Returns: Found `View` to update, or nil. 53| | func findUpdatableView(for context: Context) -> ViewType? 54| |} 55| | 56| |#if canImport(UIKit) 57| | 58| |#if os(iOS) || os(tvOS) 59| | 60| |/// `UpdatableViewFinder` type that searches current view hierarchy to find view, that can be updated using `Context`. Uses `CurrentlyVisibleViewFinder` to search view hierarchy for currently visible view. 61| |open class CurrentlyVisibleUpdatableViewFinder : UpdatableViewFinder { 62| | 63| | /// Object responsible for providing root view of interface hierarchy. 64| | public let rootProvider: RootViewProvider 65| | 66| | /// Creates `CurrentlyVisibleUpdatableViewFinder`. 67| | /// 68| | /// - Parameter rootProvider: Object responsible for providing root view of interface hierarchy. 69| 1| public init(rootProvider: RootViewProvider) { 70| 1| self.rootProvider = rootProvider 71| 1| } 72| | 73| | /// Searches view hierarchy to find `View`, that can be updated using provided `Context`. Uses `CurrentlyVisibleViewFinder` object to find currently visible view. 74| | /// 75| | /// - Parameter context: Argument, that can be used to update a `View`. 76| | /// - Returns: Found `View` to update, or nil. 77| 2| open func findUpdatableView(for context: T.Context) -> T? { 78| 2| return CurrentlyVisibleViewFinder(rootViewProvider: rootProvider).currentlyVisibleView() as? T 79| 2| } 80| |} 81| | 82| |#endif 83| | 84| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/ViewControllerBuilder.swift: 1| |// 2| |// ViewControllerBuilder.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 1/29/19. 6| |// Copyright © 2019 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| |#if os(watchOS) 28| |import WatchKit 29| |/// On watchOS, `WKInterfaceController` is considered to be a ViewController, that can participate in navigation and routing. 30| |public typealias ViewController = WKInterfaceController 31| |#endif 32| | 33| |#if canImport(UIKit) && !os(watchOS) 34| |import UIKit 35| |/// On iOS and tvOS, `UIViewController` is considered to be a ViewController, that can participate in navigation and routing. 36| |public typealias ViewController = UIViewController 37| |#endif 38| | 39| |#if canImport(AppKit) 40| | #if canImport(UIKit) 41| | // Mac Catalyst 42| | #else 43| | import AppKit 44| | /// On macOS, `NSViewController` is considered to be a ViewController, that can participate in navigation and routing. 45| | public typealias ViewController = NSViewController 46| | #endif 47| |#endif 48| | 49| |/// Type, that is capable of building a `ViewController`, given `Context`. 50| |public protocol ViewControllerBuilder { 51| | 52| | /// Type of `View`, that this `ViewControllerBuilder` can build. 53| | associatedtype ViewType: ViewController 54| | 55| | /// Argument type, that `ViewBuilder` needs to build a `ViewController`. 56| | associatedtype Context 57| | 58| | /// Builds a `View` using provided `Context` or throws an error, if building process was not successful 59| | /// 60| | /// - Parameter context: Argument, required to build `ViewController`. 61| | /// - Returns: `View`, that was built using provided `Context` object. 62| | /// - Throws: Build error, if building process was not successful. 63| | func build(with context: Context) throws -> ViewType 64| |} 65| | 66| |@available(*, deprecated, message: "Please use `ViewControllerBuilder` protocol instead.") 67| |/// `ViewBuiilder` protocol was renamed to `ViewControllerBuilder` protocol to avoid clashes with SwiftUI `ViewBuilder`. 68| |public typealias ViewBuilder = ViewControllerBuilder 69| | 70| |extension ViewControllerBuilder where Context == Void { 71| | 72| | /// Builds a `View`, that does not require `Context`, because it's Context is Void. 73| | /// 74| | /// - Returns: `View`, that was built using provided `Context` object. 75| | /// - Throws: Build error, if building process was not successful. 76| 5| public func build() throws -> ViewType { 77| 5| return try build(with: ()) 78| 5| } 79| |} 80| | 81| |/// View, that should not be built. Can be used for transitions, that hide currently visible view and do not require a new view to be built. For example - `PopNavigationTransition`, or `DismissTransition`. 82| |open class NonBuildableView: ViewController {} 83| | 84| |/// Builder, that is incapable of building a view and asserts when asked to do so. Can be used for transitions, that hide currently visible view and do not require a new view to be built. For example - `PopNavigationTransition`, or `DismissTransition`. 85| |open class NonBuilder: ViewControllerBuilder { 86| | 87| | /// Creates `NonBuilder` instance 88| 7| public init() {} 89| | 90| | /// This method is not expected to be called and asserts on attempt to call it. 91| | /// 92| | /// - Parameter context: empty tuple, `NonBuilder` does not require a `Context`. 93| | /// - Returns: `NonBuildableView` instance 94| 0| open func build(with context: ()) -> NonBuildableView { 95| 0| assertionFailure("NonBuilder should not be asked to build a view") 96| 0| return NonBuildableView() 97| 0| } 98| |} 99| | 100| |/// Class, that can be used to build a `View` using provided closure. 101| |open class InstanceViewBuilder: ViewControllerBuilder { 102| | 103| | /// Builds a `View`. 104| | public let closure: () -> T 105| | 106| | /// Creates `InstanceViewBuilder` object with provided closure. 107| | /// 108| | /// - Parameter closure: builds instance of a `View`, when called. 109| 1| public init(_ closure: @escaping () -> T) { 110| 1| self.closure = closure 111| 1| } 112| | 113| | /// Builds instance of a `View`. 114| | /// 115| | /// - Parameter context: empty tuple, this builder does not require arguments. 116| | /// - Returns: built view. 117| 1| open func build(with context: ()) -> T { 118| 1| return closure() 119| 1| } 120| |} 121| | 122| |#if canImport(UIKit) 123| | 124| |#if os(iOS) || os(tvOS) 125| | 126| |extension ViewControllerBuilder { 127| | 128| | /// Creates a route, that uses current builder, creates a view, and pushes it onto current navigation stack. 129| | /// 130| | /// - Parameter isAnimated: should the navigation push be animated. 131| | /// - Returns: Route to view built by current builder, that will be pushed onto current navigation stack. 132| 4| public func pushRoute(isAnimated: Bool = true) -> Route { 133| 4| return Route(builder: self, transition: PushNavigationTransition(isAnimated: isAnimated)) 134| 4| } 135| | 136| | /// Creates a route, that uses current builder, creates a view, and presents it on top of currently visible view. 137| | /// 138| | /// - Parameter isAnimated: should the presentation be animated. 139| | /// - Returns: Route to view built by current builder, that will be presented on top of currently visible view. 140| 3| public func presentRoute(isAnimated: Bool = true) -> Route { 141| 3| return Route(builder: self, transition: PresentationTransition(isAnimated: isAnimated)) 142| 3| } 143| | 144| | /// Creates a route that uses a current builder, creates a view, and replaces current navigation stack with a newly created view. Remaining viewControllers depend on `behavior`. 145| | /// - Parameters: 146| | /// - behavior: Behavior to use when replacing view controllers in navigation stack 147| | /// - isAnimated: should the presentation be animated. 148| 3| public func replace(_ behavior: ReplaceNavigationTransition.Behavior = .replaceLast, isAnimated: Bool = true) -> Route { 149| 3| return Route(builder: self, transition: ReplaceNavigationTransition(behavior, isAnimated: isAnimated)) 150| 3| } 151| | 152| | /// Combines current builder with provided `transition` to create a Route, containing them both. 153| | /// 154| | /// - Parameter transition: transition to be performed when navigating to created route. 155| | /// - Returns: Route, that combines current builder and `transition`. 156| 2| public func with(_ transition: T) -> Route { 157| 2| return Route(builder: self, transition: transition) 158| 2| } 159| |} 160| | 161| |#endif 162| | 163| |#endif /Users/runner/work/Ariadne/Ariadne/Source/Ariadne/ViewTransition.swift: 1| |// 2| |// ViewTransition.swift 3| |// Ariadne 4| |// 5| |// Created by Denys Telezhkin on 4/22/19. 6| |// Copyright © 2019 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import Foundation 27| | 28| |/// Value type, that represents action, that `ViewTransition` object is performing. 29| |/// For example, `PushNavigationTransition` is a .show transition type, where `PopNavigationTransition` is a .hide type. 30| |/// 31| |/// - hide: Transition is hiding already shown view 32| |/// - show: Transition is showing a new, or previously hidden view. 33| |/// - custom: Transition that is custom and is not directly a show or a hide. 34| |public enum TransitionType { 35| | case hide 36| | case show 37| | case custom 38| |} 39| | 40| |/// Type, that is responsible for making a transition between views. 41| |public protocol ViewTransition { 42| | 43| | /// Flag, that shows whether transition should be animated. 44| | var isAnimated: Bool { get } 45| | 46| | /// Type of transition this object is capable of performing. 47| | var transitionType: TransitionType { get } 48| | 49| | /// Object, responsible for finding currently visible view in existing view hierarchy. 50| | var viewFinder: ViewFinder? { get } 51| | 52| | /// Performs transition with provided `view`, using currently `visibleView`, and calls `completion` once transition has been completed. 53| | /// 54| | /// - Parameters: 55| | /// - view: view object that will be used for transition. In case of .hide transition type this parameter is nil. 56| | /// - visibleView: Currently visible view. 57| | /// - completion: closure to be called, once transition is completed. 58| | func perform(with view: ViewController?, 59| | on visibleView: ViewController?, 60| | completion: ((Bool) -> Void)?) 61| |} 62| | 63| |/// Transition, that should not be performed and asserts if asked to do so. Can be used for routes that do not clearly define a transition, for example instances of `ChainableRoute`, which may have multiple chainable transitions embedded. 64| |public struct NonTransition: ViewTransition { 65| | 66| | /// Returns false 67| 1| public var isAnimated: Bool { return false } 68| | 69| | /// Returns .custom. 70| 1| public var transitionType: TransitionType { return .custom } 71| | 72| | /// Returns nil 73| 1| public var viewFinder: ViewFinder? { return nil } 74| | 75| | /// Creates NonTransition object. 76| 1| public init() {} 77| | 78| | /// This method is not expected to be called and asserts when it is. 79| 0| public func perform(with view: ViewController?, on visibleView: ViewController?, completion: ((Bool) -> Void)?) { 80| 0| assertionFailure("NonTransition should not be asked to perform transition") 81| 0| completion?(false) 82| 0| } 83| |} <<<<<< EOF # path=./fastlane/report.xml <<<<<< EOF # path=./Tests.xctest.coverage.txt 1| |// 2| |// AriadneTests.swift 3| |// AriadneTests 4| |// 5| |// Created by Denys Telezhkin on 10/1/18. 6| |// Copyright © 2018 Denys Telezhkin. All rights reserved. 7| |// 8| |// Permission is hereby granted, free of charge, to any person obtaining a copy 9| |// of this software and associated documentation files (the "Software"), to deal 10| |// in the Software without restriction, including without limitation the rights 11| |// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12| |// copies of the Software, and to permit persons to whom the Software is 13| |// furnished to do so, subject to the following conditions: 14| |// 15| |// The above copyright notice and this permission notice shall be included in 16| |// all copies or substantial portions of the Software. 17| |// 18| |// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19| |// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20| |// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21| |// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22| |// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23| |// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24| |// THE SOFTWARE. 25| | 26| |import XCTest 27| |@testable import Ariadne 28| | 29| |//swiftlint:disable type_body_length 30| | 31| |#if canImport(UIKit) 32| |import UIKit 33| | 34| |class XibBuildingFactory: ViewControllerBuilder { 35| 18| func build(with context: ()) throws -> T { 36| 18| return T(nibName: nil, bundle: nil) 37| 18| } 38| |} 39| | 40| |class FooViewController: UIViewController { 41| | var dismissCalled = false 42| | 43| 1| override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) { 44| 1| dismissCalled = true 45| 1| super.dismiss(animated: flag, completion: completion) 46| 1| } 47| |} 48| |class BarViewController: UIViewController { 49| | 50| | var dismissCalled = false 51| | 52| 15| override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) { 53| 15| dismissCalled = true 54| 15| super.dismiss(animated: flag, completion: completion) 55| 15| } 56| |} 57| | 58| |class IntViewController: UIViewController, ContextUpdatable { 59| | 60| | var value: Int = 0 61| | var wasUpdated: Bool = false 62| | var wasCreated: Bool = true 63| | 64| 1| init(value: Int) { 65| 1| self.value = value 66| 1| super.init(nibName: nil, bundle: nil) 67| 1| } 68| | 69| 0| required init?(coder aDecoder: NSCoder) { 70| 0| fatalError("Not expected to be called") 71| 0| } 72| | 73| 1| func update(with context: Int) { 74| 1| value = context 75| 1| wasCreated = false 76| 1| wasUpdated = true 77| 1| } 78| |} 79| | 80| |class IntFactory: ViewControllerBuilder { 81| | 82| | let window: UIWindow 83| | 84| 1| init(window: UIWindow) { 85| 1| self.window = window 86| 1| } 87| | 88| 1| func build(with context: Int) throws -> IntViewController { 89| 1| return IntViewController(value: context) 90| 1| } 91| |} 92| | 93| |class Tests_UIKit: XCTestCase { 94| | 95| 17| var root: ViewController? { 96| 17| return testableWindow?.rootViewController 97| 17| } 98| | 99| 24| var rootNavigation: UINavigationController? { 100| 24| return testableWindow.rootViewController as? UINavigationController 101| 24| } 102| | 103| | // swiftlint:disable:next implicitly_unwrapped_optional 104| | var testableWindow: UIWindow! 105| | lazy var router = Router(rootViewProvider: self.testableWindow) 106| | 107| 24| override func setUp() { 108| 24| super.setUp() 109| 24| testableWindow = UIWindow(frame: UIScreen.main.bounds) 110| 24| testableWindow.isHidden = false 111| 24| testableWindow.rootViewController = BarViewController() 112| 24| } 113| | 114| 1| func testPushTransition() { 115| 1| let pushRoute = XibBuildingFactory().pushRoute() 116| 1| testableWindow?.rootViewController = UINavigationController() 117| 1| router.navigate(to: pushRoute) 118| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 1) 119| 1| } 120| | 121| 1| func testPopTransition() { 122| 1| let exp = expectation(description: "NavigationCompletion") 123| 1| let popRoute = router.popRoute(isAnimated: false) 124| 1| let navigation = UINavigationController() 125| 1| navigation.setViewControllers([FooViewController(), FooViewController()], animated: false) 126| 1| testableWindow?.rootViewController = navigation 127| 1| router.navigate(to: popRoute) { result in 128| 1| if result { 129| 1| XCTAssertEqual((self.root as? UINavigationController)?.viewControllers.count, 1) 130| 1| exp.fulfill() 131| 1| } else { 132| 0| XCTFail("failed to perform transition") 133| 1| } 134| 1| } 135| 1| waitForExpectations(timeout: 0.1) 136| 1| } 137| | 138| 1| func testRootViewTransition() { 139| 1| let switchRootViewRoute = XibBuildingFactory() 140| 1| .with(RootViewTransition(window: testableWindow, isAnimated: false)) 141| 1| router.navigate(to: switchRootViewRoute) 142| 1| 143| 1| XCTAssert(testableWindow.rootViewController is FooViewController) 144| 1| } 145| | 146| 1| func testPresentationTransition() { 147| 1| let presentExpectation = expectation(description: "Presentation expectation") 148| 1| let presentationRoute = XibBuildingFactory().presentRoute(isAnimated: false) 149| 1| DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { 150| 1| XCTAssert(self.root is BarViewController) 151| 1| XCTAssert(self.root?.presentedViewController is FooViewController) 152| 1| presentExpectation.fulfill() 153| 1| } 154| 1| router.navigate(to: presentationRoute) 155| 1| waitForExpectations(timeout: 0.2) 156| 1| } 157| | 158| 1| func testDismissTransition() { 159| 1| let presentExpectation = expectation(description: "Presentation expectation") 160| 1| let presentationRoute = XibBuildingFactory().presentRoute(isAnimated: false) 161| 1| DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { 162| 1| XCTAssert(self.root is BarViewController) 163| 1| XCTAssert(self.root?.presentedViewController is FooViewController) 164| 1| presentExpectation.fulfill() 165| 1| } 166| 1| router.navigate(to: presentationRoute) 167| 1| waitForExpectations(timeout: 0.2) 168| 1| 169| 1| let dismissalRoute = router.dismissRoute(isAnimated: false) 170| 1| 171| 1| let dismissalExpectation = expectation(description: "Dismissal expectation") 172| 1| DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { 173| 1| let presented = self.root?.presentedViewController as? FooViewController 174| 1| XCTAssert(presented?.dismissCalled ?? false) 175| 1| dismissalExpectation.fulfill() 176| 1| } 177| 1| router.navigate(to: dismissalRoute) 178| 1| 179| 1| waitForExpectations(timeout: 0.2) 180| 1| } 181| | 182| 1| func testNavigationControllerEmbedding() { 183| 1| let route = Route(builder: NavigationEmbeddingBuilder(), 184| 1| transition: RootViewTransition(window: testableWindow, isAnimated: false)) 185| 1| let fooBuilder = XibBuildingFactory() 186| 1| router.navigate(to: route, with: [ 187| 1| try? fooBuilder.build(), 188| 1| ].compactMap { $0 }) 189| 1| 190| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 1) 191| 1| XCTAssert(rootNavigation?.viewControllers.first is FooViewController) 192| 1| } 193| | 194| 1| func testSingleNavigationViewEmbedding() { 195| 1| let route = Route(builder: XibBuildingFactory().embeddedInNavigation(), 196| 1| transition: RootViewTransition(window: testableWindow, isAnimated: false)) 197| 1| router.navigate(to: route) 198| 1| 199| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 1) 200| 1| XCTAssert(rootNavigation?.viewControllers.first is FooViewController) 201| 1| } 202| | 203| 1| func testFindingAndUpdatingAlreadyPresentedView() { 204| 1| let route = IntFactory(window: testableWindow) 205| 1| .with(RootViewTransition(window: testableWindow, isAnimated: false)) 206| 1| .asUpdatingRoute(withRootProvider: testableWindow) 207| 1| router.navigate(to: route, with: 1) 208| 1| 209| 1| XCTAssertEqual((root as? IntViewController)?.value, 1) 210| 1| XCTAssertFalse((root as? IntViewController)?.wasUpdated ?? true) 211| 1| XCTAssertTrue((root as? IntViewController)?.wasCreated ?? false) 212| 1| 213| 1| router.navigate(to: route, with: 2) 214| 1| 215| 1| XCTAssertEqual((root as? IntViewController)?.value, 2) 216| 1| XCTAssertTrue((root as? IntViewController)?.wasUpdated ?? false) 217| 1| XCTAssertFalse((root as? IntViewController)?.wasCreated ?? true) 218| 1| } 219| | 220| 1| func testViewCanBeConfiguredPriorToKickingOffTransition() { 221| 1| testableWindow.rootViewController = UINavigationController() 222| 1| let route = XibBuildingFactory().pushRoute() 223| 1| route.prepareForShowTransition = { newView, transition, oldView in 224| 1| newView.title = "Foo" 225| 1| oldView?.title = "Bar" 226| 1| } 227| 1| XCTAssertNil(root?.title) 228| 1| 229| 1| router.navigate(to: route) 230| 1| 231| 1| XCTAssertEqual(root?.title, "Foo") 232| 1| XCTAssertEqual(rootNavigation?.viewControllers.first?.title, "Foo") 233| 1| } 234| | 235| 1| func testViewCanBeConfiguredPriorToHideTransition() { 236| 1| let exp = expectation(description: "NavigationCompletion") 237| 1| let popRoute = router.popRoute(isAnimated: false) 238| 1| popRoute.prepareForHideTransition = { view, transition in 239| 1| view.title = "Foo" 240| 1| } 241| 1| let navigation = UINavigationController() 242| 1| navigation.setViewControllers([FooViewController(), FooViewController()], animated: false) 243| 1| let foo = navigation.viewControllers.last 244| 1| testableWindow?.rootViewController = navigation 245| 1| router.navigate(to: popRoute) { result in 246| 1| if result { 247| 1| XCTAssertEqual((self.root as? UINavigationController)?.viewControllers.count, 1) 248| 1| XCTAssertEqual(foo?.title, "Foo") 249| 1| exp.fulfill() 250| 1| } else { 251| 0| XCTFail("failed to perform transition") 252| 1| } 253| 1| } 254| 1| waitForExpectations(timeout: 0.1) 255| 1| } 256| | 257| 1| func testTabBarIsBuildable() throws { 258| 1| let builder = TabBarEmbeddingBuilder() 259| 1| let tabBar = try builder.build(with: [ 260| 1| XibBuildingFactory().build(), 261| 1| XibBuildingFactory().build(), 262| 1| ]) 263| 1| 264| 1| XCTAssertEqual(tabBar.viewControllers?.count, 2) 265| 1| XCTAssert(tabBar.viewControllers?.first is FooViewController) 266| 1| XCTAssert(tabBar.viewControllers?.last is BarViewController) 267| 1| } 268| | 269| 1| func testSplitViewIsBuildable() throws { 270| 1| let builder = SplitViewBuilder(masterBuilder: XibBuildingFactory(), 271| 1| detailBuilder: XibBuildingFactory()) 272| 1| let split = try builder.build(with: ((), ())) 273| 1| 274| 1| XCTAssertEqual(split.viewControllers.count, 2) 275| 1| XCTAssert(split.viewControllers.first is FooViewController) 276| 1| XCTAssert(split.viewControllers.last is BarViewController) 277| 1| } 278| | 279| 1| func testCompositionOfNavigationAndTabBarBuilding() throws { 280| 1| let builder = TabBarEmbeddingBuilder() 281| 1| let tabBar = try builder.build(with: [ 282| 1| XibBuildingFactory().embeddedInNavigation().build(), 283| 1| XibBuildingFactory().embeddedInNavigation().build(), 284| 1| ]) 285| 1| 286| 1| XCTAssert((tabBar.viewControllers?.first as? UINavigationController)?.viewControllers.first is FooViewController) 287| 1| XCTAssert((tabBar.viewControllers?.last as? UINavigationController)?.viewControllers.first is BarViewController) 288| 1| } 289| | 290| 1| func testPopToRootNavigationRoute() throws { 291| 1| let popRoute = router.popToRootRoute(isAnimated: false) 292| 1| let navigation = UINavigationController(rootViewController: FooViewController()) 293| 1| navigation.pushViewController(BarViewController(), animated: false) 294| 1| navigation.pushViewController(BarViewController(), animated: false) 295| 1| testableWindow.rootViewController = navigation 296| 1| 297| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 3) 298| 1| 299| 1| router.navigate(to: popRoute) 300| 1| 301| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 1) 302| 1| XCTAssert(rootNavigation?.viewControllers.first is FooViewController) 303| 1| } 304| | 305| 1| func testPopToFirstInstanceOfRoute() { 306| 1| let navigation = UINavigationController(rootViewController: FooViewController()) 307| 1| navigation.pushViewController(BarViewController(), animated: false) 308| 1| navigation.pushViewController(BarViewController(), animated: false) 309| 1| testableWindow.rootViewController = navigation 310| 1| 311| 1| router.navigate(to: Router.popToFirstInstanceOf(BarViewController.self, isAnimated: false)) 312| 1| 313| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 2) 314| 1| } 315| | 316| 1| func testPopToLastInstanceOfRoute() { 317| 1| let navigation = UINavigationController(rootViewController: FooViewController()) 318| 1| navigation.pushViewController(BarViewController(), animated: false) 319| 1| navigation.pushViewController(BarViewController(), animated: false) 320| 1| testableWindow.rootViewController = navigation 321| 1| 322| 1| router.navigate(to: Router.popToLastInstanceOf(BarViewController.self, isAnimated: false)) 323| 1| 324| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 3) 325| 1| 326| 1| router.navigate(to: Router.popToLastInstanceOf(FooViewController.self, isAnimated: false)) 327| 1| 328| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 1) 329| 1| } 330| | 331| 1| func testReplaceViewControllersAllBehavior() { 332| 1| let navigation = UINavigationController(rootViewController: FooViewController()) 333| 1| navigation.pushViewController(BarViewController(), animated: false) 334| 1| navigation.pushViewController(BarViewController(), animated: false) 335| 1| testableWindow.rootViewController = navigation 336| 1| 337| 1| router.navigate(to: XibBuildingFactory().replace(.replaceAll, isAnimated: false)) 338| 1| 339| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 1) 340| 1| XCTAssert(rootNavigation?.viewControllers.first is BarViewController) 341| 1| } 342| | 343| 1| func testReplaceViewControllersLastBehavior() { 344| 1| let navigation = UINavigationController(rootViewController: FooViewController()) 345| 1| navigation.pushViewController(BarViewController(), animated: false) 346| 1| navigation.pushViewController(FooViewController(), animated: false) 347| 1| testableWindow.rootViewController = navigation 348| 1| 349| 1| router.navigate(to: XibBuildingFactory().replace(.replaceLast, isAnimated: false)) 350| 1| 351| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 3) 352| 1| XCTAssert(rootNavigation?.viewControllers.last is BarViewController) 353| 1| XCTAssert(rootNavigation?.viewControllers[1] is BarViewController) 354| 1| XCTAssert(rootNavigation?.viewControllers.first is FooViewController) 355| 1| } 356| | 357| 1| func testReplaceViewControllersCustomBehavior() { 358| 1| let navigation = UINavigationController(rootViewController: FooViewController()) 359| 1| navigation.pushViewController(BarViewController(), animated: false) 360| 1| navigation.pushViewController(FooViewController(), animated: false) 361| 1| testableWindow.rootViewController = navigation 362| 1| 363| 1| router.navigate(to: XibBuildingFactory().replace(.custom(keepControllers: { [$0.first].compactMap { $0 } }), isAnimated: false)) 364| 1| 365| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 2) 366| 1| XCTAssert(rootNavigation?.viewControllers.last is BarViewController) 367| 1| XCTAssert(rootNavigation?.viewControllers.first is FooViewController) 368| 1| } 369| | 370| 1| func testPrebuiltViewCanBePresented() { 371| 1| let presentExpectation = expectation(description: "Presentation expectation") 372| 1| let presentationRoute = InstanceViewBuilder { UINavigationController() }.presentRoute(isAnimated: false) 373| 1| DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { 374| 1| XCTAssert(self.root is BarViewController) 375| 1| XCTAssert(self.root?.presentedViewController is UINavigationController) 376| 1| presentExpectation.fulfill() 377| 1| } 378| 1| router.navigate(to: presentationRoute) 379| 1| waitForExpectations(timeout: 0.2) 380| 1| } 381| | 382| 1| func testRoutesCanBeChainable() { 383| 1| let pushRoute = XibBuildingFactory() 384| 1| .pushRoute(isAnimated: false) 385| 1| .chained(with: XibBuildingFactory().pushRoute(isAnimated: false)) 386| 1| testableWindow?.rootViewController = UINavigationController() 387| 1| router.navigate(to: pushRoute) 388| 1| XCTAssertEqual(rootNavigation?.viewControllers.count, 2) 389| 1| XCTAssert(rootNavigation?.viewControllers.first is FooViewController) 390| 1| XCTAssert(rootNavigation?.viewControllers.last is BarViewController) 391| 1| } 392| | 393| 1| func testSplitViewMasterViewIsFindable() { 394| 1| guard UIDevice.current.userInterfaceIdiom == .pad else { 395| 1| return 396| 1| } 397| 0| let split = UISplitViewController() 398| 0| split.viewControllers = [UINavigationController(rootViewController: .init()), UIViewController()] 399| 0| 400| 0| let tabBarContainer = UITabBarController() 401| 0| tabBarContainer.viewControllers = [split] 402| 0| 403| 0| let transition = PushNavigationTransition(finder: 404| 0| SplitViewCurrentlyVisibleViewFinder(kind: .master, rootViewProvider: router.rootViewProvider), 405| 0| isAnimated: false) 406| 0| let pushRoute = XibBuildingFactory().with(transition) 407| 0| 408| 0| testableWindow.rootViewController = tabBarContainer 409| 0| router.navigate(to: pushRoute) 410| 0| let navigation = split.viewControllers.first as? UINavigationController 411| 0| XCTAssertNotNil(navigation) 412| 0| XCTAssertEqual(navigation?.viewControllers.count, 2) 413| 0| XCTAssert(navigation?.viewControllers.last is FooViewController) 414| 0| } 415| | 416| 1| func testSplitViewDetailViewIsFindable() { 417| 1| guard UIDevice.current.userInterfaceIdiom == .pad else { 418| 1| // Note: UISplitViewController.viewControllers property returns one view controller on iPhone, and this unit test fails. It's guarded to run on iPad only. 419| 1| return 420| 1| } 421| 0| let split = UISplitViewController() 422| 0| split.viewControllers = [UIViewController(), UINavigationController()] 423| 0| 424| 0| let tabBarContainer = UITabBarController() 425| 0| tabBarContainer.viewControllers = [split] 426| 0| 427| 0| let transition = PushNavigationTransition(finder: 428| 0| SplitViewCurrentlyVisibleViewFinder(kind: .detail, rootViewProvider: router.rootViewProvider), 429| 0| isAnimated: false) 430| 0| let pushRoute = XibBuildingFactory().with(transition) 431| 0| 432| 0| testableWindow.rootViewController = tabBarContainer 433| 0| router.navigate(to: pushRoute) 434| 0| let navigation = split.viewControllers.last as? UINavigationController 435| 0| XCTAssertNotNil(navigation) 436| 0| XCTAssertEqual(navigation?.viewControllers.count, 1) 437| 0| XCTAssert(navigation?.viewControllers.last is FooViewController) 438| 0| } 439| | 440| 1| func testNonTransition() { 441| 1| let sut = NonTransition() 442| 1| XCTAssertEqual(sut.isAnimated, false) 443| 1| XCTAssertEqual(sut.transitionType, .custom) 444| 1| XCTAssertNil(sut.viewFinder) 445| 1| } 446| |} 447| | 448| |#endif <<<<<< EOF # path=fixes ./Source/Ariadne/AnyBuilder.swift:25,33,36,43,44,49,50,55,56,61,62,63,68,69 ./Source/Ariadne/Ariadne.swift:25,32,38,39,44,47,48,52,55,58,61,64,74,75,78,81,84,86,93,94,96,105,106,108,110,117,118,125,126,133,134,141,142,149,150,157,158,165,166,173,174,181,182,189,190,192,202,204,205,214,215 ./Source/Ariadne/ViewControllerBuilder.swift:25,32,38,48,51,54,57,64,65,69,71,78,79,80,83,86,89,97,98,99,102,105,111,112,119,120,121,123,125,127,134,135,142,143,150,151,158,159,160,162 ./Source/Ariadne/NavigationTransition.swift:25,27,30,32,35,38,49,52,53,54,57,64,65,68,71,80,81,92,102,104,105,106,109,116,117,120,123,132,133,143,155,157,158,159,163,166,176,177,178,180 ./Source/Ariadne/TabBarViewBuilder.swift:25,27,30,32,35,38,40,44,45,54,55,56,58 ./Source/Ariadne/SplitViewBuilder.swift:25,27,30,32,35,38,41,44,53,54,66,67,68,70 ./Source/Ariadne/ViewTransition.swift:25,27,38,39,42,45,48,51,61,62,65,68,71,74,77,82,83 ./Source/Ariadne/PresentationTransition.swift:25,27,30,32,35,38,50,51,52,53,56,59,70,71,72,73,75 ./Source/Ariadne/CurrentlyVisibleViewFinder.swift:25,29,32,35,38,44,45,52,53,60,69,71,72,73,81,86,91,92,95,103,104,112,115,121,122,123,124,126 ./Source/Ariadne/NavigationViewBuilder.swift:25,27,30,32,35,38,40,44,45,54,55,56,59,62,65,68,74,75,86,87,88,90,98,99,100,102 ./Source/Ariadne/RootViewTransition.swift:25,27,30,33,36,39,42,45,48,51,60,61,78,82,83,84,85 ./Source/Ariadne/BaseTransition.swift:25,27,30,33,36,45,46,48,57,60,61,62,64 ./Source/Ariadne/UpdatableViewFinder.swift:25,27,30,33,38,39,42,45,48,54,55,57,59,62,65,71,72,79,80,81,83 ./Source/Ariadne/Route.swift:25,27,30,33,36,39,42,45,54,55,68,69,77,83,84,85,86,93,96,106,107,120,123,124,125,127,129,138,139,140,142,145,148,151,154,157,161,162,166,167,178,179,191,195,196,197,198,200,209,210,219,220 ./Source/Tests/TestsUIKit.swift:25,28,30,33,37,38,39,42,46,47,49,51,55,56,57,59,63,67,68,71,72,77,78,79,81,83,86,87,90,91,92,94,97,98,101,102,106,112,113,119,120,133,134,136,137,142,144,145,153,156,157,165,168,170,176,178,180,181,189,192,193,198,201,202,208,212,214,218,219,226,228,230,233,234,240,252,253,255,256,263,267,268,273,277,278,285,288,289,296,298,300,303,304,310,312,314,315,321,323,325,327,329,330,336,338,341,342,348,350,355,356,362,364,368,369,377,380,381,391,392,396,399,402,407,414,415,420,423,426,431,438,439,445,446,447 ./Source/Tests/TestsAppKit.swift:25,30,32,35,36,39,40,44,45,50,51,52,53 ./iOS Example/Generated/Storyboards.swift:3,7,10,12,17,19,21,24,26,29,31,32,34,36,39,40,45,46,47,51,56,58,59,60,63,67,69,70,71 ./iOS Example/ExampleViewController.swift:25,28,33,34,38,44,45,46,49,50,53,54 ./iOS Example/ExamplesTableViewController.swift:25,28,37,47,48,49,50,52,54,56,59,60,62,65,67,68,69,75,80,82,83,85,88,89,92,93,98,101,102,106,116,117,118,121,122,130,131,137,139,140,146,148,149,155,158,160,161,167,169,170,175,179,181,182,183,187,188,191,192,193,198,199,200,202,210,211,214,215,216,218,221,222,229,237,238,239 ./iOS Example/AppDelegate.swift:25,27,30,32,39,40,41,42 ./iOS Example/Buildable.swift:25,29,32,34,35,37,39,42,43,48,49,50,54,55 ./Package.swift:2,4 ./vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/fbuffer/fbuffer.h:1,4,6,10,14,24,33,40,45,52,54,59,72,74,81,82,84,87,88,90,92,93,95,97,101,102,104,108,109,110,112,117,118,119,122,125,127,129,131,133,137,138,141,143,146,147,148,150,154,160,161,163,167,168,170,173,177,178,180,185 ./vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/parser/parser.h:3,5,9,15,17,19,23,29,47,54,57,77,81,90 ./vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/parser/parser.c:5,11,14,18,20,27,29,46,48,64,65,67,88,90,91,95,101,102,104,105,106,111,113,114,116,117,119,123,126,127,129,130,132,134,135,137,139,143,161,167,173,185,196,212,238,247,258,260,261,274,287,298,314,330,346,372,388,404,420,429,456,459,460,462,470,475,476,477,481,482,483,484,485,490,492,493,495,496,498,500,501,503,505,506,508,510,514,532,544,547,551,560,561,567,571,575,579,583,587,592,593,597,602,603,607,609,613,615,619,621,634,645,661,677,693,835,865,868,869,871,876,877,878,879,884,886,887,889,890,892,894,895,897,899,900,903,905,909,914,954,959,962,963,965,975,976,977,978,983,985,986,988,989,991,995,998,999,1001,1002,1004,1006,1007,1009,1011,1012,1015,1017,1021,1026,1050,1066,1090,1108,1123,1127,1137,1140,1141,1143,1158,1159,1163,1164,1165,1166,1167,1172,1174,1175,1177,1178,1180,1183,1186,1188,1189,1191,1193,1194,1196,1198,1202,1228,1237,1247,1249,1250,1263,1284,1298,1314,1330,1346,1372,1388,1397,1414,1417,1418,1420,1426,1427,1428,1430,1434,1478,1487,1488,1491,1496,1501,1502,1505,1506,1507,1512,1514,1515,1517,1518,1521,1527,1529,1530,1532,1535,1537,1539,1541,1542,1545,1547,1551,1566,1572,1580,1581,1652,1660,1663,1664,1666,1675,1676,1677,1682,1687,1688,1689,1701,1703,1709,1713,1716,1717,1746,1749,1752,1773,1776,1782,1788,1794,1799,1805,1811,1817,1823,1830,1832,1842,1849,1850,1851,1856,1858,1859,1861,1862,1870,1875,1876,1878,1880,1881,1885,1887,1891,1909,1921,1924,1935,1946,1962,1978,1994,2003,2014,2017,2018,2020,2026,2027,2028,2030,2038,2039,2041,2045,2046,2048,2051,2052,2063,2065,2070,2071,2079,2082,2083,2085,2099,2102,2105,2108,2129,2130 ./vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/generator/generator.c:3,8,20,26,48,66,74,86,95,103,104,106,109,110,113,115,120,121,126,129,130,134,138,145,149,160,162,186,207,208,209,223,224,226,227,233,241,272,284,291,295,296,298,301,302,307,309,310,317,318,330,335,340,345,350,355,360,365,370,375,380,385,390,395,400,410,412,413,424,425,433,435,436,444,446,447,454,456,458,465,467,468,477,478,487,489,490,500,507,508,516,520,521,529,534,535,542,544,545,552,554,555,562,564,565,574,581,582,584,595,596,598,610,611,622,624,628,629,637,650,658,666,674,682,692,693,703,704,713,714,720,721,723,731,732,733,741,756,757,764,770,771,772,779,781,788,790,791,798,801,806,818,822,826,827,828,836,841,844,845,847,856,860,862,868,875,876,877,879,880,882,895,903,904,906,913,914,915,917,918,921,925,927,929,934,940,942,943,945,947,948,950,952,953,955,957,958,960,962,963,965,968,969,972,977,980,991,992,994,995,997,1026,1027,1028,1030,1034,1039,1045,1049,1054,1058,1059,1061,1066,1067,1076,1081,1082,1104,1112,1113,1121,1123,1128,1139,1140,1149,1157,1158,1159,1166,1169,1170,1177,1187,1192,1194,1195,1203,1206,1207,1215,1225,1230,1232,1233,1240,1243,1244,1251,1261,1266,1268,1269,1277,1280,1281,1289,1298,1303,1305,1306,1313,1316,1317,1324,1333,1338,1340,1341,1342,1350,1353,1354,1362,1365,1366,1374,1378,1379,1387,1390,1391,1399,1402,1403,1410,1413,1414,1422,1427,1428,1435,1438,1439,1447,1454,1456,1457,1462,1465,1469,1474,1506,1538,1569 ./vendor/bundle/ruby/2.7.0/gems/json-2.3.1/ext/json/ext/generator/generator.h:3,6,8,14,18,22,24,26,28,32,38,43,45,48,55,57,78,81,85,90,97,157,161,170 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/include/sass.h:3,5,13,15 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/include/sass/version.h:3,7,11 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/include/sass/context.h:3,9,13,14,17,23,30,36,40,44,49,54,58,62,69,70,89,110,111,124,131,134,144,155,159,164,169,171,173 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/include/sass/values.h:3,7,11,12,15,28,37,45,57,62,65,68,71,75,87,93,99,103,113,124,132,136,140,142,144 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/include/sass/functions.h:3,7,11,12,21,35,42,49,55,56,60,65,68,76,81,89,97,111,116,117,118,124,128,133,134,136,138 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/include/sass/base.h:3,6,19,25,28,37,39,48,50,54,56,61,62,74,81,85,89,92,94,96 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/include/sass2scss.h:6,9,11,20,22,26,28,30,36,42,45,46,52,59,62,66,86,89,90,92,96,102,109,112,115,117,119 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/contrib/plugin.cpp:5,8,11,12,14,22,23,25,35,36,38,47,48,50,60 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/units.cpp:7,9,14,16,25,27,34,36,42,48,54,56,58,65,67,69,71,78,80,82,84,91,93,95,120,121,123,149,150,151,153,177,178,181,192,193,196,217,220,221,223,249,257,259,260,262,265,267,270,272,274,275,277,278,281,284,296,297,309,310,313,316,317,319,320,323,326,332,337,340,349,350,351,355,363,364,367,368,369,371,378,383,385,386,388,391,392,394,397,398,401,402,408,411,414,417,420,423,425,429,438,446,450,451,454,457,460,463,467,476,484,488,489,493,496,499,502,503,505,506,507 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/dart_helpers.hpp:3,8,10,16,21,23,24,38,40,41,46,50,52,54,64,65,67,69,79,80,82,83,89,93,98,100,108,109,112,115,123,127,140,141,142,143,148,153,157,165,166,171,174,175,176,177,180,185,189,191,193,196,197,198 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_miscs.cpp:6,8,10,14,17,20,21,24,26,29,32,33,34,37,39,42,45,46,47,50,54,55,57,60,63,64,65,68,70,73,76,77,78,81,83,92,93,96,100,109,110,112,136,137,139,144,145,149,152,154,155,158,167,168,172,175,187,199,200,201,204,207,209,210,213,217,218,221,231,232,233,236,237,240,241,242,243,244 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/stylesheet.cpp:4,6,8,13,14,15,19,20,21,22 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/extension.cpp:4,8,10,15,21,22,28,29,31,33,35,37,38,39,42,43 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ordered_map.hpp:3,5,18,20,24,27,31,33,35,38,39,40,46,47,53,54,57,58,63,65,66,69,70,79,80,82,83,86,90,92,93,98,107,109,110,111 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_sel_super.cpp:5,7,9,15,24,33,40,47,48,49,50,52,54,63,67,75,81,82,83,85,86,88,90,99,103,104,106,108,114,118,119,121,123,129,133,134,136,138,146,151,153,155,162,167,168,172,173,176,177,179,181,197,198,201,210,211,212,217,221,222,223,224,233,234,235,236,240,242,248,249,250,257,258,260,261,263,264,266,281,289,290,293,294,302,303,304,306,308,321,326,328,337,338,342,345,348,351,356,357,362,365,366,369,376,382,383,385,386,403,404,405,408,409,412,415,417,420,426,427,430,431,437,438,440,441,445,447,450,451,452,454,455,457,469,481,483,492,498,499,501,503,512,518,519,521,523,528,530,532,534,535,538,539 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/MurmurHash2.hpp:7,10,13,15,17,21,23,25,27,29,31,33,36,39,41,43,45,47,49,51,55,58,61,62,64,66,77,80,84,86,87,89,91 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/to_value.hpp:3,7,9,11,13,15,17,23,37,41,43,44,45 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/prelexer.hpp:3,6,10,14,29,39,43,55,56,57,64,69,74,77,80,83,86,87,92,93,103,104,107,108,110,111,115,123,124,134,135,147,148,149,156,161,163,164,172,175,188,195,198,217,227,231,249,251,255,260,263,265,267,269,273,275,279,283,344,348,356,360,372,376,377,382,385,391,396,405,407,417,419,435,438,439,441,442,445,451,455,457,458,461,467,471,472,475,479,480,481,482,483 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/source.cpp:6,8,11,12,13,23,25,26,30,31,33,35,36,38,40,41,43,45,46,48,50,51,57,59,61,62,64,66,67,68,69 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/util.cpp:10,16,18,20,28,36,37,40,55,56,57,59,60,64,65,69,74,75,77,78,84,90,93,94,97,98,101,116,118,124,125,129,152,153,159,160,163,165,166,172,188,191,196,197,200,201,203,219,220,222,223,225,241,246,248,251,252,258,269,271,272,274,275,278,280,284,287,290,294,296,300,302,307,314,317,318,319,321,323,325,326,327,328,329,331,333,334,335,336,337,339,340,341,343,344,348,351,357,360,362,368,371,373,376,380,385,389,391,396,403,406,407,408,409,410,422,425,426,427,431,432,433,435,436,439,442,446,451,456,457,459,464,465,480,487,488,489,490,493,494,496,501,502,504,506,507,509,528,529,531,535,536,538,541,544,545,558,563,567,570,571,574,575,576,578,579,581,583,584,586,588,589,591,596,597,601,602,604,611,617,618,619,620,623,624,625,627,628,630,642,643,647,648,652,653,657,658,662,663,664,666,667,669,673,677,681,685,686,691,695,696,700,701,705,706,710,711,715,716,717,718,720,721,722,723 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/utf8_string.hpp:3,7,10,15,19,22,25,28,34,35,36,37 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/source_data.hpp:3,6,8,10,23,26,29,30,31 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_selectors.cpp:4,8,10,13,18,23,24,26,28,29,32,45,47,49,50,54,56,57,59,67,68,71,74,81,82,89,91,94,95,97,103,105,106,109,110,113,115,116,119,121,122,124,126,127,129,131,132,134,136,137,140,142,143,145,147,148,150,153,155,157,158,160,165,167,172,173,176,184,186,189,190,193,200,202,205,206,209,216,218,220,221,224,231,233,235,236,239,249,251,256,258,259,261,263,264,267,284,294,296,297,299,304,306,307,309,313,314,316,320,321,323,327,328,330,333,334,338,339,342,353,355,358,360,361,363,366,368,369,371,374,375,376,378,380,381,383,387,389,390,393,399,400,406,407,408,410,413,414,415,417,421,423,424,426,431,432,434,435,437,442,443,445,450,452,453,457,459,460,462,465,467,468,471,475,476,477,482,484,485,486,488,490,491,494,498,499,502,506,507,512,514,515,516,518,520,521,524,530,531,538,540,544,546,547,549,557,559,560,562,566,568,569,571,574,575,576,578,583,584,586,589,591,592,594,598,599,602,606,608,609,613,615,616,619,623,625,626,630,632,633,639,640,641,644,646,650,651,654,655,658,661,664,667,671,680,681,688,697,700,701,704,705,710,715,716,719,722,729,736,741,742,743,754,762,765,773,774,775,781,782,788,789,790,794,796,800,802,803,805,809,811,812,814,818,820,821,823,827,829,830,832,836,838,839,841,845,847,848,852,855,856,859,866,867,868,869,870,873,876,884,899,902,903,906,907,911,917,924,925,926,927,928,937,938,940,941,942,944,946,947,949,951,952,955,956,958,960,963,964,966,971,972,974,975,980,986,987,988,991,993,1006,1008,1009,1010,1012,1013,1014,1016,1024,1026,1027,1030,1042,1043 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/backtrace.hpp:3,8,10,12,15,20,22,24,26,27,28 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/environment.cpp:4,6,22,28,33,35,36,43,45,46,50,51,55,58,62,63,67,70,72,75,77,78,82,85,89,91,92,96,100,103,105,108,110,111,115,118,123,125,127,128,134,139,141,142,148,156,159,161,165,173,176,178,179,184,189,191,193,194,199,206,208,212,217,219,221,222,226,231,233,235,240,250,251,253,258,259,260 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/parser.hpp:3,7,10,17,26,35,37,40,42,58,60,63,65,70,73,75,76,80,82,86,88,91,102,103,108,109,110,115,118,119,124,125,129,132,135,136,137,146,147,149,154,158,161,164,171,172,175,178,181,184,187,188,189,195,215,218,219,223,226,227,229,231,233,242,266,321,323,330,334,336,340,343,346,347,350,366,367,370,371,373,374,385,388,390,392,393 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/json.hpp:4,11,14,23,26,29,38,40,42,46,49,54,57,60,68,70,76,78,80,83,85,90,92,99,104,106,108,116 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/util_string.hpp:3,6,9,19,25,32,34,37,38,41,42,45,46,48,51,52,55,56,60,61,63,67,68,70,71,72 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/error_handling.hpp:3,7,16,18,20,22,27,41,47,56,66,77,86,92,98,108,118,127,136,150,160,170,181,187,198,204,210,216,222,223,224,228,233,236,237,238 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass_context.hpp:3,7,10,13,16,19,22,25,33,39,45,50,55,58,61,64,67,69,70,73,74,77,80,83,94,97,99,102,105,107,110,114,116,128 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/memory/memory_pool.hpp:3,9,11,13,19,25,31,36,45,47,50,53,56,62,67,68,70,78,79,80,86,89,90,91,94,95,103,107,114,119,132,133,134,141,142,147,150,153,154,156,158,159,163,166,173,177,178,179,181,183,184,185 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/memory/allocator.hpp:3,7,13,15,17,19,21,23,25,28,30,40,43,46,49,54,57,59,60,63,65,66,69,71,72,76,79,82,83,86,89,90,92,96,98,99,103,105,106,108,115,116,117,118,120,127,132,134,135,137 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/memory/config.hpp:3,6,10,15,19 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/memory/shared_ptr.cpp:4,7,11,13,25,26,27,28,31,33 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/memory/allocator.cpp:4,10,12,14,19,21,24,27,28,30,31,37,42,43,44,45,47,48 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/memory/shared_ptr.hpp:3,5,13,17,19,22,27,29,32,35,38,40,43,46,49,51,68,75,76,78,79,86,92,94,98,101,103,118,127,131,132,140,142,143,146,147,154,157,158,163,177,182,183,191,193,196,199,203,207,212,213,218,219,223,224,233,235,238,242,243,247,248,253,254,258,259,263,264,268,269,273,274,278,279,283,284,288,289,293,294,298,299,303,304,308,309,313,314,318,319,323,324,328,329,330,331 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_helpers.hpp:3,10,12,15,18,22,25,31,35,39,40,45,47,51,52,57,59,63,65,70,71,77,79,84,85,91,93,98,99,105,107,112,113,119,121,128,129,135,137,142,143,149,151,155,162,163,169,171,177,183,185,189,196,200,201,206,207,211,213,214,222,224,225,232,237,238,245,250,252,257,265,267,272,274,276,281,284,286,289,290,291 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/eval.hpp:3,8,13,15,18,20,27,31,34,41,53,78,86,93,97,102,105,107,108,109 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_sel_unify.cpp:4,6,8,18,19,22,29,34,35,36,39,40,41,47,48,50,52,53,55,62,68,70,72,83,84,92,93,97,98,99,101,108,110,111,114,116,117,119,124,128,134,136,139,141,142,147,151,152,154,155,160,161,164,165,169,170,171,173,183,188,189,191,192,195,196,198,199,201,210,215,217,222,224,228,231,233,239,247,249,251,256,265,266,267,269,271,274,275 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast.cpp:4,6,8,10,29,30,31,50,51,52,55,57,59,60,62,70,71,73,82,83,85,87,88,91,101,103,105,106,108,110,111,113,115,116,119,130,132,135,137,138,140,143,145,146,149,156,158,160,161,164,174,179,181,182,185,194,196,198,199,202,211,214,224,226,232,238,239,242,249,252,264,266,269,270,273,284,287,300,303,306,316,319,326,329,336,339,346,349,358,360,362,363,366,375,377,379,380,383,396,399,406,409,416,419,426,429,435,437,444,447,460,477,495,512,515,525,528,537,540,548,556,559,576,577,579,581,586,588,590,592,594,600,601,604,607,610,611,619,622,623,624,626,629,630,632,634,638,640,642,644,645,647,651,653,654,657,672,674,677,679,680,682,687,688,689,691,692,694,699,700,701,703,704,706,710,712,716,719,721,725,727,731,734,735,736,737,740,752,755,766,769,778,780,784,786,789,792,794,796,799,802,804,805,806,809,816,819,820,823,825,826,828,830,834,835,837,839,841,843,845,847,849,851,853,854,857,867,870,883,885,889,891,895,897,901,904,905,906,907,910,913,949,952,953 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/settings.hpp:3,5,10,15,18 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/emitter.cpp:7,9,27,30,32,33,35,37,38,40,43,46,49,58,60,63,70,71,74,78,84,89,93,94,95,98,101,102,105,110,112,113,115,117,118,121,128,129,132,133,136,141,149,150,151,154,159,160,161,165,173,176,177,179,181,191,192,194,201,204,205,206,208,212,213,215,219,220,222,224,225,227,233,234,235,236,237,239,244,245,246,248,254,255,256,258,263,264,265,267,276,278,288,295,296,297 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/position.hpp:3,8,10,11,13,19,23,26,33,36,39,43,45,47,53,63,66,69,71,78,87,95,96,99,102,104,106,108,112,115,116,119,120,123,124,127,128,131,132,137,138,142,144,145,146 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_lists.hpp:3,5,7,9,19,29,30,31,32,33 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/values.hpp:3,5,7,10,11 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/extender.cpp:5,9,11,26,41,53,55,57,66,68,70,80,82,86,87,89,94,96,98,101,102,104,108,109,110,112,113,114,115,116,118,119,121,128,132,134,136,144,156,157,159,161,174,175,179,183,184,185,187,189,191,192,193,196,197,199,200,202,210,221,222,223,224,225,226,227,229,239,244,250,252,261,268,275,276,277,280,299,300,303,305,308,310,312,318,326,327,329,338,339,340,341,342,345,346,347,349,352,353,367,368,369,372,373,374,376,385,397,398,399,401,424,425,427,439,442,443,445,454,455,461,470,471,472,475,477,478,479,487,489,490,491,493,494,496,504,505,516,517,522,523,526,527,528,529,532,533,537,538,540,550,551,569,583,584,592,593,595,596,603,604,605,606,610,611,613,617,623,624,626,628,634,635,637,643,645,647,648,649,650,651,653,655,662,667,669,677,684,686,698,699,703,705,708,709,713,720,721,728,730,731,734,735,736,739,740,744,748,749,750,751,759,761,762,787,791,806,807,809,813,819,820,823,824,830,834,835,836,837,844,845,851,852,853,854,856,858,867,868,872,875,878,879,887,889,899,911,914,915,916,921,923,931,932,940,942,952,960,966,967,969,970,972,981,987,994,1002,1003,1004,1005,1006,1007,1010,1021,1023,1024,1025,1029,1030,1032,1040,1046,1047,1049,1061,1062,1069,1074,1078,1089,1090,1094,1095,1104,1105,1106,1107,1113,1114,1120,1121,1124,1125,1126,1128,1129,1131,1136,1140,1142,1147,1152,1154,1156,1164,1167,1169,1174,1176,1178,1183,1185,1187,1188 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_sel_weave.cpp:4,8,10,15,18,20,26,30,32,34,43,44,51,52,53,54,56,64,65,66,67,68,69,71,72,74,82,83,87,88,92,96,97,101,105,106,110,111,118,120,127,129,136,138,140,147,149,151,166,171,172,177,178,182,189,191,203,205,207,215,224,227,231,232,235,237,239,250,251,257,258,264,265,269,273,277,278,280,281,283,294,295,299,300,301,307,308,314,315,319,326,329,332,334,335,341,343,346,349,351,354,357,364,366,367,370,375,378,382,387,388,395,397,398,399,404,409,414,417,418,420,421,423,429,430,431,433,435,437,438,439,445,446,447,449,451,453,454,456,468,470,472,474,477,483,485,486,488,490,499,500,502,503,505,506,508,525,526,533,538,544,547,550,551,555,558,561,564,566,571,575,581,584,585,586,587,592,595,599,603,607,609,610,612,615,616 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/expand.hpp:3,5,10,12,17,20,30,32,34,42,52,54,56,58,62,65,67,70,91,93,95,96,97 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/kwd_arg_macros.hpp:3,14,16,27 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/bind.cpp:11,13,15,17,21,27,28,29,30,39,40,52,53,54,59,61,66,86,87,90,94,96,113,114,115,117,132,136,142,151,152,155,164,165,168,173,174,183,184,185,198,201,202,203,214,218,219,222,228,230,235,237,242,243,250,254,264,265,272,273,279,281,282,284,296,300,304,305,306,307,309,310,311,312 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/c2ast.hpp:3,7,9,11,12,13 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/utf8/core.h:2,10,17,26,27,30,32,34,41,44,54,57,60,62,65,67,70,72,73,76,78,79,82,84,85,88,90,91,94,96,97,101,113,114,117,121,125,129,130,132,133,135,139,142,145,147,148,150,154,157,159,161,162,165,168,170,172,174,176,177,180,183,185,187,189,191,193,195,196,199,202,204,206,208,210,212,214,216,218,219,221,224,227,231,236,254,255,264,267,270,271,275,276,281,282,283,284,286,289,292,298,300,301,304,306,307,310,316,317,321,327,328,329,331,332 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/utf8/unchecked.h:2,10,17,26,27,30,32,34,36,39,45,50,56,58,59,62,86,89,90,93,95,96,99,103,104,108,110,111,114,117,118,121,124,125,129,134,135,138,145,147,149,150,153,159,162,164,165,168,171,173,174,177,180,182,183,194,197,199,201,203,205,207,210,212,216,218,221,223,227,229,230,231,232,233,235 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/utf8/checked.h:2,10,17,26,27,30,33,35,39,48,56,64,69,71,74,77,83,88,94,96,97,100,126,127,129,130,133,136,137,140,154,156,157,160,162,163,166,170,177,178,182,189,190,193,196,197,200,203,204,208,213,214,217,228,231,232,236,238,240,241,244,250,253,255,256,259,262,264,265,268,271,273,274,287,290,294,297,299,303,305,307,309,312,314,318,320,323,325,329,331,332,333,335,336 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/listize.hpp:3,7,10,12,14,16,18,20,24,28,34,35,36 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/source_map.hpp:3,6,11,14,17,19,22,24,29,36,39,41,43,51,62,63,64 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/permutate.hpp:3,5,7,27,28,30,35,36,39,43,49,54,58,59,61,64,65,68,69,72,74,75,78,80,100,103,108,109,112,116,117,122,129,134,142,145,149,150,153,155,156,159,161,162,163 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass.hpp:4,9,13,29,30,40,49,50,53,56,60,63,73,77,78,79,87,93,96,100,103,109,111,114,119,123,133,144,146 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass_functions.cpp:4,11,14,16,18,19,21,28,29,31,34,35,38,44,46,47,51,55,57,64,65,69,72,74,75,78,80,81,84,90,92,93,96,99,101,102,106,117,118,121,123,124,127,134,135,139,142,148,150,151,154,161,162,170,175,178,182,185,189,192,193,199,204,209,210 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_fwd_decl.hpp:3,9,14,19,21,23,25,27,37,41,44,48,52,56,65,69,76,85,89,97,104,105,112,114,120,125,127,134,139,215,221,225,232,235,239,242,245,248,252,256,271,272,273 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast2c.cpp:4,7,9,12,15,18,21,24,26,29,30,32,37,38,39,42,44,48,50,51,53,60,62,63,65,69,71,72,75,79 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/base64vlq.cpp:4,6,8,10,12,14,20,23,25,26,28,33,34,36,38,39,41,46,47 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/context.cpp:5,21,26,29,31,34,35,37,41,43,44,52,62,66,69,74,75,76,80,86,92,96,98,99,100,102,104,106,110,112,116,117,119,124,133,137,138,140,146,147,149,150,151,153,157,163,166,167,172,173,174,175,177,179,182,183,184,186,190,196,199,200,205,206,207,208,210,212,215,216,217,221,228,232,235,236,240,241,249,252,255,259,264,274,279,282,293,298,299,300,317,318,322,326,327,330,331,335,346,347,360,361,362,365,366,367,369,373,376,379,380,385,393,399,401,402,403,404,405,408,430,446,458,470,473,480,481,484,485,492,494,509,514,515,519,520,522,535,536,537,539,540,543,547,550,558,559,564,567,577,580,583,584,585,587,588,591,600,601,604,609,619,622,625,626,629,651,654,659,660,665,670,673,675,677,686,687,689,692,693,695,699,700,701,705,714,715,717,721,722,724,730,731,733,742,743,744,746,847,848,850,854,855,857,861,862,863 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_utils.hpp:3,7,13,15,25,29,33,36,38,41,45,47,48,57,58,59,60,61 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_strings.hpp:3,5,7,9,19,29,30,31,32,33 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_maps.hpp:3,5,7,9,11,18,25,26,27,28,29 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/remove_placeholders.cpp:5,7,9,12,16,17,18,20,23,24,25,27,30,32,33,35,38,43,44,46,47,48,50,53,56,57,59,61,62,64,68,73,74,75,77,79,80,82,84,85,86 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/file.hpp:3,7,10,13,15,17,21,24,28,31,34,38,42,46,49,53,58,62,65,70,71,72,90,101,114,116,119,120,121,122,123 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_supports.hpp:3,7,18,34,36,38,50,61,78,91,105,118,119,120 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_colors.cpp:4,11,13,15,22,23,25,26,29,31,32,33,36,50,51,57,58,61,78,79,86,87,90,100,101,103,115,116,121,122,126,129,132,133,136,139,140,143,146,147,154,157,164,165,168,173,174,175,179,182,196,197,204,205,206,209,226,227,235,236,243,244,245,249,252,255,256,259,262,263,266,269,270,274,277,283,284,287,293,294,295,298,304,305,308,312,313,319,320,323,329,330,333,338,339,344,345,349,352,357,358,361,369,371,372,379,380,384,388,392,393,398,399,401,402,406,412,413,417,423,424,428,431,440,443,446,454,462,468,472,473,476,485,488,491,503,515,522,526,527,530,539,542,545,553,561,566,570,571,574,581,588,592,593,594,595,596 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass_values.cpp:4,12,15,18,29,35,41,45,55,65,73,77,81,83,85,91,92,94,102,103,105,114,115,117,125,126,128,136,137,139,149,150,152,160,161,163,168,169,171,178,179,181,188,189,192,211,218,228,229,231,232,233,236,237,243,246,249,252,255,260,262,268,270,273,276,278,279,281,282,283,285,290,291,293,294,296,298,302,314,315,320,327,334,341,344,345,348,351,352,360,361,362 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/constants.cpp:4,6,9,11,23,32,64,81,88,106,108,111,118,131,134,160,164,168,179,197,198,199 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_values.cpp:5,7,9,11,12,15,22,25,32,35,44,53,55,61,63,64,66,69,70,72,82,84,87,88,90,101,103,105,106,115,116,118,119,120,128,131,132,133,136,141,146,148,158,165,167,170,171,173,182,184,186,187,190,196,197,199,200,202,207,208,209,211,212,215,220,228,230,232,234,236,237,239,241,242,244,246,247,249,252,253,255,259,260,262,267,270,271,273,278,280,281,283,288,290,291,294,298,302,304,312,314,317,318,320,325,327,328,332,334,335,338,348,358,368,370,377,379,380,382,387,389,390,392,394,395,399,400,403,407,411,413,416,418,419,421,423,424,427,434,445,455,456,458,459,466,469,472,473,475,478,479,481,488,490,491,493,496,498,499,501,504,506,507,509,517,523,524,526,534,541,546,547,548,551,557,565,567,570,573,576,579,580,582,585,588,591,593,594,597,602,609,611,622,625,626,628,634,636,637,639,646,648,649,651,652,657,661,665,668,672,676,677,682,686,687,689,691,692,695,703,711,713,724,727,728,730,736,738,739,741,748,750,751,754,760,761,763,764,768,778,782,783,785,787,788,791,795,799,801,804,807,808,810,813,815,816,819,823,827,829,832,835,836,838,841,843,844,847,852,858,860,863,865,866,868,871,873,874,876,879,881,882,885,892,895,899,906,908,911,912,913,915,917,919,921,922,924,932,935,938,939,941,948,950,952,953,955,958,960,961,963,967,969,970,972,974,975,978,991,998,1001,1002,1004,1007,1010,1013,1014,1016,1019,1022,1024,1025,1027,1029,1030,1032,1034,1035,1037,1040,1042,1043,1046,1051,1054,1056,1057,1061,1063,1066,1069,1072,1073,1075,1078,1081,1083,1084,1086,1088,1089,1092,1096,1099,1101,1104,1107,1108,1110,1112,1113,1115,1117,1118,1121,1125,1129,1132,1150,1153,1154 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/debug.hpp:3,5,9,22,24,30,34,36,40,42 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/inspect.hpp:3,7,10,15,17,20,97,99,100 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/check_nesting.hpp:3,10,12,14,19,22,26,30,38,40,41,49,55,57,59,67,68,69 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/lexer.cpp:4,10,11,14,16,20,30,34,35,39,43,44,48,51,52,55,60,61,65,76,81,85,88,91,94,103,104,108,111,112,116,119,120,121,122 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/color_maps.cpp:4,8,10,12,162,163,315,316,458,460,611,613,615,616,618,622,626,628,629,631,635,637,638,640,642,643,645,650,651,652 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_selectors.cpp:2,8,10,12,15,17,23,24,34,37,42,43,47,48,54,61,62,64,65,68,70,77,78,89,92,96,100,104,105,106,108,114,115,119,120,128,131,132,133,137,138,140,141,144,149,150,153,155,157,162,163,165,166,169,175,176,179,185,186,189,192,193,196,201,202,203,204,205 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_numbers.cpp:4,12,17,22,24,26,29,35,38,40,43,46,48,54,58,61,65,66,69,74,75,78,83,84,87,92,93,96,101,102,105,111,117,121,123,124,127,133,139,143,145,146,149,160,166,170,181,182,183,186,192,193,196,200,201,204,208,209,212,217,223,224,225,226,227 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/plugins.hpp:3,8,10,15,19,21,25,27,29,30,32,36,42,47,52,54,55,56 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/debugger.hpp:3,7,15,17,19,21,25,26,40,42,45,46,49,50,58,61,62,70,73,74,82,85,86,93,99,102,103,110,115,118,119,126,132,135,136,143,147,150,151,157,161,164,165,173,177,180,181,188,194,197,198,205,209,212,213,220,224,227,229,239,242,243,254,257,259,269,272,273,276,280,281,284,285,287,290,293,295,296,302,303,308,309,311,325,326,328,362,364,376,384,386,395,401,402,404,417,424,466,473,478,485,488,494,503,513,521,529,531,821,889,937,950,951,953,954,955,958,960,962 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/operators.cpp:4,7,9,11,16,23,24,25,32,35,40,41,44,52,53,60,63,70,71,74,76,79,82,85,100,101,105,106,112,113,117,118,120,121,125,126,129,132,133,135,142,143,146,149,152,153,157,158,171,172,173,174,175,177,181,182,192,202,208,209,212,213,216,218,229,239,241,243,244,247,249,253,254,256,263,264,265,266,267 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/output.cpp:4,8,10,16,18,20,22,23,25,31,36,37,39,41,42,44,47,48,50,51,54,59,60,70,71,84,85,88,90,91,92,94,109,110,111,112,113,115,118,120,128,129,130,132,133,136,144,158,159,160,166,168,169,173,174,177,178,180,183,186,187,191,192,198,200,201,203,205,208,215,216,218,219,226,231,232,234,236,237,238,240,253,254,255,257,262,270,275,279,280,284,285,287,289,294,295,297,298,300,307,308,309,311,317,318,319,320 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/cssize.hpp:3,8,10,12,14,18,22,49,56,60,65,68,69,70 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/source_map.cpp:4,9,15,19,21,25,27,29,33,38,39,52,53,57,59,66,68,69,74,78,84,85,88,100,106,107,110,111,124,125,127,128,130,135,139,140,141,146,147,149,151,152,154,160,163,164,167,169,170,172,174,175,177,181,182,184,188,189,197,199,200,201,202 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass_functions.hpp:3,7,14,26,32,42,49 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass.cpp:4,9,16,18,21,26,28,29,30,31,34,38,43,45,46,48,54,55,58,60,61,64,67,68,71,74,75,77,88,89,91,102,103,108,112,113,117,121,122,125,127,128,131,133,134,135,136,138,141,154,155,156 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/listize.cpp:4,8,13,15,18,20,23,24,26,32,35,36,38,43,45,46,48,53,59,60,63,64,65,68,69,70 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/base64vlq.hpp:3,5,7,9,11,13,15,17,19,21,27,28,29 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast2c.hpp:3,7,9,11,13,16,30,34,36,37,38 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_fwd_decl.cpp:2,4,10,15,30,31 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/context.hpp:3,8,9,12,17,19,27,30,38,51,53,59,62,64,68,72,79,86,91,94,102,103,108,112,121,128,133,137,138,139 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_strings.cpp:4,10,12,14,16,19,23,27,31,33,34,38,41,48,51,58,61,63,64,67,74,75,78,83,84,90,91,94,108,110,114,118,121,126,130,131,134,135,140,141,144,151,155,157,163,164,167,173,180,181,183,185,187,190,191,198,199,203,204,208,213,215,217,223,226,227,232,233,236,240,247,248,249,252,256,263,264,265,266,267,268 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_utils.cpp:4,8,10,12,25,26,28,47,48,50,52,55,56,58,64,66,67,69,79,81,82,84,89,90,92,97,98,100,108,109,110,119,120,121,129,132,136,137,144,147,153,154,155,156,157,158 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_sel_cmp.cpp:4,6,8,13,16,21,22,25,32,33,35,41,42,44,47,48,50,56,57,59,65,66,69,71,78,81,83,84,85,86,90,92,99,100,102,109,110,112,119,120,124,126,132,134,135,139,141,148,149,151,158,159,161,168,169,173,175,177,178,182,184,187,189,190,192,195,197,198,204,206,214,218,220,221,222,226,228,235,236,238,245,246,248,257,258,262,264,268,270,277,278,280,287,288,290,297,298,301,303,306,307,309,312,313,315,318,319,321,324,325,327,330,331,333,336,337,340,342,345,346,348,350,351,353,356,357,359,362,363,365,374,376,377,379,389,391,392,395,396 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_maps.cpp:4,6,8,12,15,27,29,30,33,37,38,41,46,48,49,52,57,59,60,63,66,73,74,77,86,88,90,91,92,93,94 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/file.cpp:4,29,32,36,39,42,47,50,53,58,77,78,81,88,102,103,107,117,119,120,123,133,136,139,141,142,145,149,150,153,157,158,162,163,166,171,174,178,179,187,188,191,194,196,197,198,202,203,209,212,215,230,231,233,234,236,238,242,245,246,249,256,259,260,264,265,268,276,277,281,287,290,303,306,309,310,317,320,323,325,326,327,331,333,335,336,345,364,370,376,382,388,389,392,393,395,400,402,403,405,416,417,421,425,426,429,432,435,438,439,444,453,488,492,499,507,508,509,512,523,528,529,530,531 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/remove_placeholders.hpp:3,6,8,10,12,17,18,22,28,32,34,35,36 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_colors.hpp:3,5,7,9,17,21,52,80,81,82,83,84 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/c99func.c:4,11,14,23,25,29,31,33,38,40,41,43,46,50,52,53 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_supports.cpp:5,6,8,11,19,22,26,30,33,43,45,48,50,51,54,61,63,66,67,70,79,81,83,84,87,95,97,99,100,103,110,113,114 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass_values.hpp:3,5,9,14,20,28,34,43,49,53,58,63,76,81 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/constants.hpp:3,6,9,20,30,62,79,86,104,107,110,117,130,133,148,160,164,169,178,196,197,198,199 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_values.hpp:3,8,10,20,27,32,37,40,41,43,45,64,67,71,74,78,90,92,95,99,100,115,121,123,126,132,142,146,148,151,155,170,174,177,179,181,185,198,208,210,213,217,221,223,231,242,245,247,250,253,256,259,269,272,274,277,280,283,287,288,298,301,303,306,309,312,316,329,342,352,355,357,359,362,366,387,397,400,403,408,414,440,456,468,470,473,477,488,495,496,497 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/check_nesting.cpp:6,8,14,18,19,21,23,27,32,33,35,41,45,46,47,50,54,55,56,59,61,62,65,66,68,70,74,75,76,80,81,82,86,87,88,91,95,96,97,99,100,101,103,105,106,108,113,114,117,119,121,123,124,126,128,131,132,134,135,137,139,142,145,148,151,154,157,160,162,165,166,169,172,174,175,177,180,181,182,184,189,190,191,193,200,201,202,218,222,227,229,241,242,243,244,246,258,259,260,261,263,280,281,282,284,296,297,298,300,310,311,312,314,318,323,324,325,327,328,329,331,334,335,336,338,340,344,352,353,355,358,359,361,364,365,367,370,371,373,375,378,379,381,383,384,386,392,393 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/lexer.hpp:3,5,8,12,22,26,29,32,43,48,52,55,59,62,66,70,73,77,83,84,96,99,100,101,108,109,122,125,126,134,135,143,144,153,154,162,163,169,170,177,178,186,187,196,202,203,212,218,219,220,227,228,236,237,246,247,258,260,261,265,274,275,284,285,292,299,300,301,302,303 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/inspect.cpp:4,11,18,20,25,28,32,36,41,42,43,44,46,49,52,53,54,56,59,60,62,68,69,71,77,78,79,81,93,96,99,103,104,106,111,115,121,124,125,126,128,134,135,137,143,144,146,155,159,162,165,166,167,169,174,181,187,188,192,197,198,200,207,209,210,212,216,222,223,229,235,236,238,239,240,241,243,249,250,252,258,259,261,267,268,270,276,277,279,283,284,286,297,298,299,301,311,312,314,322,326,327,329,335,336,338,344,345,347,353,354,356,364,368,369,371,378,382,384,385,387,391,392,394,398,411,413,414,417,418,421,422,424,429,435,441,450,456,457,460,470,471,472,475,480,481,484,489,491,501,507,508,509,510,512,520,537,546,547,549,554,555,557,560,561,563,565,566,568,569,572,576,579,582,585,587,588,591,598,604,605,606,609,613,614,617,618,625,626,628,631,635,638,643,651,657,658,674,675,680,681,685,692,693,696,697,707,708,710,711,712,714,717,718,720,723,724,726,733,734,735,737,739,740,742,747,748,749,751,753,754,756,758,759,761,762,766,775,776,780,781,783,789,790,792,798,799,801,803,804,806,812,815,819,820,821,823,826,833,835,836,837,839,846,848,849,850,852,857,858,860,863,864,867,872,875,876,877,879,886,887,889,890,892,896,901,907,910,911,912,914,922,923,925,926,928,930,931,933,935,936,938,940,941,942,944,946,947,949,951,952,954,956,957,959,967,968,973,975,976,978,979,984,992,995,1000,1004,1005,1006,1007,1009,1010,1014,1016,1017,1018,1025,1028,1029,1031,1033,1044,1045,1046,1053,1056,1057,1058,1060,1065,1066,1074,1075,1078,1079,1080,1082,1087,1088,1090,1093,1097,1103,1104,1105,1106,1108,1114,1121,1122,1123,1124,1125 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_selectors.hpp:3,5,7,9,12,21,30,31,32,33,34 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/color_maps.hpp:1,4,7,9,11,161,162,313,314,320,321,322 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_numbers.hpp:3,5,7,9,12,26,40,41,42,43,44 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/plugins.cpp:4,9,18,20,23,26,29,32,33,34,39,45,49,54,55,56,59,60,64,66,69,74,78,81,85,88,92,95,97,102,103,105,109,110,112,113,114,116,117,120,122,124,125,136,139,141,152,154,158,159,160,162,166,167,169,180,182,185,186,187,188 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/mapping.hpp:3,6,8,12,16,17,18 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/output.hpp:3,6,10,13,17,21,25,28,40,42,44,45,46 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/operators.hpp:3,6,8,10,25,27,28,29 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/cssize.cpp:4,8,11,13,19,21,23,24,26,33,34,36,41,42,44,46,54,55,56,65,69,73,75,78,79,81,82,84,86,88,90,91,100,111,112,113,114,117,121,122,128,129,131,132,134,136,141,143,144,146,157,162,166,169,170,174,178,179,181,185,187,190,191,193,194,201,202,206,208,210,211,213,215,216,218,220,222,223,225,227,228,230,235,237,239,240,242,245,248,250,256,258,260,261,263,268,269,271,277,280,281,283,285,286,288,289,291,297,306,309,310,312,322,323,330,331,333,335,343,350,352,355,356,358,360,368,375,377,379,380,382,384,385,387,395,396,399,400,402,403,405,407,411,413,416,418,422,423,425,426,428,432,436,440,443,448,450,452,453,455,460,467,468,470,473,474,477,484,489,492,495,496,499,500,501,502,504,505,507,513,514,517,518,519,520,521 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_def_macros.hpp:3,12,15,17,21,23,25,28,30,33,37,45,53,61,69,71,75,80,85,87,91,96,101,103,107,111,113,125,127,137,139 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass2scss.cpp:6,11,20,31,34,37,38,45,48,54,57,61,62,65,69,70,74,75,82,87,97,112,129,148,151,154,155,156,158,160,161,163,165,166,168,170,171,175,176,178,180,181,184,187,190,197,199,201,202,203,204,205,207,211,212,218,220,221,224,227,229,231,233,235,237,239,242,244,247,249,251,253,256,259,260,262,265,268,271,274,275,276,279,280,281,282,284,286,287,289,293,294,302,305,306,309,312,314,317,319,321,323,326,329,331,332,334,337,340,343,346,347,348,351,352,353,354,356,360,363,364,366,369,376,378,382,383,386,392,396,400,405,408,413,416,420,422,425,427,429,432,433,436,439,443,444,447,450,451,453,456,457,460,463,465,466,469,472,475,478,481,484,485,488,491,495,496,499,502,505,510,513,516,522,523,524,527,528,529,532,541,542,545,551,552,555,556,564,572,575,582,587,588,589,590,591,596,597,598,599,613,617,618,619,622,633,636,639,642,645,652,654,655,657,658,665,672,676,677,678,679,682,685,688,692,693,694,697,700,703,710,711,714,723,724,725,728,733,735,739,742,745,746,747,756,759,760,763,766,767,770,774,778,779,784,785,786,787,789,790,792,795,796,798,802,804,810,813,830,831,832,833,836,837,842,855,859,866,874,875,877,878,880,883,884,886,888,889,893,894,895 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/units.hpp:3,8,10,12,21,23,31,37,41,45,50,53,55,90,96,107,108,109 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_miscs.hpp:3,5,7,9,22,35,36,37,38,39 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/stylesheet.hpp:3,7,11,13,18,22,25,28,32,36,40,43,45,48,51,53,54,55,56 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/memory.hpp:3,5,11 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/extension.hpp:3,7,12,14,16,18,21,25,29,32,36,38,42,53,54,55,65,66,67,77,78,82,84,86,87,88 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/operation.hpp:3,7,10,13,16,18,29,44,124,126,210,214,217,218,220,221,222 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/to_value.cpp:4,7,9,12,14,15,18,20,21,24,26,27,30,32,33,36,38,39,42,44,45,48,50,51,54,56,57,60,69,71,72,75,77,78,81,83,84,87,89,90,93,96,97,100,104,105,108,112,113 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/source.hpp:3,8,10,19,24,26,31,34,35,38,39,42,43,45,51,56,58,63,66,67,70,71,74,75,77,78,84,87,92,93,94 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/prelexer.cpp:4,12,13,17,19,20,22,27,57,58,60,77,107,108,110,142,143,146,176,177,179,211,212,220,238,239,241,264,265,268,278,279,282,290,294,298,300,304,307,311,314,315,318,331,332,335,346,347,350,361,362,365,371,372,375,382,383,385,392,393,395,402,403,406,418,419,422,433,434,437,450,451,453,455,456,467,468,471,506,507,511,512,535,536,559,560,568,569,579,580,596,597,599,600,607,617,618,622,623,642,704,705,733,734,746,747,764,765,772,773,786,787,790,791,794,795,798,799,802,803,806,807,810,811,814,815,818,819,822,823,826,827,830,831,834,835,838,839,840,843,844,847,852,853,856,857,860,861,864,865,868,869,872,873,876,877,880,881,887,888,891,892,895,896,899,900,905,908,909,917,918,929,930,945,946,961,962,965,968,971,975,979,984,988,990,993,996,1002,1015,1019,1030,1033,1036,1037,1044,1049,1054,1059,1060,1066,1082,1083,1109,1115,1121,1127,1131,1163,1164,1167,1168,1171,1174,1178,1182,1185,1197,1200,1203,1207,1211,1212,1227,1228,1232,1235,1238,1241,1244,1247,1250,1253,1256,1259,1262,1265,1268,1269,1306,1309,1312,1313,1318,1325,1343,1344,1353,1354,1360,1372,1375,1378,1381,1385,1387,1390,1392,1401,1404,1405,1414,1415,1421,1422,1425,1426,1438,1439,1454,1461,1462,1469,1478,1479,1482,1483,1501,1502,1509,1510,1523,1524,1537,1538,1575,1576,1596,1597,1613,1614,1630,1631,1640,1641,1727,1728,1731,1734,1737,1738,1742,1746,1747,1777,1778,1779,1780 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/util.hpp:3,7,10,16,18,20,24,25,31,32,45,49,52,54,60,62,63,68,69,72,73,78,79,86,87,90,91,93,102,103,104 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/utf8_string.cpp:4,9,11,14,19,23,24,27,28,34,35,46,47,56,60,63,67,71,72,73,75,78,81,88,89,92,99,100,102,103,104 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast_selectors.hpp:3,8,10,14,19,23,26,30,34,37,60,72,81,117,120,125,128,132,134,138,142,145,161,178,192,208,227,243,245,247,251,255,258,267,268,281,286,291,294,296,298,300,303,308,313,324,325,328,331,333,336,339,345,351,357,361,363,366,369,372,376,379,384,389,394,397,400,405,410,419,423,426,427,430,434,436,441,444,447,449,451,455,457,462,475,477,482,487,489,492,499,504,519,520,521 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/b64/cencode.h:3,7,10,12,15,17,22,24,26,28,30,32 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/b64/encode.h:4,10,12,14,16,18,19,21,24,27,29,30,32,34,35,37,39,40,42,44,45,47,55,57,63,65,70,73,75,76,77,79 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/backtrace.cpp:2,4,6,9,14,16,19,22,41,42,43,44,47,48,49 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/json.cpp:4,11,14,23,28,30,34,40,48,53,56,62,63,65,67,72,74,80,81,87,89,92,96,102,103,105,109,110,116,118,120,121,123,127,128,130,132,133,144,166,168,178,184,188,194,200,204,212,216,217,218,221,223,228,229,231,232,241,243,245,268,269,270,280,282,284,307,308,309,317,323,324,325,332,334,336,340,341,350,353,362,364,369,373,375,378,382,387,388,390,391,393,395,396,398,401,404,408,409,411,412,414,417,423,427,428,430,431,433,436,443,448,450,452,453,455,456,457,459,461,465,469,471,472,474,477,480,485,486,488,489,491,493,496,500,502,503,505,509,510,512,518,519,521,523,524,526,530,531,533,537,538,540,542,543,545,549,550,552,554,555,557,559,560,562,567,573,574,575,577,582,588,589,590,592,596,597,598,600,604,606,607,608,610,613,615,616,618,622,624,625,626,628,632,635,636,637,639,642,648,653,655,659,660,661,662,664,666,674,676,683,685,692,694,702,704,705,710,712,717,719,727,729,730,731,732,734,738,742,746,747,752,755,759,760,764,765,771,775,776,778,783,787,791,792,797,801,805,808,812,813,817,818,824,831,832,834,840,843,850,851,854,880,883,886,898,899,902,906,913,918,921,922,933,934,936,941,946,947,950,951,954,955,967,969,973,983,984,993,994,1005,1006,1009,1012,1013,1015,1020,1021,1023,1046,1047,1048,1050,1073,1074,1075,1077,1079,1085,1087,1088,1090,1093,1097,1098,1104,1107,1111,1112,1114,1116,1124,1126,1127,1129,1132,1136,1137,1145,1148,1152,1153,1155,1159,1164,1166,1168,1175,1179,1212,1215,1233,1238,1240,1256,1261,1262,1264,1265,1266,1274,1276,1278,1279,1281,1290,1295,1296,1298,1300,1301,1303,1305,1306,1308,1310,1314,1317,1318,1324,1330,1341,1344,1345,1350,1351,1357,1359,1364,1366,1367,1369,1375,1378,1381,1393,1402,1405,1413,1418,1423,1426,1427,1430,1431,1432,1434,1436 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/parser.cpp:4,8,20,21,25,26,41,46,47,54,55,57,61,62,64,67,68,71,72,75,78,84,85,88,93,94,99,102,105,106,108,109,110,115,116,119,123,127,129,132,133,138,141,143,145,146,151,153,154,158,159,162,166,170,172,174,178,181,184,185,189,191,193,197,199,201,212,219,220,229,230,231,242,250,251,252,253,259,261,262,271,274,276,279,284,287,301,302,305,307,310,318,322,326,329,333,336,339,343,346,350,351,355,360,361,362,364,365,367,380,381,383,392,395,396,398,399,401,404,415,418,420,421,423,432,435,436,438,439,441,444,448,449,458,469,471,473,474,476,482,489,495,497,498,501,513,519,531,532,537,547,559,560,567,581,593,595,596,598,601,605,607,610,612,614,622,623,626,637,642,643,645,649,652,655,657,658,660,664,667,670,673,676,679,682,685,688,691,692,694,701,703,707,708,711,715,721,728,729,733,742,746,747,751,752,754,761,762,767,770,771,772,773,774,776,779,782,783,784,788,789,790,792,795,796,798,800,801,803,805,806,808,814,818,822,824,828,831,834,835,838,842,845,846,849,851,857,858,859,867,872,875,883,887,896,897,903,904,905,911,912,913,915,919,923,927,928,930,933,935,939,941,944,946,949,950,954,956,957,959,964,967,968,970,980,983,984,989,991,997,1000,1001,1006,1009,1010,1013,1018,1021,1022,1031,1032,1037,1039,1045,1048,1050,1053,1060,1063,1070,1073,1075,1078,1095,1097,1100,1110,1118,1120,1123,1140,1157,1167,1169,1176,1191,1197,1202,1204,1209,1210,1216,1217,1220,1237,1240,1246,1248,1249,1253,1263,1270,1277,1280,1283,1286,1293,1294,1296,1299,1302,1307,1312,1317,1322,1325,1326,1327,1329,1335,1336,1338,1347,1348,1350,1359,1360,1362,1369,1380,1381,1383,1387,1401,1414,1426,1439,1443,1444,1446,1455,1456,1457,1460,1463,1466,1468,1471,1475,1478,1482,1485,1489,1492,1495,1498,1501,1502,1505,1509,1512,1515,1520,1523,1526,1529,1531,1534,1535,1539,1544,1549,1550,1560,1565,1575,1579,1580,1585,1587,1588,1590,1591,1593,1609,1618,1631,1637,1638,1639,1645,1646,1649,1650,1652,1661,1663,1664,1666,1668,1669,1671,1679,1680,1687,1690,1700,1704,1705,1709,1711,1712,1714,1715,1717,1724,1732,1735,1736,1738,1741,1744,1745,1755,1759,1762,1768,1774,1779,1780,1785,1794,1796,1801,1802,1807,1811,1815,1819,1823,1826,1830,1833,1835,1839,1842,1843,1847,1854,1855,1865,1870,1881,1885,1886,1892,1894,1895,1897,1898,1901,1914,1919,1920,1922,1926,1927,1930,1934,1935,1939,1940,1950,1951,1952,1954,1956,1960,1961,1967,1971,1975,1976,1978,1979,1981,1984,1987,1991,1992,1994,1998,2000,2001,2003,2006,2008,2009,2011,2018,2024,2027,2030,2031,2033,2049,2050,2053,2057,2062,2065,2068,2072,2075,2076,2078,2088,2094,2095,2098,2108,2116,2117,2118,2120,2125,2128,2129,2131,2134,2136,2137,2139,2142,2145,2148,2151,2152,2155,2158,2162,2166,2167,2170,2173,2174,2175,2176,2177,2178,2180,2183,2189,2193,2194,2196,2198,2202,2203,2204,2206,2207,2208,2211,2219,2220,2222,2229,2230,2233,2238,2242,2249,2252,2254,2256,2258,2259,2261,2265,2268,2272,2277,2280,2282,2283,2287,2296,2297,2301,2308,2309,2311,2315,2316,2318,2321,2326,2329,2332,2334,2335,2337,2339,2342,2344,2345,2349,2356,2364,2365,2367,2370,2376,2377,2379,2383,2386,2387,2389,2397,2401,2406,2411,2412,2414,2416,2419,2420,2425,2428,2430,2437,2438,2440,2447,2449,2450,2452,2455,2457,2458,2460,2463,2464,2466,2471,2472,2474,2522,2524,2525,2527,2539,2540,2542,2543,2553,2554,2557,2558,2560,2562,2564,2565,2567,2574,2576,2577,2579,2586,2588,2589,2591,2598,2600,2601,2603,2608,2609,2611,2630,2635,2638,2640,2641,2653,2654,2656,2659,2660,2662,2666,2674,2677,2679,2685,2733,2735,2744,2745,2748,2750,2752,2804,2807,2808,2810,2815,2817,2818,2819,2821,2824,2826,2827,2829,2847,2849,2850,2851,2857,2858,2868,2873,2876,2880,2881,2886,2888,2889,2891,2894,2895,2898,2904,2908,2913,2914,2918,2928,2929,2935,2938,2939,2948,2952,2954,2963,2964,2965 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/util_string.cpp:2,5,8,24,28,29,33,34,35,39,40,41,46,47,53,59,61,63,75,78,79,82,83,88,89,96,99,101,102,109,110,111,118,119,120,121,123,124 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/environment.hpp:3,7,12,14,17,26,33,38,42,46,52,54,56,58,60,62,66,68,75,77,79,83,85,90,96,100,104,108,111,115,117,121,122,123 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/error_handling.cpp:4,9,11,13,15,20,24,25,28,32,33,36,39,40,43,47,48,51,53,54,58,62,65,67,68,71,73,74,77,79,80,83,85,86,88,90,91,93,95,96,99,104,105,108,110,111,114,120,121,124,126,127,130,133,134,137,138,139,140,144,145,146,147,151,152,153,154,155,156,157,158,160,162,163,165,170,173,174,176,178,179,181,186,190,191,193,198,206,207,209,214,218,219,222,225,226,228,231,232,233 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/sass_context.cpp:5,8,10,15,19,20,22,37,38,42,53,56,60,63,65,71,75,76,89,94,109,110,130,135,138,141,144,147,149,150,156,157,159,160,169,171,175,179,184,190,194,197,198,201,204,205,206,207,208,211,223,224,236,242,243,246,254,255,256,263,264,265,272,273,274,285,291,296,299,300,303,306,307,308,311,312,315,320,323,325,327,328,330,334,335,337,342,343,345,359,361,362,364,378,380,381,383,387,388,390,394,395,397,405,409,410,412,419,423,424,426,438,439,441,461,462,465,479,480,483,499,500,511,512,532,533,537,563,564,566,569,576,577,579,581,582,585,588,591,597,598,602,609,622,626,647,660,670,673,674,685,686,687,688,691,696,697,700,704,705,708,713,714,717,721,722,725,726,737,738,739,740,741 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/eval.cpp:4,11,35,37,45,48,50,52,54,55,57,59,60,62,64,65,67,69,70,72,74,75,77,79,80,82,87,89,90,92,101,107,108,111,112,115,116,126,127,130,132,134,136,142,143,144,147,150,151,154,156,157,159,166,170,173,174,178,184,189,198,215,225,226,229,230,234,243,247,251,254,255,258,262,271,272,275,276,280,295,296,304,305,306,309,310,313,314,316,327,329,332,333,335,337,338,340,345,348,358,364,374,375,376,385,386,388,393,396,406,412,422,423,424,429,430,432,437,440,450,456,466,467,468,474,478,479,480,482,489,495,499,500,503,515,520,521,523,525,531,532,542,543,548,549,552,553,555,556,560,566,572,573,577,580,581,583,588,592,593,599,600,617,618,620,623,624,636,637,639,642,643,644,661,662,664,667,668,678,679,681,684,685,686,687,689,699,702,703,705,714,716,717,718,726,734,737,738,743,746,752,754,759,761,770,771,778,779,780,781,785,796,797,798,809,810,812,815,816,819,830,835,840,845,860,864,867,869,875,876,877,880,881,883,887,888,894,895,896,898,899,900,902,908,915,919,922,928,938,939,946,947,951,954,955,957,963,964,971,972,975,978,985,986,994,1003,1004,1005,1009,1012,1014,1016,1026,1032,1033,1038,1040,1044,1057,1061,1064,1067,1070,1071,1082,1083,1097,1106,1118,1120,1126,1127,1132,1137,1138,1140,1155,1156,1158,1160,1161,1163,1165,1166,1168,1170,1171,1173,1175,1176,1178,1180,1185,1190,1197,1198,1201,1207,1208,1209,1211,1216,1217,1227,1238,1240,1241,1256,1257,1258,1260,1261,1262,1264,1274,1275,1276,1277,1278,1290,1291,1296,1305,1306,1307,1309,1311,1312,1314,1320,1321,1323,1332,1333,1335,1341,1342,1344,1352,1353,1355,1361,1362,1364,1374,1375,1377,1388,1390,1391,1393,1400,1408,1414,1415,1417,1419,1420,1422,1426,1431,1440,1441,1448,1449,1451,1459,1460,1461,1465,1469,1475,1484,1487,1488,1489,1494,1496,1498,1499,1501,1503,1504,1506,1515,1521,1522,1524,1529,1530,1531,1533,1535,1536,1538,1542,1543 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/utf8.h:2,10,17,26,27,30,33 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/ast.hpp:3,7,10,15,21,23,36,44,47,49,51,53,66,71,72,74,87,92,93,99,100,105,109,115,121,158,161,176,177,178,182,186,188,190,194,196,198,200,201,203,231,237,238,241,242,248,256,263,266,269,270,273,276,277,278,281,284,285,293,294,298,304,305,315,316,318,319,324,325,327,331,332,334,335,340,341,348,352,363,378,382,388,391,393,395,402,404,408,411,412,414,417,419,425,426,429,430,433,437,440,445,449,496,512,525,540,553,565,582,595,611,625,641,654,665,676,687,700,713,727,739,750,761,798,811,822,841,859,879,880,887,893,903,910,914,915,919,923,927,931,934,937,943,944,951,952,956,957,961,965,980,994,1008,1021,1034,1050,1051,1052,1056,1058,1061,1063 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/values.cpp:4,7,9,11,14,16,19,21,28,29,31,38,40,42,49,51,53,55,57,60,62,64,66,68,70,71,73,74,77,101,112,115,122,124,136,138,139,140 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/extender.hpp:3,7,14,16,20,27,33,39,46,53,60,69,71,73,75,77,82,88,94,100,106,118,132,140,142,146,152,157,169,178,191,199,213,220,229,231,241,251,260,272,280,290,297,305,317,326,336,344,353,361,370,375,380,388,394,396,397,398 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/emitter.hpp:3,7,11,14,16,20,35,44,59,83,96,98,99,100 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/cencode.c:3,7,9,11,15,16,18,22,23,25,31,33,35,37,40,44,50,53,57,63,66,70,76,78,79,82,83,85,87,89,101,103,105,106 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/fn_lists.cpp:4,9,11,13,17,20,31,33,34,37,40,45,53,54,55,60,61,64,74,81,87,93,98,99,100,103,111,114,121,123,124,127,134,137,140,142,143,146,160,164,168,171,181,186,187,190,196,201,204,211,219,222,224,225,228,240,246,247,249,256,258,260,261,264,269,273,274,277,281,282,283,284,285 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/position.cpp:4,7,9,10,15,18,20,21,24,26,27,30,33,37,40,41,45,62,67,68,70,72,73,77,81,82,84,86,87,89,91,92,94,96,97,99,101,102,104,106,107,110,113,116,119,120,123,126,128,131,132,134,138,139,141,143,144,146,148,149,151,153,154,156,158,159,161,163,164,165 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/bind.hpp:3,8,10,12,13,14 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/eval_selectors.cpp:7,8,10,12,17,18,28,29,32,35,36,37,39,40,42,44,45,47,53,59,60,61,62,64,65,67,72,74,75 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/expand.cpp:4,7,17,19,22,37,47,48,54,55,57,58,60,64,65,67,70,71,73,76,77,79,81,82,84,86,87,89,94,99,100,102,107,112,113,115,121,122,124,126,127,129,135,136,138,140,141,144,164,165,167,169,177,183,184,185,187,188,195,196,197,198,201,207,221,224,225,228,230,231,233,240,241,245,252,253,254,256,257,259,271,274,279,280,281,283,286,289,292,294,301,302,304,321,322,324,333,343,344,345,355,356,358,367,373,374,377,378,381,382,392,393,396,398,400,402,408,409,410,413,416,417,420,422,423,425,430,433,437,438,440,446,454,459,467,468,470,474,475,477,481,482,484,488,489,491,496,502,503,505,512,516,520,521,525,531,536,545,561,570,571,575,576,580,587,591,595,598,604,609,618,620,621,626,642,643,650,651,652,654,655,659,660,662,672,676,677,679,682,683,685,686,691,694,696,698,701,702,704,706,714,717,719,724,725,726,730,731,732,735,736,737,738,740,741,742,744,749,761,762,766,767,769,770,773,774,776,781,785,788,801,816,817,819,822,826,831,834,837,841,844,845,847,853,858,861,862,865,871,873,874,875 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/parser_selectors.cpp:4,6,8,11,13,14,16,19,21,23,25,28,32,36,40,44,47,48,49,51,54,56,58,59,60,62,63,68,71,72,75,77,80,85,87,89,96,98,100,103,104,107,109,110,115,118,122,124,129,130,133,139,146,152,155,157,158,161,163,174,175,177,180,181,184,186,187,188,189 ./vendor/bundle/ruby/2.7.0/gems/sassc-2.4.0/ext/libsass/src/c2ast.cpp:8,10,12,31,37,47,60,62,63,64 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/sqlite3.c:2,5,7,19,24,27,29,39,49,54,55,56,57,61,62,64,66,67,69,75,76,81,83,84,86,89,91,94,128,129,131,139,144,149,161 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/database.c:3,7,9,11,14,17,18,20,23,24,27,31,32,34,36,40,42,51,58,60,62,63,69,73,76,78,80,82,83,89,92,94,96,97,104,108,110,111,113,117,118,128,131,134,136,138,140,142,144,145,147,151,153,155,156,172,176,179,181,183,185,188,190,192,193,200,204,206,207,209,229,235,236,237,239,250,254,256,277,282,283,284,286,291,296,297,298,300,302,303,306,308,310,317,321,324,326,337,339,341,343,344,351,353,354,360,364,366,368,369,376,380,382,383,390,394,396,397,404,407,409,410,418,422,424,425,433,442,446,448,449,461,464,467,471,473,475,477,478,490,494,496,498,499,506,510,512,514,515,517,523,525,529,532,536,537,539,541,542,551,555,562,565,567,568,577,584,587,591,592,594,596,603,608,615,616,618,620,622,624,626,630,632,633,639,642,645,647,650,651,653,654,661,665,667,668,670,673,679,680,681,683,685,686,688,691,697,698,699,701,703,704,705,715,721,724,729,730,732,736,737,739,740,747,752,754,757,758,760,763,765,774,776,778,780,781,783,788,815,819,823,825,827 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/aggregator.c:3,12,22,29,33,36,38,39,43,48,49,56,61,64,65,67,71,76,78,80,81,84,85,87,88,94,99,102,103,106,107,111,112,114,115,118,125,128,129,133,138,139,144,145,147,148,152,156,162,163,164,170,171,173,174,207,213,217,218,224,225,233,234,237,239,243,254,258,259,261,263,264,267,273 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/exception.c:2,4,6,93,94,98 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/statement.h:3,5,10,13,15 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/backup.h:3,5,9,12,14 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/database.h:3,5,9,12,16 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/sqlite3_ruby.h:3,5,14,16,23,24,26,30,34,37,42,44 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/aggregator.h:3,5,8,11 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/exception.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/backup.c:2,4,8,10,12,15,16,18,21,22,60,64,68,73,78,81,82,84,85,96,99,104,105,111,113,119,120,129,131,135,136,145,147,151,152,154,159,166,167 ./vendor/bundle/ruby/2.7.0/gems/sqlite3-1.4.2/ext/sqlite3/statement.c:2,6,8,10,13,14,16,20,22,23,32,37,39,42,45,48,49,61,63,68,70,71,78,80,82,84,87,89,90,96,99,101,103,104,106,112,114,116,118,119,123,124,126,135,136,139,142,153,162,165,171,178,179,180,190,191,193,194,204,208,211,221,222,225,239,240,252,260,261,268,269,283,284,286,288,289,296,298,301,303,305,307,308,315,317,320,322,324,326,327,333,336,339,340,346,350,352,353,359,362,365,367,370,371,377,380,383,385,388,389,395,399,401,402,404,410,414,417,418,420,422,424,438,442 ./vendor/bundle/ruby/2.7.0/gems/simctl-1.6.8/spec/SampleApp/SampleApp/AppDelegate.h:8,10,12,14,15,17 ./vendor/bundle/ruby/2.7.0/gems/simctl-1.6.8/spec/SampleApp/SampleApp/main.m:8,11,13,16,17 ./vendor/bundle/ruby/2.7.0/gems/simctl-1.6.8/spec/SampleApp/SampleApp/AppDelegate.m:8,10,12,14,16 ./vendor/bundle/ruby/2.7.0/gems/terminal-notifier-2.0.0/vendor/terminal-notifier/Terminal Notifier/AppDelegate.h:2 ./vendor/bundle/ruby/2.7.0/gems/terminal-notifier-2.0.0/vendor/terminal-notifier/Terminal Notifier/main.m:2,4,6 ./vendor/bundle/ruby/2.7.0/gems/terminal-notifier-2.0.0/vendor/terminal-notifier/Terminal Notifier/AppDelegate.m:4,7,9,11,13,15,20,21,22,24,27,33,35,36,39,43,45,47,48,50,52,54,58,61,62,64,105,106,108,112,113,115,119,124,125,129,130,135,136,138,144,150,151,155,156,160,161,168,169,170,171,176,177,178,186,194,195,196,199,200,206,207,208,209,211,216,218,219,227,232,233,239,242,248,252,255,256,259,260,263,264,268,269,271,278,279,280,281,283,285,295,296,297,302,303,304,305,306,308,310,315,324,329,331,332,334,339,343,344,345,347,350,357,362,363,367,368,371,373,374,378,380,381 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/snapshot/lib/assets/SnapfileTemplate.swift:2,14,21,22,25,28,31,35,38,41 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/snapshot/lib/assets/SnapshotHelper.swift:7,14,17,20,23,24,30,31,32,38,39,43,50,51,52,53,61,62,64,67,76,77,78,83,84,86,93,94,95,100,101,103,109,110,113,114,117,118,119,124,125,128,135,139,140,141,145,146,148,151,152,157,158,161,165,166,169,175,181,183,184,189,193,194,198,199,210,216,217,218,222,225,227,228,231,233,234,238,241,243,244,245,250,252,253,255,256,260,261,263,266,268,269,271,272,273,277,278,279 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/snapshot/lib/assets/SnapshotHelperXcode8.swift:7,14,17,20,24,25,28,29,32,33,35,40,41,45,46,48,55,56,57,61,62,64,70,73,75,76,80,81,84,91,95,96,97,101,102,104,106,114,115,120,122,126,127,128,137,138,142,143,149,153,157,158,159,165,167,168,169 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/match/lib/assets/MatchfileTemplate.swift:6,7 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/deliver/lib/assets/DeliverfileDefault.swift:4,7,9,13 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/scan/lib/assets/ScanfileTemplate.swift:3,6,8,13 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/LaneFileProtocol.swift:7,14,16,20,25,26,33,34,38,42,43,46,47,50,51,62,63,65,66,80,81,82,84,85,92,93,94,98,103,104,107,114,116,119,123,124,127,130,135,136,137 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/RubyCommand.swift:7,14,16,19,23,28,29,30,31,35,40,41,44,45,53,54,71,75,76,77,78,84,89,90,93,94,97,99,100,107,108,112,113,117,119,120,126,127,132,138,139,142,146,147,151,152,154,156,157,158 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Fastlane.swift:4,9,11,17,22,23,26,28,30,36,37,40,46,47,50,61,81,92,93,96,106,118,128,129,132,142,155,165,166,169,178,180,190,199,200,203,216,218,232,245,246,249,270,281,282,285,332,380,427,428,431,493,495,561,623,624,627,636,641,642,645,676,692,693,696,706,708,719,729,730,733,739,740,743,756,763,764,767,780,798,811,812,815,822,831,838,839,842,856,858,873,887,888,891,937,939,986,1032,1033,1036,1079,1081,1125,1168,1169,1172,1216,1218,1263,1307,1308,1311,1350,1370,1371,1374,1421,1445,1446,1449,1540,1586,1587,1590,1681,1727,1728,1731,1776,1799,1800,1803,1817,1833,1847,1848,1851,1864,1866,1880,1893,1894,1897,1903,1910,1916,1917,1920,1938,1940,1959,1977,1978,1981,1983,1985,1991,1992,1995,2001,2002,2005,2007,2013,2014,2017,2023,2024,2027,2034,2043,2050,2051,2058,2059,2062,2076,2091,2105,2106,2109,2118,2121,2133,2142,2143,2146,2155,2173,2182,2183,2186,2192,2200,2206,2207,2210,2223,2239,2252,2253,2256,2266,2277,2287,2288,2291,2312,2336,2357,2358,2361,2384,2396,2397,2400,2415,2431,2446,2447,2450,2463,2478,2491,2492,2499,2500,2507,2508,2511,2515,2520,2524,2525,2528,2590,2592,2658,2720,2721,2724,2735,2748,2759,2760,2763,2765,2771,2772,2775,2777,2785,2786,2789,2802,2825,2838,2839,2842,2854,2867,2879,2880,2883,2888,2894,2899,2900,2903,2909,2910,2913,2920,2921,2924,2926,2932,2933,2936,2938,2945,2946,2949,2953,2960,2964,2965,2968,2976,2986,2994,2995,2998,3002,3010,3014,3015,3018,3027,3032,3033,3036,3042,3050,3056,3057,3060,3067,3068,3071,3076,3082,3087,3088,3091,3110,3131,3150,3151,3154,3173,3194,3213,3214,3217,3223,3224,3227,3231,3237,3241,3242,3245,3247,3249,3257,3258,3261,3275,3291,3305,3306,3309,3315,3363,3369,3370,3373,3377,3382,3386,3387,3390,3394,3396,3401,3405,3406,3409,3413,3415,3423,3427,3428,3431,3454,3456,3480,3503,3504,3507,3523,3550,3566,3567,3570,3575,3581,3586,3587,3590,3599,3604,3605,3608,3614,3615,3618,3629,3635,3636,3639,3646,3650,3651,3654,3661,3665,3666,3669,3674,3680,3685,3686,3689,3701,3703,3718,3730,3731,3734,3744,3746,3757,3767,3768,3771,3781,3783,3794,3804,3805,3808,3822,3824,3839,3853,3854,3857,3903,3905,3952,3998,3999,4002,4008,4009,4012,4019,4035,4042,4043,4046,4052,4053,4056,4060,4065,4069,4070,4073,4086,4100,4113,4114,4117,4146,4149,4180,4209,4210,4213,4220,4228,4235,4236,4239,4247,4256,4264,4265,4268,4272,4277,4281,4282,4285,4290,4292,4299,4304,4305,4308,4314,4321,4327,4328,4331,4333,4335,4341,4342,4345,4352,4356,4357,4360,4373,4380,4381,4384,4413,4428,4429,4432,4438,4439,4442,4448,4449,4452,4467,4475,4476,4479,4486,4487,4490,4496,4497,4500,4502,4509,4510,4513,4523,4525,4537,4547,4548,4551,4562,4568,4569,4572,4607,4625,4626,4629,4633,4638,4642,4643,4646,4688,4731,4773,4774,4777,4784,4785,4788,4795,4803,4810,4811,4814,4851,4870,4871,4874,4891,4900,4901,4904,4925,4936,4937,4944,4945,4948,4950,4952,4958,4959,4962,4983,5005,5026,5027,5030,5040,5051,5061,5062,5065,5071,5072,5075,5083,5084,5087,5103,5130,5146,5147,5150,5186,5224,5260,5261,5264,5273,5278,5279,5282,5304,5327,5349,5350,5353,5380,5394,5395,5398,5407,5419,5428,5429,5432,5441,5443,5453,5462,5463,5466,5472,5473,5476,5497,5521,5542,5543,5546,5553,5563,5570,5571,5574,5579,5585,5590,5591,5594,5604,5616,5626,5627,5630,5636,5637,5640,5642,5651,5652,5655,5661,5662,5665,5672,5682,5689,5690,5693,5701,5712,5720,5721,5724,5731,5744,5751,5752,5755,5762,5766,5767,5770,5795,5808,5809,5812,5818,5819,5822,5828,5829,5836,5837,5840,5845,5851,5856,5857,5864,5865,5868,5875,5876,5879,5944,6010,6075,6076,6079,6097,6118,6136,6137,6140,6147,6151,6152,6155,6220,6286,6351,6352,6355,6370,6378,6379,6382,6429,6453,6454,6457,6461,6468,6472,6473,6476,6485,6497,6506,6507,6510,6522,6525,6540,6552,6553,6556,6569,6576,6577,6580,6586,6593,6599,6600,6603,6607,6616,6620,6621,6624,6626,6636,6637,6640,6653,6677,6690,6691,6694,6696,6705,6706,6709,6714,6716,6723,6728,6729,6732,6755,6757,6781,6804,6805,6808,6814,6815,6818,6833,6849,6864,6865,6868,6874,6875,6877,6882,6883,6886,6897,6903,6904,6907,6940,6975,7008,7009,7012,7103,7149,7150,7153,7170,7172,7191,7208,7209,7212,7219,7227,7234,7235,7238,7259,7270,7271,7274,7295,7306,7307,7310,7318,7327,7335,7336,7339,7377,7416,7454,7455,7458,7489,7505,7506,7509,7551,7594,7636,7637,7644,7645,7652,7653,7656,7671,7687,7702,7703,7706,7742,7780,7816,7817,7820,7829,7839,7848,7849,7852,7859,7867,7874,7875,7882,7883,7886,7892,7900,7906,7907,7910,7914,7919,7923,7924,7927,7932,7938,7943,7944,7947,7958,7960,7972,7983,7984,7987,7991,7993,7995,8004,8009,8013,8014,8017,8021,8026,8030,8031,8034,8042,8051,8059,8060,8063,8067,8072,8076,8077,8080,8084,8089,8093,8094,8097,8106,8111,8112,8115,8124,8139,8148,8149,8152,8157,8163,8168,8169,8172,8180,8189,8197,8198,8201,8206,8213,8218,8219,8222,8233,8245,8256,8257,8260,8269,8271,8281,8290,8291,8294,8356,8358,8424,8486,8487,8490,8528,8567,8605,8606,8609,8620,8622,8634,8645,8646,8649,8685,8723,8759,8760,8763,8769,8776,8782,8783,8786,8796,8807,8817,8818,8821,8827,8828,8831,8833,8839,8840,8843,8850,8861,8868,8869,8872,8879,8883,8884,8891,8892,8899,8900,8907,8908,8915,8916,8919,8924,8926,8932,8937,8938,8941,8950,8951,8954,8964,8977,8987,8988,8991,8997,8998,9001,9031,9063,9093,9094,9101,9102,9105,9113,9114,9117,9119,9125,9126,9129,9136,9144,9151,9152,9161,9164,9165,9168,9169,9172,9173,9182,9185,9186,9190,9191,9195,9196,9204 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Fastfile.swift:5,7,9 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/ControlCommand.swift:6,13,15,19,22,27,34,35,36,37,40,47,48,49,50,56,59,62,63,67,68,72,73,74 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/ScanfileProtocol.swift:4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,187,190,191,256,257 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Snapshotfile.swift:2,10,15,16 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Runner.swift:7,14,16,20,24,27,28,37,42,52,53,58,59,60,67,70,71,73,74,75,86,91,93,98,99,100,101,106,108,113,114,117,120,126,127,128,133,136,137,141,142,145,146,154,155,156,157,168,171,172,180,187,191,192,193,197,198,199,204,211,213,214,215,216,228,229,230,233,234,236,240,241,246,247,248,249,252,253,256,257,272,274,275,276 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/ScreengrabfileProtocol.swift:4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,68,92,93 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/RubyCommandable.swift:7,14,16,20,27,28,29,30,35,36,42,43,44 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Plugins.swift:2,10,12 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/GymfileProtocol.swift:4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,134,180,181 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/SocketResponse.swift:7,14,16,23,28,29,36,40,45,46,49,51,52,53,55,60,61,65,66,68,69,70,78,79,81,82,83 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/SnapshotfileProtocol.swift:4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,134,180,181 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/ArgumentProcessor.swift:7,14,16,22,27,29,32,33,36,37,39,44,45,48,50,55,56,59,63,64,68,69,75,76,77,82,86,88,89,90 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Scanfile.swift:2,10,15,16 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Gymfile.swift:2,10,15,16 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/DeliverfileProtocol.swift:4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145,148,151,154,157,160,163,166,169,172,175,178,181,182,244,245 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/PrecheckfileProtocol.swift:4,7,10,13,16,19,22,23,32,33 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/SocketClientDelegateProtocol.swift:7,14,16,21,22 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/RunnerArgument.swift:7,14,16,20,21 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Precheckfile.swift:2,10,15,16 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Appfile.swift:5,8,11,14 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/main.swift:7,14,16,19,23,26,30,31,33,34,39,40,41,44,47,48 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Deliverfile.swift:2,10,15,16 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/MatchfileProtocol.swift:4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,122,164,165 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Screengrabfile.swift:2,10,15,16 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Matchfile.swift:2,10,15,16 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/Actions.swift:2,10,12 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/swift/SocketClient.swift:7,14,17,27,28,33,34,39,47,53,55,57,59,71,72,76,79,82,85,88,89,93,94,98,99,102,105,107,111,112,115,116,121,122,125,126,133,136,138,139,140,143,144,147,148,152,153,163,165,166,167,174,175,178,179,181,182,185,187,190,191,194,195,198,199,203,204,205,214,215,220,224,227,231,235,238,239,244,248,252,256,259,260,261,262,273,277,278,281,282,283,288,289,295,297,298,307,308,313,314,319,320,324,325,326,327,328 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/lib/assets/DefaultFastfileTemplate.swift:8,10,13 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/fastlane/lib/assets/AppfileTemplate.swift:3,5 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/gym/lib/assets/GymfileTemplate.swift:3,6,8,13 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/precheck/lib/assets/PrecheckfileTemplate.swift:3,6,9,10,14,17 ./vendor/bundle/ruby/2.7.0/gems/fastlane-2.155.3/screengrab/lib/assets/ScreengrabfileTemplate.swift:2,5,12,15 ./vendor/bundle/ruby/2.7.0/gems/xcpretty-0.3.0/spec/fixtures/NSStringTests.m:8,11,13,15,17,20,22,24,26,30,34,38,42,44,48,53,55,59,61,62,63 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/buffer.c:23,26,28,33,40,43,46,50,53,54,56,57,61,64,66,69,72,76,80,84,85,86,90,93,98,100,101,105,107,110,114,115,117,118,122,125,127,130,134,143,144,148,152,153,156,158,159,163,165,168,171,172,176,178,179,180,184,186,189,192,193,197,200,203 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/autolink.c:22,25,30,34,37,42,44,47,52,53,55,56,59,62,67,68,72,75,78,83,85,86,89,91,98,99,104,124,130,132,133,136,137,139,140,143,145,148,152,153,164,165,166,175,177,180,183,185,188,191,193,196,199,201,202,211,214,217,220,223,225,226,229,232,235,242,243,246,248,251,254,256,257,266,268,271,274,277,279,284,287,291,293,296,303,306,308 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/html.h:22,25,29,33,40,42,46,60,66,69,72,75,78,80,82 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/rc_markdown.c:22,24,28,30,32,34,36,42,45,48,51,54,57,60,63,66,69,72,75,78,80,81,84,86,87,89,92,95,98,101,104,113,115,120,121,125,128,130,131,133,137,139,142,147,151,154,161,164,166,169,171,172,175,177,181,183 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/houdini_href_e.c:22,26,28,30,74,77,81,84,89,92,96,104,114,120,121,123,124 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/stack.c:22,25,28,30,33,37,40,43,46,48,49,52,55,57,61,62,65,69,72,74,75,78,81,84 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/html_blocks.h:5,32,34,38,59,67,69,73,76,78,80,82,94,96,125,127,134,136,137,142,144,151,153,213,215,217,219,221,224,225,227 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/houdini_html_e.c:22,26,28,30,60,70,73,75,77,82,85,89,95,97,98,99,102,104 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/markdown.c:23,26,31,35,37,40,42,47,51,55,58,61,65,68,71,77,84,92,106,122,138,143,153,157,160,164,172,173,175,176,179,181,182,185,191,194,197,200,201,202,205,208,211,213,214,219,221,224,227,230,231,234,237,239,243,245,246,248,249,252,254,258,265,266,267,268,271,275,277,279,280,283,288,294,296,298,299,302,305,307,312,313,315,316,319,322,323,326,329,336,337,338,344,346,347,350,361,363,364,368,373,375,380,384,389,392,395,396,397,399,400,404,406,409,413,416,419,423,428,429,430,434,435,439,442,449,450,455,456,461,462,466,470,474,479,480,485,488,491,499,500,501,502,506,508,512,515,519,520,523,527,531,532,534,542,543,545,550,555,556,560,563,567,570,576,577,582,583,586,588,589,590,592,593,598,602,605,611,613,617,618,621,626,629,630,631,633,634,638,642,647,651,658,661,663,665,666,671,674,679,683,687,692,698,704,705,707,708,712,715,719,720,726,728,729,733,735,736,740,742,743,745,746,747,751,754,758,760,761,762,766,768,772,778,779,782,787,791,800,801,803,804,808,810,814,820,821,824,829,833,842,843,845,846,850,853,857,862,866,867,869,870,875,878,881,884,889,894,896,898,899,903,908,917,920,921,924,925,928,931,934,936,941,950,952,953,956,957,960,963,966,968,972,973,976,977,980,983,986,988,992,993,996,997,1001,1011,1015,1020,1023,1026,1031,1032,1033,1036,1039,1044,1047,1050,1052,1059,1060,1064,1066,1067,1072,1077,1080,1082,1086,1091,1097,1098,1101,1108,1114,1115,1117,1122,1127,1128,1129,1133,1137,1142,1143,1147,1148,1150,1151,1156,1163,1169,1175,1176,1182,1186,1187,1191,1196,1197,1202,1207,1213,1214,1220,1221,1226,1230,1233,1234,1246,1247,1248,1252,1253,1258,1262,1263,1268,1269,1272,1275,1278,1281,1284,1287,1292,1295,1296,1299,1304,1306,1307,1311,1315,1317,1321,1323,1324,1328,1331,1337,1343,1349,1351,1352,1354,1355,1360,1363,1369,1373,1375,1379,1380,1383,1385,1386,1390,1393,1397,1400,1402,1405,1408,1409,1412,1417,1418,1421,1426,1427,1428,1432,1433,1437,1439,1440,1442,1443,1447,1450,1453,1456,1459,1460,1462,1463,1467,1469,1475,1481,1483,1484,1487,1489,1492,1495,1497,1498,1502,1507,1511,1513,1514,1516,1517,1521,1524,1526,1527,1531,1533,1537,1540,1543,1546,1549,1551,1552,1556,1558,1562,1567,1570,1572,1573,1574,1578,1579,1583,1587,1592,1594,1597,1603,1611,1613,1614,1620,1621,1624,1628,1632,1635,1638,1641,1643,1649,1650,1665,1666,1672,1673,1679,1680,1681,1683,1684,1688,1697,1702,1705,1709,1713,1716,1720,1722,1723,1726,1729,1731,1732,1734,1735,1739,1743,1746,1748,1752,1757,1758,1760,1767,1769,1770,1773,1776,1779,1780,1783,1786,1788,1793,1799,1806,1808,1809,1812,1814,1817,1820,1821,1826,1830,1834,1838,1841,1846,1850,1854,1858,1860,1863,1869,1870,1875,1877,1881,1882,1888,1889,1896,1897,1902,1905,1908,1913,1917,1918,1920,1924,1925,1929,1935,1943,1946,1947,1951,1955,1956,1957,1961,1964,1966,1970,1973,1974,1979,1980,1984,1987,1990,1992,1995,1998,2001,2004,2006,2009,2011,2012,2014,2015,2019,2022,2024,2028,2029,2033,2037,2040,2042,2048,2049,2053,2054,2064,2066,2072,2080,2083,2085,2086,2093,2097,2103,2105,2106,2116,2119,2123,2124,2126,2127,2128,2132,2136,2140,2144,2147,2150,2154,2157,2159,2162,2168,2169,2170,2176,2185,2186,2187,2188,2191,2192,2196,2201,2202,2205,2210,2212,2213,2223,2226,2229,2231,2234,2238,2240,2243,2245,2248,2250,2253,2256,2259,2260,2264,2265,2267,2269,2270,2279,2282,2287,2290,2292,2295,2298,2301,2304,2309,2313,2316,2319,2323,2324,2327,2328,2332,2333,2336,2339,2342,2344,2345,2348,2356,2358,2359,2366,2368,2371,2374,2377,2380,2384,2386,2390,2394,2395,2404,2406,2407,2410,2411,2416,2417,2421,2425,2429,2433,2436,2440,2443,2447,2450,2452,2453,2457,2461,2464,2467,2470,2473,2476,2477,2478,2479,2480,2484,2488,2494,2496,2504,2515,2520,2523,2525,2529,2536,2539,2540,2545,2552,2555,2556,2558,2567,2568,2570,2571,2574,2583,2585,2586,2588,2589,2593,2600,2608,2617,2628,2632,2634,2637,2640,2651,2656,2677,2680,2684,2687,2691,2694,2698,2699,2700,2702,2703,2705,2707,2710,2713,2714,2717,2720,2724,2726,2727,2728,2732,2739,2741,2743,2747,2749,2752,2754,2758,2765,2766,2769,2772,2775,2779,2784,2785,2788,2794,2796,2797,2800,2803,2807,2811,2814,2817,2820,2825,2826,2829,2834,2838,2847,2851,2857,2858,2860,2861,2862,2865,2869,2874,2876,2877,2881,2884,2887,2894,2895,2898,2899,2902,2904,2907,2910,2913,2915 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/autolink.h:22,25,27,31,35,38,42,46,50,52,54 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/buffer.h:23,26,30,34,39,44,52,56,59,62,65,68,71,74,77,80,83,85,87 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/redcarpet.h:22,25,29,31,34,36,38,46,51 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/html_smartypants.c:22,25,30,34,39,50,53,66,85,88,90,91,94,96,97,103,106,111,112,113,115,116,120,122,125,128,133,134,142,146,152,153,156,161,162,168,169,173,180,181,182,183,186,187,191,193,194,198,202,206,207,211,212,216,217,218,221,222,226,230,231,235,236,239,240,244,248,249,253,254,257,260,261,265,269,270,274,275,278,279,283,287,288,291,292,296,302,303,304,310,311,312,318,319,320,321,324,325,329,332,334,335,338,343,346,349,353,354,359,362,365,367,368,371,372,376,378,379,381,388,389,391,392,395,398,408,412,413,414,444,447,450,453,455,459,463,466,470,471,472 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/stack.h:22,25,27,31,37,41,43,45,47 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/html.c:23,30,32,34,37,40,43,45,49,50,54,57,58,61,64,66,67,69,71,72,74,76,77,83,85,88,93,98,105,106,116,117,119,121,122,125,127,129,137,138,142,147,150,153,154,155,161,162,165,167,168,171,176,177,180,189,190,193,196,201,202,205,208,212,214,215,218,224,225,228,231,235,237,238,241,244,248,250,251,254,257,261,263,264,267,271,272,275,277,282,292,299,304,305,306,310,316,318,319,320,323,325,328,334,337,340,341,344,346,349,351,354,358,359,366,367,371,372,375,380,381,384,390,392,394,395,398,401,403,406,408,411,419,422,429,432,435,437,438,441,444,447,451,453,456,461,464,467,468,471,477,478,481,485,486,489,491,494,496,499,501,504,508,509,512,513,516,518,524,525,528,532,536,540,543,544,547,556,557,560,565,566,569,574,575,580,584,588,591,592,595,600,601,602,605,611,612,615,618,619,622,624,626,630,633,635,636,639,642,653,654,655,663,665,666,669,672,673,676,678,685,687,692,698,702,703,707,713,714,716,717,718,721,725,726,729,731,735,736,737,740,755,771,774,778,781,783,784,787,802,818,821,825,831,834,837,841,842,845 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/houdini.h:22,25,27,31,42,46,48,50 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/rc_render.c:22,24,32,33,40,41,48,50,53,55,56,59,61,62,65,67,68,71,73,74,77,79,80,83,86,87,90,93,94,97,99,100,103,105,106,109,111,112,115,117,122,126,130,134,135,137,138,141,143,144,147,149,150,151,157,160,161,164,166,167,170,172,173,176,178,179,182,184,185,188,190,191,194,196,197,200,202,203,206,208,209,212,214,215,218,220,221,224,226,227,230,232,233,236,238,239,242,244,245,251,253,254,257,259,260,263,265,266,269,271,272,275,281,282,285,288,292,293,308,324,327,331,346,362,365,369,371,373,376,377,379,381,382,384,388,389,391,394,398,403,408,412,413,414,418,419,421,424,425,427,431,433,436,439,443,447,451,455,459,463,467,470,473,476,478,479,482,486,487,489,490,492,496,498,501,504,508,511,512,515,522,531,532,534,535,537,540,542,544,547,550,551,553,555,559,562,565,568 ./vendor/bundle/ruby/2.7.0/gems/redcarpet-3.5.0/ext/redcarpet/markdown.h:23,26,29,33,37,44,52,68,85,102,106,111,113,117,121,125,132,135,138,140,142 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Type.h:33,36,39,43,45,47,52,55,57,59,61 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/rbffi_endian.h:3,7,9,22,35,47,53,57,59 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/MappedType.h:29,32,33,35,39,40,46,48,50,52,53,55,57,59 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Thread.c:29,37,50,59,61,64,71,72,75,78,87,88,91,97,98,101,104,107,108,111,113,115,117,118,121,123,125,128,134 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Buffer.c:30,43,47,54,60,62,65,68,72,74,75,78,82,83,85,86,98,102,104,108,114,115,118,121,122,126,127,130,131,133,134,142,145,150,155,156,160,163,165,166,169,171,172,175,179,182,189,191,192,201,204,206,208,209,219,221,222,230,233,235,237,239,240,241,247,260,262,270,273,278,281,282,286,290,291,293,294,295,299,301,306,307,309,310,313,315,316,319,321,328,334,356,364,365 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Types.h:30,33,37,61,64,67,70,73,77,80,83,85,87,89 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/LastError.h:29,32,36,37,39,41,43,45,47 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/ArrayType.h:29,32,36,40,41,49,52,53,55,57,59 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/DynamicLibrary.c:29,47,49,55,61,64,65,69,71,83,86,89,90,101,103,104,115,118,120,123,131,139,143,144,147,151,154,156,157,164,168,169,172,177,180,181,185,191,192,193,196,199,201,204,210,212,213,214,223,226,227,230,233,240,242,243,246,249,250,258,261,266,267,270,284,317,322,337,338,339 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Variadic.c:29,34,44,48,57,62,69,70,75,77,78,81,84,89,91,92,95,99,100,103,112,115,121,129,134,135,137,139,145,149,153,154,160,162,163,166,179,182,191,194,197,199,213,218,221,222,223,227,229,230,234,235,238,253,254,257,259,269,273,274,276,278,281,282,284,285,286,289,292,294,297,298 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/StructByValue.h:29,32,35,39,45,47,49,51,53,55 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/AbstractMemory.h:29,32,40,43,47,48,54,56,61,80,87,88,91,93,95,97,100,104,105,106,109,112,113,114,117,120,121,122,125,161,162,163,167,168,169,171,173,175 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/ffi.c:30,34,36,53,55,57,59,62,70,72,75,93 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/ClosurePool.h:28,31,34,42,44,48,50,53,55,57 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Pointer.c:29,43,45,48,51,54,57,60,61,68,70,71,74,77,81,83,84,98,102,104,115,116,124,126,130,136,138,139,141,143,144,157,160,166,167,171,172,176,177,182,183,189,192,194,195,198,202,205,207,213,215,216,226,229,231,233,234,245,247,248,256,259,261,267,268,270,271,280,282,284,286,287,296,298,300,303,304,306,307,315,317,319,321,322,328,340,342,350,353,358,361,362,366,370,371,373,374,375,376,384,386,388,393,395,398,400,401,403,404,407,409,411,413,414,423,425,428,430,431,439,441,443,445,446,447,450,454,456,457,460,462,463,466,469,484,501,507,508 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/MemoryPointer.c:30,44,45,50,52,54,57,59,60,63,68,70,71,82,85,88,91,92,94,95,98,101,103,105,110,117,120,121,123,124,127,129,131,136,138,139,141,142,145,149,151,152,161,166,168,169,172,174,176,192,196,197 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Call.h:32,35,37,41,47,51,73,75,79,82,84,86,89,98,101,103,105,107 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Platform.c:29,45,49,51,54,70,71,74,83 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/LongDouble.c:5,9,13,16,20,21,25,26,29,30,33,36,37,40,41,47,48,51,52,53,56,59,60,63,65 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/MethodHandle.h:29,32,36,39,40,44,45,50,52,54,56 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Function.c:29,38,51,57,60,74,84,93,95,96,101,104,106,110,112,129,130,141,142,145,148,150,156,158,159,162,166,167,170,173,174,177,178,180,181,198,199,204,206,215,225,226,231,233,235,236,244,247,248,251,253,254,257,260,267,268,269,273,274,285,286,288,289,292,294,296,298,300,306,312,313,314,318,320,326,330,331,333,335,336,345,347,349,351,352,362,365,367,371,372,376,377,380,381,387,390,391,394,396,397,406,408,410,412,414,415,418,420,422,424,425,433,435,437,440,441,444,446,447,450,452,458,460,466,470,473,479,482,487,491,495,497,504,506,511,512,513,519,522,525,527,534,535,536,538,539,543,545,547,549,554,555,559,560,562,564,565,568,570,575,576,580,582,584,586,589,590,594,595,597,599,600,603,605,610,612,615,617,619,629,631,632,634,637,640,641,644,646,656,662,666,667,717,723,727,728,733,734,736,737,739,745,746,787,789,793,797,799,802,804,808,810,814,817,820,821,824,826,830,831,833,834,837,839,842,844,845,848,851,856,857,859,860,863,869,872,892,902 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Struct.h:30,33,38,42,48,52,54,58,61,64,72,78,83,86,91,96,100,106,108,110,112 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/rbffi.h:29,32,34,38,40,42,50,52,54 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Thread.h:29,32,41,45,46,52,63,71,75,77,79,81 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/MappedType.c:29,31,34,37,38,43,45,48,50,52,58,60,61,70,72,75,76,79,80,83,84,89,90,94,96,97,100,103,104,112,115,117,118,125,127,129,131,132,139,141,143,145,146,149,154,156,160,167,168 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Type.c:29,33,41,42,47,49,51,56,59,62,65,67,68,77,80,82,91,92,94,95,103,105,107,109,110,118,120,122,124,125,133,136,138,141,143,144,147,150,152,156,158,159,162,165,166,174,177,181,183,184,187,189,192,203,206,207,208,211,214,215,216,219,228,230,232,233,236,237,240,249,260,304,311,317,321,324,332,337,347,378,379 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Types.c:31,42,44,45,48,62,73,78,81,88,94,95,100,105,107,108,116,119,120,124,126,127,131,132,133,136,138,139 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/compat.h:29,32,34,38,42,46,50,54,58,66,70,77,81 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/StructLayout.c:30,32,54,56,60,65,67,68,71,74,78,80,81,84,87,88,99,103,105,107,111,112,114,118,119,126,133,140,141,143,144,152,156,157,165,169,170,178,182,183,191,194,196,197,205,209,210,219,221,226,227,229,230,240,242,247,248,250,252,253,262,264,266,268,269,281,284,286,293,294,296,298,299,302,305,306,315,319,322,325,328,329,339,342,343,346,349,352,359,366,369,370,377,378,381,384,385,387,391,395,396,400,403,404,407,411,412,414,415,416,419,422,431,433,434,445,449,463,470,471,474,476,479,482,483,487,488,491,492,493,498,499,502,503,505,506,515,521,523,528,529,533,534,539,542,543,545,546,549,551,553,555,556,564,566,568,570,571,579,581,583,585,586,594,596,598,600,601,604,612,613,616,621,622,623,626,628,636,643,650,657,664,671,678,688,691,694,702,703,704 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/DynamicLibrary.h:28,31,35,40,44,48,52,57,61,65,69,73,78,82,86,90,92,94,96,98 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/ArrayType.c:29,33,38,40,43,46,48,55,57,58,61,63,64,67,71,72,73,83,86,88,92,97,100,101,103,104,112,114,116,118,119,127,129,131,133,134,137,139,141,156,161,162 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/win32/stdbool.h:3,7 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/win32/stdint.h:8,15,21,25,29,33,37,41,50,59,62,65,68,71,76,83,87,94,98,105,110,116,120,124,132,135,143,146,149,153,157,161,165,173,177,180,185,187,190,196 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/LastError.c:30,44,46,51,57,64,68,70,72,75,77,79,81,82,83,86,89,90,93,95,96,99,102,105,108,110,111,114,116,119,120,122,123,125,126,134,136,137,146,148,150,151,160,161,167,169,170,180,183,185,186,189,196,201,203,204,207,214,217,222,228,229 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Struct.c:30,53,57,65,66,73,75,78,81,84,86,87,90,93,96,98,99,109,113,115,117,123,124,127,128,130,136,137,139,140,148,151,156,157,160,173,174,178,179,181,182,185,189,190,194,195,197,198,201,205,206,210,211,213,214,217,220,223,224,227,228,230,231,234,237,240,241,243,244,247,252,253,254,257,260,261,262,265,269,275,276,277,279,280,281,284,287,294,298,299,301,302,310,313,315,319,322,327,328,329,339,342,344,348,350,352,360,361,364,365,367,368,377,381,386,387,388,392,396,397,401,403,404,412,414,416,418,419,428,431,436,437,440,442,443,451,453,455,457,458,466,468,470,472,473,479,481,485,490,492,493,494,497,500,504,506,507,510,513,514,524,526,530,535,539,540,542,544,545,553,555,557,559,560,563,566,567,569,570,578,580,582,591,592,597,600,603,604,605,614,616,618,623,626,630,634,635,638,642,644,648,651,652,654,655,662,664,666,668,671,672,674,675,683,687,690,691,694,695,697,698,707,710,712,716,717,720,722,723,731,733,735,738,739,740,743,745,747,767,773,780,781,786,793,796,799,803,813,816,824,825 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Platform.h:29,32,36,38,39,41,43,45 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Call.c:31,65,70,80,82,88,91,93,98,102,108,109,110,112,116,117,122,123,126,128,135,136,140,145,148,149,153,158,161,162,166,170,174,181,182,186,193,194,198,205,206,210,217,218,222,229,230,234,241,242,246,253,254,258,265,266,270,277,278,282,289,290,294,295,299,302,303,307,315,316,324,327,331,334,335,336,337,340,343,345,346,349,351,353,354,357,361,362,365,371,373,376,387,391,395,397,400,404,408,409,412,413,416,417,420,422,423,426,428,430,432,435,437,439,441,443,445,449,451,452,455,456,459,461,462,463,466,470,471,477,478,481,483,484,485,488,492,493 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Function.h:29,32,36,42,44,46,50,55,74,76,81,83,85,87 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/MethodHandle.c:28,52,56,64,65,67,71,79,80,81,84,88,89,93,95,96,99,105,106,111,113,114,117,120,121,122,124,126,127,130,132,134,137,139,148,149,151,152,153,156,158,159,166,169,177,179,180,182,183,184,187,189,192,217,220,223,226,228,229,231,235,262,265,268,269,271,275,277,280,285,286,287,289,290,293,297,298,302,303,305,306,309,314,316,317,320,322,323,325,326,329,333,335,339,344,349,350,352 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/LongDouble.h:29,32,34,38,41,43,45,47 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/AbstractMemory.c:31,41,44,51,60,65,68,73,75,77,133,179,180,185,187,188,191,193,194,201,211,214,216,217,220,222,223,226,228,229,232,234,235,242,250,264,267,282,283,284,286,289,291,292,295,297,298,300,301,309,313,314,322,324,326,328,329,340,344,347,350,353,355,360,361,362,372,376,379,382,385,388,393,394,395,407,413,418,422,423,435,440,445,448,451,453,457,458,465,467,468,469,471,472,482,485,489,490,492,493,494,507,510,514,517,520,522,523,535,538,541,544,546,547,563,568,570,576,581,582,585,587,589,590,600,602,603,615,618,622,623,625,626,634,636,638,640,641,651,654,656,658,660,661,664,666,667,670,672,674,676,678,679,682,687,688,691,692,695,703,704,705,708,710,715,716,718,719,722,724,725,727,728,747,750,786,790,791,810,816,834,839,1082,1090,1093,1100,1104,1105 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/MemoryPointer.h:30,33,40,44,49,51,53 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/include/ffi_common.h:5,9,12,16,18,49,58,62,67,76,81,86,87,92,101,105,108,113,140,142,148,150,152 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/include/ffi_cfi.h:3,6,9,11,31,33,53 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c:6,8,10,12,15,17,19,21,24,26 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/float3.c:6,8,11,13,15,17,18,20,22,23,25,30,34,41,45,49,51,53,55,62,66,68,70,72,74 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c:6,8,10,12,14,15,17,31,35,41,47,53,55 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/many2.c:6,8,10,12,14,21,23,24,28,30,31,34,41,44,47,49,52,54,57 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c:6,9,11,13,15,29,37,42 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c:6,10,14,16,19,21,22,24,30,32,36,44,49,52,57,59,62,63,66 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c:6,9,11,16,18,22,24,25,27,33,35,39,48,51,55,59,61,64,67 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c:6,9,12,18,25,26,37,42,46,49,52,57 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c:6,8,10,15,17,18,20,32,36,38,40,46 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c:6,8,10,15,17,18,20,32,36,38,40,46 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h:7,11,15,17,19,34,39,44,53,55,57,63,65,74,88,93,115,124,135 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c:6,8,10,12,14,15,17,28,32,37,42,47,49 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c:6,9,12,14,18,20,27,30,35,48,49,52,56,59,62,66,69,74,78,83,90,96,98,101,107,110,112,118,123,125 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/float4.c:6,9,12,14,18,20,22,24,25,27,34,37,41,43,47,49,53,55,59,61,62 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c:6,10,14,16,19,21,22,24,30,32,36,44,47,50,53,56,58,61,64 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c:6,9,11,13,14,16,21,23,26,30,33,36,38 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c:6,9,11,13,14,16,22,25,29,33,37,41,43,44 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c:6,9,14,19,24,26,30,31,32,34,42,46,54,62,70,80,85,86,87,89,90,97,104,107,109,111,112,114 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c:6,10,12,13,15,21,26,29,32,36,38 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c:6,10,16,18,23,25,26,28,34,36,40,50,53,56,61,66,68,73,78,81 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c:6,9,11,15,17,20,22,23,25,32,36,44,47,50,53,56,58,61,64,67 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c:6,11,13,14,16,23,30,34,38,43 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c:7,9,11,13,15,20,23,27,29,32,34 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/float1.c:6,10,12,14,18,20,22,24,25,27,34,37,41,43,47,49,51,53,57,59,60 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c:6,10,12,13,15,21,24,28,30,33,34,36,39,41 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c:6,9,11,14,16,21,24,28,30,34,36 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c:6,9,11,13,15,29,37,42 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/many.c:6,9,13,15,22,24,25,27,34,36,40,41,45,47,54,59 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c:6,9,13,33,35,36,38,46,48,53,58,59,60,64,66,78 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c:6,9,12,14,18,20,27,30,35,46,47,50,54,57,60,64,67,72,76,81,88,94,96,99,105,108,110,116,121,123 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c:6,8,10,12,14,15,17,28,32,37,42,47,49 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c:6,10,12,18,21,25,31,36,44,46 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c:6,10,15,17,21,23,24,26,32,34,38,47,50,53,57,61,63,67,71,74 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/negint.c:6,8,10,12,13,15,16,18,23,27,34,38,42,44,46,48,50,52 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c:6,9,11,13,15,21,24,28,31,34,36 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c:6,9,11,13,15,20,24,27,29,32,36,38,40,42,43,45,47,53,62,68,77,84,92,105,107 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c:5,8,13,20,25,27,32,34,35,37,44,49,53,61,71,80,83,109,120,122,124,127 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c:6,9,11,13,15,20,25,31,36 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/float.c:6,8,10,12,14,16,18,19,21,26,31,40,44,49,51,53,55,57,59 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c:6,9,11,14,16,18,20,21,23,30,34,41,44,48,51,53,55,57,60 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c:6,10,12,13,15,21,26,29,32,36,38 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c:6,9,11,15,17,20,22,23,25,31,33,37,45,48,51,54,57,59,62,65,68 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c:6,9,11,13,15,20,23,27,29,33,35 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c:6,9,12,14,18,20,27,30,45,50,53,56,59,62,66,77,78,81,85,88,91,95,98,109,114,118,123,130,146,148,151,157,160,162,173,189,194,196 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/float2.c:7,10,12,14,16,17,19,26,29,33,35,42,45,52,59,61 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c:6,9,12,14,18,20,27,30,35,44,45,48,52,55,58,62,65,70,74,79,86,92,94,97,103,106,108,114,119,121 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c:6,9,11,13,15,30,38,43 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c:6,9,12,14,17,19,25,34,42,45,49 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c:6,11,13,15,16,18,28,37,41,44,51,56,59 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c:6,9,11,16,18,20,22,23,25,31,33,37,46,49,52,56,58,60,61,64 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c:3,5,10,12,16,18,19,21,27,37,42,45,49,53,55,58,61 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c:6,9,13,27,34,36,37,39,46,48,52,53,57,59,70 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c:6,8,12,14,19,20,41,42,48,50,54,60,67,71,76,84,86 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c:6,8,14 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c:6,8 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c:8,11,16,21,26,28,30,34,38,40,41,45,49,53,55,56,58,68,72,74,79,84,89,93,97,101,102,107,110,115,121,123,129,131 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c:6,10,12,16,18,25,29,34,39,40,43,48,50,53,56,60,62,67,71,76,83,89,92,96,99,105,107,112,114 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c:7,9,11,16,19,21,24,26,28,29,33,34,36,39,41,42,44,52,56,61,65,69,72,76,81,83,88,90 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c:6,9,15,18,20,24,26,28,29,33,34,36,39,41,42,44,52,56,61,66,70,73,77,82,84,89,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c:7,10,16,19,21,25,29,30,34,36,39,41,42,44,52,56,61,66,70,73,77,82,84,89,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c:7,9,11,17,20,22,26,29,31,32,36,38,41,43,44,46,54,58,63,68,72,75,79,84,87,93,95 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c:8,11,16,21,23,25,29,33,35,36,40,43,46,48,49,51,60,63,65,70,75,79,83,84,88,91,95,101,102,104,111 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c:7,10,20,23,25,33,38,40,41,45,46,48,51,53,54,56,64,68,73,82,86,89,93,99,107,109,115,117 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/err_bad_abi.c:6,8,10,15,17,22,24,27,30,32,34,36 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c:7,10,19,22,24,31,36,38,39,43,44,46,49,51,52,54,62,66,71,79,83,86,90,96,103,105,111,113 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c:6,8,10,12,15,17,19,20,22,24,30,34,38,45 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c:6,9,12,14,17,19,21,27,30,34,36,41,43 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c:8,11,18,21,23,28,32,34,35,39,40,42,45,47,48,50,58,62,67,73,77,80,84,89,91,96,98 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c:8,11,16,21,23,25,29,33,35,36,40,43,46,48,49,51,60,63,65,70,75,79,83,84,88,91,95,101,103,109,111 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c:6,7,8,11,14,18,20,22,28,31,35,37,42,44 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c:7,8,11,18,21,23,28,32,34,35,39,40,42,45,47,48,50,58,62,67,73,77,80,84,89,91,96,97,99 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c:6,9,12,16,18,20,26,29,33,35,40,42 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c:8,11,16,19,21,24,26,28,29,33,34,36,39,41,42,44,52,56,61,65,69,72,76,81,83,88,90 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c:8,11,14,24,35,36,40,42,48,66,70,73,81 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c:7,10,14,27,40,41,42,49,51,57,75,79,82,90 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c:6,9,12,14,16,18,20,21,22,25,28,33,35,36,37,40,42,51,56,62,68,72,77,79,84,86 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c:6,9,15,18,20,24,26,28,29,33,34,36,39,41,42,44,52,56,61,66,70,73,77,82,84,89,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c:7,10,16,22,27,31,33,40,48,50,51,55,59,63,64,66,67,69,79,85,90,95,100,105,110,114,115,120,123,128,137,139,152 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c:7,10,17,22,24,29,36,38,39,43,45,50,52,53,55,63,69,74,80,86,89,95,100,102,111,113 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c:6,9,12,16,18,20,26,29,33,35,40,42 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c:7,10,18,21,23,29,30,36,37,41,43,46,48,49,51,59,63,68,75,79,82,86,92,94,100,102 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c:8,11,16,22,27,29,31,36,40,42,43,47,51,55,57,58,60,70,74,76,81,86,91,95,100,104,105,110,113,118,124,126,132,134 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c:7,10,17,20,22,27,31,33,34,38,39,41,44,46,47,49,57,61,66,72,76,79,83,88,90,95,97 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c:6,9,12,16,18,20,26,29,33,35,40,42 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double.c:6,9,12,14,17,19,21,27,30,34,36,41,43 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h:7,11,15,17,19,34,39,44,53,55,57,63,65,74,88,93,115,124,135 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c:8,11,16,21,23,25,29,33,35,36,40,43,46,48,49,51,60,63,65,70,75,79,83,84,88,91,95,101,103,109,111 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c:7,10,16,19,21,25,29,31,32,36,37,39,42,44,45,47,55,59,64,69,73,76,80,85,89,91,96,98 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c:8,11,22,27,29,38,41,43,44,48,50,55,57,58,60,68,74,79,89,95,98,104,110,112,122,124 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c:6,9,15,18,20,24,26,28,29,33,34,36,39,41,42,44,52,56,61,66,70,73,77,82,84,89,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c:7,11,13,66,119,130,151,153,154,157,208,215,216,219,222,226,230,243,245,250,263,265,290,293,295,311,313,339,341 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/problem1.c:6,9,15,17,22,23,26,28,29,32,35,38,40,41,42,44,52,56,61,66,70,73,81,83,88,90 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large2.c:8,11,14,32,38,40,56,60,62,63,66,68,73,75,76,78,86,92,97,114,120,123,129,136,138,146,148 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c:8,11,12,15,25,36,37,42,48,66,70,73,81 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c:7,10,17,20,22,27,28,33,34,38,40,43,45,46,48,56,60,65,71,75,78,82,87,89,94,96 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c:6,9,15,18,20,24,30,32,33,37,38,40,43,45,46,48,56,60,65,70,74,77,81,86,88,93,95 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c:6,9,12,14,17,19,21,27,30,34,36,41,43 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c:8,11,15,28,47,48,49,58,60,66,69,73,76,80,83,90,92 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c:7,8,9,12,18,21,23,27,31,32,36,38,41,43,44,46,54,58,63,68,72,75,79,84,86,91,93 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c:9,12,17,20,22,25,28,30,31,34,36,39,41,42,44,52,56,61,65,69,72,76,81,82,84,89,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c:8,9,10,11,14,18,29,41,42,43,48,50,56,74,78,82,85,87,95 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c:6,11,13,23,25,28,30,31,35,44,47,48,50,57,66,76,79,89,94,96,103,105 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c:6,10,12,16,19,21,22,24,30,34,38,42,46,51,54,59,61 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c:7,10,16,19,21,25,28,30,31,34,36,39,41,42,44,52,56,61,66,70,73,77,82,86,88,93,95 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c:8,11,17,20,22,26,30,32,33,37,38,40,43,45,46,48,56,60,65,70,74,77,81,86,88,93,95 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c:7,10,16,22,27,32,34,41,50,52,53,57,62,67,68,70,71,73,83,90,95,100,105,110,115,119,120,126,129,135,144,146,161 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c:9,12,17,22,27,29,35,37,44,46,47,49,51,56,58,62,65,70,75,80,84,88,92,101,112,121 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c:6,9,11,21,25,27,35,41,43,44,47,49,57,62,64,65,69,71,74,76,77,79,87,91,96,105,109,112,116,122,124,130,132 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c:6,9,15,18,20,24,26,28,29,33,34,36,39,41,42,44,52,56,61,66,70,73,77,82,84,89,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c:8,11,16,19,21,24,26,28,29,33,34,36,39,41,42,44,52,56,61,65,69,72,76,81,83,88,90 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c:8,11,16,21,23,25,29,33,35,36,40,43,46,48,49,51,60,63,65,70,75,79,83,84,88,91,95,101,102,104,110,112 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c:6,9,11,13,15,17,19,20,21,24,26,29,31,32,33,35,37,45,48,52,56,60,65,67,72,74 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c:8,12,24,30,32,42,45,47,48,51,53,58,60,61,63,71,77,82,93,99,102,108,114,116,123,125 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c:8,9,10,11,14,18,29,41,42,43,48,50,56,74,78,81,89 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c:6,9,12,14,17,18,20,22,28,31,35,42 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c:6,10,12,16,19,21,22,24,30,34,38,42,46,51,54,59,61 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c:8,11,23,29,31,41,44,46,47,50,52,57,59,60,62,70,76,81,92,98,101,107,113,115,122,124 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c:6,7,11,17,20,22,26,28,30,31,35,36,38,41,43,44,46,54,58,63,68,72,75,79,84,86,91,93 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c:6,9,15,18,20,24,27,29,30,33,35,38,40,41,43,51,55,60,65,69,72,76,81,83,87,92,94 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c:7,10,18,21,23,29,34,36,37,41,42,44,47,49,50,52,60,64,69,76,80,83,87,93,99,101,107,109 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c:6,8,10,15,18,20,21,25,27,28,30,32,36,39,41,46,50,52,56,58,61,64,66 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c:7,10,12,22,26,28,36,42,44,45,49,51,54,56,57,59,67,71,76,85,89,92,96,102,104,110,112,113,114,115 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c:6,9,16,18,23,24,28,30,32,34,35,36,38,45,47,52,58,61,64,66,70 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c:8,10,12,16,29,48,49,50,59,61,67,70,73,77,80,87,89 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c:8,11,16,21,23,25,29,32,34,35,39,42,45,47,48,50,59,62,64,69,74,78,82,83,87,90,94,100,102,108,110 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c:8,11,16,21,26,28,30,34,38,40,41,45,49,53,55,56,58,68,72,74,79,84,89,93,97,101,102,107,110,115,121,123,129,131 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large.c:8,11,14,31,37,39,54,58,60,61,64,66,71,73,74,76,84,90,95,111,117,120,126,133,135,143,145 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c:6,9,12,14,16,18,20,21,22,25,27,32,34,35,36,39,42,46,48,56,61,67,73,77,82,84,89,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar_va.c:6,9,11,14,16,18,19,21,23,29,33,37,44 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c:9,12,17,20,22,25,28,30,31,34,36,39,41,42,44,52,56,61,65,69,72,76,81,83,88,90 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c:6,9,11,13,15,17,19,20,21,24,26,29,31,32,33,35,37,45,48,52,56,60,65,67,72,74 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c:6,9,15,18,20,24,26,28,29,33,34,36,39,41,42,44,52,56,61,66,70,73,77,82,84,89,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_float_double.c:6,11,13,16,21,26,28,30,32,34,42,43,55 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c:6,8,10,16,19,21,25,27,29,30,34,35,37,40,42,43,45,53,57,62,67,71,74,78,83,85,90,92 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c:8,11,16,21,26,28,30,34,38,40,41,45,49,53,55,56,58,68,72,74,79,84,89,93,97,101,102,107,110,115,121,123,129,131 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c:8,11,16,19,21,24,26,28,29,33,34,36,39,41,42,44,52,56,61,65,69,72,76,81,83,88,90 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c:6,8,10,12,15,17,19,20,22,24,30,34,38,45 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_args.c:6,11,13,16,21,23,26,28,31,33,35,39,41,49,51,56,57,61,63,70 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c:6,9,12,14,16,18,20,21,22,25,28,33,35,36,37,40,42,51,56,62,68,72,77,79,84,86 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c:6,10,16,19,21,25,27,29,30,34,35,37,40,42,43,45,53,57,62,67,71,74,78,83,85,90,92 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c:8,11,14,24,35,36,37,41,43,49,67,71,74,82 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort_va.c:6,9,11,14,16,18,19,21,23,29,33,37,44 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c:6,9,11,17,19,20,22,32,35,37,42,44,45,47,57,60,62,67,69,71,72,76,79,88,91,93,94,96,103,108,112,116,119,123,126,131,133,135,140,142 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c:6,9,11,13,15,17,19,20,21,24,26,29,31,32,33,35,37,45,48,52,56,60,65,67,72,74 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c:8,9,10,13,17,20,22,24,26,28,29,33,34,36,39,41,42,44,52,56,61,64,68,71,75,80,82,87,89 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c:6,9,12,17,22,23,24,26,28,34,40,44,47,50,53,55 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c:6,7,8,11,17,20,22,26,28,30,31,35,36,38,41,43,44,46,54,58,63,68,72,75,79,84,86,91,93 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c:6,9,11,13,18,20,21,25,28,30,31,33,40,45,49,53,56,60,65,67,72,74 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c:6,10,13,15,18,20,22,28,31,40,45,47 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c:7,10,15,18,20,23,25,27,28,32,33,35,38,40,41,43,51,55,60,64,68,71,75,81,86,88 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c:2,4,6,10,11,13,15,19,22,24,26,28 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c:2,4,6,8,13,16,17,19,22,24,26,28,30,31 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c:4,9,14,18,20,27,36,39,41,55,56,58,60,64,66,70,75,78,85,104,105,108,112,115,117,118,121,124,132,135,138,139,143,149,153,157,158,162,168,172,176,177,181,187,191,195,196,200,206,210,214,215,219,225,229,233,234,238,240,243,245,251,255,258,259,263,269,273,276,277,281,287,291,294,295,299,305,309,312,313,317,323,327,330,331,335,341,345,348,349,353,356,358,360,365,369,372,373,377,383,387,390,391,395,401,405,408,409,413,419,423,426,427,431,437,441,444,445,450,453,455,461,465,472,473,478,481,487,495,499,504,505,509,517,521,524,525,529,535,539,542,543,547,553,557,560,561,565,571,575,578,579,583,589,593,598,599,603,611,615,618,619,623,629,633,636,637,641,647,651,654,655,659,665,669,672,673,677,683,687,690,691,695,701,705,708,709,713,719,723,726,727,731,737,741,744,745,749,755,759,762,763,767,773,777,780,781,785,791,795,798,799,803,809,813,816,817,821,827,831,834,835,839,845,849,852,853,857,863,867,870,871,875,881,885,888,889,893,899,903,906,907,911,917,921,924,925,930,933,935,940,949,951,952,955,958,963,972,974,975,978,981,986,995,997,998,1001,1004,1009,1018,1020,1021,1024,1027,1032,1041,1043,1044,1047,1050,1055,1064,1066,1067,1070,1073,1078,1087,1089,1090,1093,1096,1101,1110,1112,1113,1116,1119,1124,1133,1135,1136,1139,1141,1144,1154,1160,1170,1173,1174,1183,1193,1196,1197,1206,1216,1219,1220,1229,1239,1242,1243,1252,1262,1265,1266,1275,1285,1288,1289,1299,1309,1313,1314,1323,1333,1336,1337,1342,1344,1345,1348,1357,1362,1367,1373,1377,1380,1381,1390,1394,1397,1398,1407,1411,1414,1415,1424,1428,1431,1432,1441,1445,1448,1449,1458,1462,1465,1466,1475,1479,1482,1483,1492,1496,1499,1500,1509,1513,1516,1517,1526,1530,1533,1534,1543,1547,1550,1551,1560,1564,1567,1568,1577,1581,1584,1585,1594,1598,1601,1602,1611,1615,1618,1619,1628,1632,1635,1636,1645,1649,1652,1653,1662,1666,1669,1670,1679,1683,1686,1687,1696,1700,1703,1704,1713,1717,1720,1721,1726,1727,1730,1733,1743,1745 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h:3,8,13,16,19,21,35,49 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c:18,20,27,36,39,41,55,56,58,60,64,66,70,75,78,83,96,97,99,102,106,107,110,118,125,127,137,149,165,189,192,201,211,223,239,263,294,297,306,316,328,344,367,370,381,384,396,408,421,433,444,456,469,480,490,501,513,526,542,559,580,602,612,623,635,648,664,681,702,723,726,734,742,750,758,766,774,782,790,797,800,812,824,836,848,860,873,885,901,904,914,925,937,950,964,979,995,1024,1053,1065,1078,1092,1107,1123,1140,1152,1165,1179,1194,1210,1226,1227,1253,1254,1256,1266,1269,1275,1280,1283,1286,1293,1298,1303,1310,1316,1321,1328,1334,1339,1346,1352,1357,1364,1370,1375,1382,1388,1393,1394,1397,1404,1410,1415,1422,1428,1433,1440,1446,1451,1458,1464,1469,1476,1482,1487,1494,1500,1505,1506,1507,1510,1517,1523,1528,1535,1541,1546,1553,1559,1564,1571,1577,1582,1589,1595,1600,1601,1604,1611,1617,1622,1623,1630,1637,1643,1648,1655,1661,1666,1673,1679,1684,1691,1697,1702,1709,1715,1720,1727,1733,1738,1745,1751,1756,1763,1769,1774,1781,1787,1792,1799,1805,1810,1817,1823,1828,1835,1841,1846,1853,1859,1864,1871,1877,1882,1889,1895,1900,1907,1913,1918,1925,1931,1936,1943,1949,1954,1961,1967,1972,1979,1985,1990,1997,2003,2008,2015,2021,2026,2033,2039,2044,2045,2048,2054,2065,2069,2071,2073,2079,2090,2094,2096,2098,2104,2115,2119,2121,2123,2129,2140,2144,2146,2148,2154,2165,2169,2171,2173,2179,2190,2194,2196,2198,2204,2215,2219,2221,2223,2229,2240,2244,2246,2248,2254,2265,2269,2271,2272,2283,2290,2302,2307,2314,2326,2331,2338,2350,2355,2362,2374,2379,2386,2398,2403,2410,2422,2427,2435,2447,2452,2460,2472,2479,2480,2481,2483,2492,2497,2502,2509,2515,2520,2527,2533,2538,2545,2551,2556,2563,2569,2574,2581,2587,2592,2599,2605,2610,2617,2623,2628,2635,2641,2646,2653,2659,2664,2671,2677,2682,2689,2695,2700,2707,2713,2718,2725,2731,2736,2743,2749,2754,2761,2767,2772,2779,2785,2790,2797,2803,2808,2815,2821,2826,2833,2839,2844,2851,2857,2862,2869,2875,2880,2881,2882,2884,2885 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c:18,21,23,25,30,66,78,83,90,107,118,122,125,128,129,132,137,139,144,146,151,153,158,160,165,168,174,175,178,183,185,190,192,197,200,205,208,213,217,222,223,226,231,233,238,240,245,248,253,257,262,263,266,271,272,275,280,282,287,289,294,296,301,303,308,310,315,316,318,323,325,330,331,333,338,340,345,347,352,354,359,362,367,370,375,378,383,386,391,392,394,399,401,406,408,413,415,420,423,428,431,436,440,445,449,454,455,458,462,464,468,470,474,476,480,482,486,488,492,494,498,500,504,506,510,511,514,520,522,528,530,536,538,544,546,552,554,560,562,568,570,579,580,585,587,592,594,599,601,606,608,613,615,620,622,627,629,634,642,647,652,657,658,660,665,667,672,674,679,681,686,688,693,695,700,701,703,708,710,715,717,722,724,729,731,736,738,743 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/fficonfig.h:3,6,11,14,17,20,23,26,29,32,35,38,42,45,48,51,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,109,112,115,118,121,124,127,131,134,137,140,143,146,149,152,155,158,161,164,172,175,178,182,185,197,200,201,219 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h:4,12,15,24,26,29,34,36,38,40,43,46,50,55,57,59,61,65,68,72,74,99,102,104,110,128,136,144,154,167,175,185,199,205,216,222,234,236,244,248,256,270,271,277,281,285,291,298,300,302,321,327,330,342,349,361,363,367,370,372,375,377,385,387,389,393,396,398,401,403,409,416,422,429,431,433,439,442,445,447,449,456,464,470,474,477,479,481,505,506,508,510 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/m68k/ffitarget.h:5,13,16,25,27,30,34,38,46,48,52,54 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/m68k/ffi.c:3,6,9,23,32,35,38,44,46,56,58,62,65,67,69,73,77,81,85,96,99,101,103,105,109,110,113,114,116,117,128,132,135,139,143,146,147,149,175,177,181,185,195,199,204,208,212,216,217,219,220,223,225,228,231,238,240,245,249,250,251,254,259,262,264,266,272,274,276,281,283,285,289,291,293,295,297,301,302,305,306,307,310,313,316,318,320,322,323,330,333,337,347,356,360,362 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/moxie/ffitarget.h:4,12,15,24,26,29,31,35,43,45,48,51 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/moxie/ffi.c:3,5,13,16,26,29,31,34,36,42,45,47,50,51,55,57,59,61,64,66,69,73,77,81,85,88,89,91,93,95,97,101,102,104,105,108,113,115,117,118,124,129,131,134,137,140,142,145,147,155,156,157,160,166,170,173,176,181,187,192,193,196,198,219,225,227,229,232,234,241,242,245,247,249,254,255,256,263,267,270,272,279,283,285 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/avr32/ffitarget.h:5,13,16,25,27,30,34,38,46,48,50,54 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/avr32/ffi.c:4,6,14,17,27,30,35,37,42,44,47,52,56,58,59,66,68,76,78,81,84,85,88,93,96,98,100,103,105,107,110,113,115,117,120,122,125,126,127,128,130,133,134,137,139,154,155,157,158,162,167,168,170,172,174,175,178,183,186,189,212,223,230,231,233,234,236,238,241,244,247,250,256,258,266,267,268,271,278,282,284,286,289,292,293,295,297,300,302,305,307,309,312,314,316,319,322,324,326,329,331,334,335,336,337,339,342,343,346,351,352,354,355,359,361,363,364,366,369,374,376,379,381,386,388,390,392,393,397,400,416,420,422,423 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/m88k/ffitarget.h:23,27,30,34,42,44,48 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/m88k/ffi.c:23,45,48,51,60,63,67,70,73,81,85,91,93,95,98,102,111,116,118,120,123,126,127,132,133,136,139,140,142,146,150,154,158,166,173,176,177,181,183,187,190,193,194,196,197,201,204,208,216,222,226,227,229,230,233,235,238,241,249,251,255,259,260,261,265,269,275,277,279,281,284,288,297,302,304,306,309,312,313,318,319,322,325,326,331,335,337,341,344,347,348,349,353,356,359,361,363,365,366,371,374,376,381,392,394,398,400 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/ia64/ffitarget.h:5,13,16,25,27,30,34,38,46,48,55 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/ia64/ia64_flags.h:3,5,7,15,18,28,32,35 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/ia64/ffi.c:5,7,15,18,28,31,35,37,42,47,50,51,53,55,60,61,63,66,72,73,78,81,84,87,90,93,95,104,105,106,109,112,114,126,127,128,131,134,136,138,143,145,150,152,157,160,161,162,166,169,171,173,180,186,194,196,198,200,204,209,210,212,215,216,218,219,220,222,225,227,235,239,246,248,251,253,257,259,262,263,265,268,270,272,273,276,279,280,285,288,289,291,294,298,300,304,307,311,313,336,340,344,348,350,356,365,367,371,375,377,381,385,391,392,393,396,398,401,402,403,405,406,413,421,423,430,434,438,440,445,448,451,454,461,463,464,465,469,474,479,484,487,490,510,513,519,524,527,533,538,543,549,554,556,560,564,566,571,573,577,583,584,588,591,593,595,598,599,600,602,604 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/xtensa/ffitarget.h:4,12,15,25,28,32,36,44,46,48,52 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/xtensa/ffi.c:3,5,13,16,26,29,42,44,46,47,49,50,54,56,81,83,87,88,93,95,96,98,102,115,118,121,124,126,127,131,133,161,163,166,169,172,177,181,182,185,186,187,188,189,191,196,199,205,207,210,212,214,215,218,220,223,224,227,234,238,242,247,248,249,252,257,261,263,266,269,270,274,276,279,283,285,289,290,293,294,296,298 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/closures.c:6,8,16,19,29,33,37,41,45,48,53,55,58,63,67,71,74,80,86,91,92,98,99,102,105,111,113,133,142,144,146,148,156,158,161,163,167,172,176,178,182,185,188,191,200,207,219,222,223,229,233,235,239,242,243,245,247,248,251,255,258,261,265,266,269,274,276,280,283,287,288,293,295,296,302,304,312,314,315,318,320,322,326,331,336,338,340,346,348,349,351,354,355,357,359,361,369,372,375,378,382,385,401,406,410,412,415,420,428,436,440,441,445,446,449,451,453,455,459,461,464,473,476,481,485,486,490,492,494,497,499,503,520,526,529,531,534,536,539,543,546,550,552,558,561,563,564,568,575,581,589,591,594,597,600,602,603,608,610,613,615,616,624,627,629,632,634,639,640,643,645,649,652,657,659,662,663,665,669,684,687,693,696,701,704,705,707,708,713,715,717,720,723,726,727,729,731,732,742,744,748,751,753,758,759,761,762,770,772,774,780,781,783,786,789,793,795,798,800,804,805,807,811,813,815,818,822,824,825,827,829,831,832,838,840,845,847,850,851,853,855,859,863,864,866,870,872,873,875,876,881,890,892,896,897,899,900,905,913,914,916,918,924,926,929,931,933,935,937,938,940,941,944,954,955,962,965,969,971,972,974,977,979,982,985,987,988,991,993,994,997,999,1000,1003 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c:8,10,18,21,30,32,36,37,42,43,48,50,53,55,58,59,61,65,72,80,82,86,88,89,93,101,104,107,110,121,123,125,140,148,154,157,164,168,169,176,178,180,182,186,191,199,202,206,213,224,236,243,249,252,256,264,280,283,284,285,292,296,299,302,305,308,310,311,314,316,320,323,327,331,336,341,342,344,345,348,350,369,371,374,377,379,386,389,394,401,405,408,415,429,441,448,452,458,460,462,465,470,472,481,483,487,493,495,500,505,509,512,518,525,529,532,533,535,538,541,542,544,548,554,556,565,567,572,574,578,591,596,598,605,606,607,616,617,619,622,630,631,638,640,643,655,658,662,664,665,672,681,686,694,697,699,702,709,713,714,718,722,725,727,734,744,746,749,751,754,758,760,765,767,771,775,777,783,787,792,796,798,802,804,809,813,815,818,821,826,830,832,835,838,843,847,849,852,854,859,863,865,868,870,882,884,888,892,894,900,902,905,906,908,909,911,922 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/ffitarget.h:5,7,15,18,27,29,32,36,38,55,59,62,68,74,84,107,117,136,139,141,152,155,160,166,169,172,179,193,203 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c:8,10,18,21,30,32,36,37,45,46,51,53,56,58,61,62,64,65,70,72,77,80,86,89,96,98,102,118,121,122,125,126,127,128,132,138,154,160,167,171,178,182,185,196,205,210,214,216,219,227,231,232,234,236,238,242,249,251,254,264,267,274,280,285,289,293,295,298,300,319,320,321,328,336,337,346,349,352,354,355,358,363,369,374,375,380,385,391,399,400,401,404,406,435,437,440,443,445,453,456,463,468,473,478,494,513,521,525,537,539,541,545,559,561,564,570,578,584,593,602,608,616,623,627,633,635,637,643,649,652,657,661,662,665,673,678,680,689,691,695,697,707,712,715,724,732,734,737,742,744,746,757,758,760,780,790,791,792,796,797,798,801,804,812,814,815,822,825,828,840,843,849,853,855,856,857,866,872,879,881,886,889,890,899,902,904,906,914,922,930,937,940,946,949,959,967,972,979,985,987,994,996,1000,1002,1004,1007,1012,1014,1016,1018,1020,1023,1028,1030,1037,1039,1048,1051,1055,1064,1066,1068,1071,1073,1075,1080,1082,1085,1094,1096,1099,1104,1110,1116,1118,1124,1127,1130,1131,1133,1134,1136,1139,1148,1152 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h:8,10,18,21,30,38,42,44,53,55,59,67,72,85,90 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/ffi.c:8,10,18,21,30,34,39,47,49,53,59,60,65,71,72,79,83,86,92,95,103,110,113,132,133,134,137,139,140,144,146,147,154,160,161,166,175 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/asm.h:3,5,13,16,25,27,28,36,42,76,83,92,114,117,123 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c:3,7,9,17,20,29,32,34,37,48,50,56,63,65,68,70,72,95,97,103,105,108,115,118,123,126,136,141,145,148,151,153,171,187,189,255,266,271,282,288,293,302,303,304,310,311,313,319,321,323,325,328,341,342,343,344,347,349,351,357,359,361,388,391,393,394,398,400,402,406,411,416,421,423,424,428,432,435,442,444,467,470,473,474,480,483,485,488,494,501,503,506,508,513,514,516,517,520,523,526,533,535,541,544,549,552,556,559,563,566,568,569,571,575,578,580,583,586,589,609,610,612,620,621,624,627,629,632,635,638,645,646,648,655,656,660,668,672,674,678,679,681,685,686,689,691,712,713,720,727,735,738,741,751,753,757,758,763,767,777,781,782,790,793,805,819,836,864,870,871,872,875,888,899,902,905,907,908,911,914,917,920,922,925,928,931,933,936,938,950,951,952,956,958,961,964,967,969,972,974,982,983,984,987,990,995,998,1000,1002,1036,1038,1045,1049,1051,1053,1055,1067,1085,1088,1090,1092,1095,1097,1105,1109,1111,1112,1117,1119,1121,1123,1128,1133,1135,1136,1139,1149,1150,1153,1159,1160,1162,1166,1170,1174,1181,1187,1191,1193,1195,1199,1208,1210,1212,1215,1219,1222,1225,1230,1231,1235,1238,1240,1250,1260,1271,1277,1281,1285,1286,1288,1294,1316,1330,1335,1340,1342,1344,1347,1352,1355,1357,1359,1366,1368,1372,1375,1377,1379,1382,1384,1390,1393,1398,1404,1406,1408,1415,1417,1418,1420,1423,1424,1428,1431,1432,1436,1439,1440 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/m32r/ffitarget.h:5,13,16,24,26,29,33,35,39,41,48,52 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/m32r/ffi.c:4,6,14,17,26,29,31,34,36,43,46,48,51,52,55,59,61,65,67,71,73,75,79,83,87,91,100,103,104,106,108,110,112,114,117,119,122,123,125,128,129,132,133,134,136,137,141,144,148,152,155,159,165,170,171,173,174,177,179,181,184,189,191,194,196,201,204,206,209,211,213,215,217,220,223,224,225,227,231,232 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/or1k/ffitarget.h:3,5,13,16,26,29,33,35,39,47,49,53,56,58 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/or1k/ffi.c:3,5,13,16,26,29,32,34,40,44,46,50,52,53,56,59,61,64,68,72,76,80,84,91,94,97,101,102,107,109,110,117,118,120,124,126,128,136,137,141,144,145,150,152,159,160,161,162,165,168,171,175,178,186,188,190,193,194,197,198,201,204,206,208,213,218,225,229,232,240,243,246,249,250,252,255,260,261,262,263,270,274,277,281,287,292,295,298,300,301,302,304,306,313,315,317,318,319,322,324,328 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/tile/ffitarget.h:4,12,15,25,28,32,34,36,39,47,50,64 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/tile/ffi.c:3,5,13,16,26,35,36,39,47,51,52,55,61,66,69,70,71,75,77,81,85,89,93,103,107,112,115,117,119,128,132,136,140,141,142,143,146,154,156,161,164,165,167,171,179,181,184,187,190,191,194,196,198,199,200,204,207,208,209,212,213,220,227,230,232,236,242,245,250,252,254,259,262,265,268,272,275,277,278,279,288,299,302,306,310,312,316,317,320,324,332,336,340,341,345,346,349,351,354,355 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/s390/ffitarget.h:5,13,16,25,27,30,34,40,42,46,54,57,59,68,70 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/s390/internal.h:7,10 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/s390/ffi.c:4,6,14,17,30,35,37,42,45,52,55,57,62,64,71,74,77,79,88,91,93,99,103,106,109,115,121,124,125,128,129,131,139,142,147,150,152,154,159,166,171,175,188,204,208,209,211,215,217,223,226,231,236,237,240,243,250,257,262,274,277,284,285,286,289,291,293,294,296,304,311,320,322,325,330,331,333,340,342,347,349,355,360,363,370,375,379,384,387,412,429,434,441,443,451,459,470,474,475,476,478,479,482,484,485,489,491,492,494,502,510,512,516,520,523,526,532,535,538,544,547,552,557,558,561,567,568,571,579,586,603,612,620,628,632,633,638,639,640,643,646,655,660,664,676,683,690,694,695,696,698,706,713,723,725,728,732,736,738,739,741,743,747,750,754,756 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/prep_cif.c:4,12,15,25,29,31,33,36,38,40,43,46,48,51,53,57,60,65,68,70,71,80,87,92,93,98,101,104,107,108,114,118,122,125,130,138,143,150,167,169,170,175,183,185,189,193,197,203,205,207,208,210,216,218,220,223,225,226,233,235,236,238,244,246,247,249,252,257,261,263 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/cris/ffitarget.h:5,13,16,25,27,30,34,38,46,48,55 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/cris/ffi.c:6,8,16,19,28,31,33,36,38,40,44,46,48,52,54,56,59,61,62,67,68,71,77,79,81,84,86,88,90,93,96,98,101,103,111,113,117,119,123,128,132,137,140,142,148,151,152,154,155,161,165,170,175,177,181,183,185,189,191,195,197,200,202,207,208,211,212,214,216,217,220,222,231,235,236,238,239,244,247,249,252,254,256,259,261,269,270,271,274,278,283,288,295,298,305,311,314,317,320,322,325,327,329,333,334,339,342,343,344,347,353,358,360,362,363,365,372,384,386 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/debug.c:3,11,14,24,29,31,33,37,38,40,42,46,47,49,51,53,63,64 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/mips/ffitarget.h:5,13,16,25,27,30,34,47,57,71,82,84,87,94,98,113,123,146,193,203,226,230,232,236,242,244 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/mips/ffi.c:5,7,15,18,28,31,34,40,48,54,62,66,67,70,75,80,92,94,100,104,105,107,109,112,117,119,122,123,126,129,135,138,140,149,150,152,156,160,164,168,172,183,188,193,194,196,200,203,206,210,212,218,219,221,225,226,227,229,235,239,242,244,247,249,253,260,264,267,269,270,273,277,284,287,290,292,297,299,306,308,312,315,319,321,322,324,327,330,335,337,339,341,346,349,350,352,356,358,363,366,367,368,369,370,371,373,375,377,382,388,393,394,396,399,406,411,415,416,418,421,427,431,433,435,437,440,443,445,448,451,453,455,458,460,469,470,472,484,486,488,495,497,504,508,509,511,512,515,517,519,523,525,530,532,533,537,544,547,550,558,563,566,568,573,578,579,581,583,584,586,588,589,593,595,596,601,606,609,611,614,617,623,625,633,639,644,650,654,660,665,668,672,673,674,677,679,680,684,686,687,688,697,704,708,725,773,775,779,786,787,811,816,819,822,824,828,829,833,835,842,849,851,853,858,863,868,873,877,879,882,883,886,888,890,897,898,900,902,903,904,906,911,914,920,926,929,931,936,942,943,944,966,973,978,980,982,989,990,994,996,1000,1003,1006,1013,1015,1017,1020,1022,1027,1030,1032,1037,1042,1047,1052,1057,1062,1065,1071,1073,1078,1079,1082,1083,1086,1088,1089,1091,1099,1103,1105,1122,1126,1128,1129 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/sh/ffitarget.h:5,13,16,25,27,30,34,36,40,48,52,54 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/sh/ffi.c:4,6,14,17,27,30,32,37,43,47,52,54,55,58,60,63,66,68,76,79,80,81,84,87,89,92,98,101,102,103,104,106,107,110,112,123,126,128,132,135,140,142,144,147,150,153,157,161,165,169,173,176,178,180,183,186,189,192,195,198,205,208,220,221,222,229,231,233,236,239,242,246,250,254,258,262,265,267,269,272,275,278,281,284,287,289,293,296,299,302,305,308,311,315,316,317,319,320,323,331,333,336,339,342,350,359,369,370,373,383,385,388,392,400,404,405,407,408,411,413,416,419,422,428,430,433,435,443,444,449,450,455,462,465,468,474,484,488,493,495,496,504,512,517,526,529,533,536,539,543,546,548,551,554,557,562,567,571,574,576,578,581,586,589,594,595,598,607,610,622,623,624,629,631,633,636,639,642,647,652,656,659,661,663,666,669,672,675,678,681,683,687,690,693,696,699,702,706,710,711,712,714,717 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/sh64/ffitarget.h:5,13,16,25,27,30,34,36,40,47,50,52,56,58 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/sh64/ffi.c:4,6,14,17,27,30,32,35,38,39,42,52,54,55,58,60,66,68,70,73,74,77,79,82,86,88,92,96,100,104,108,111,113,115,117,122,129,133,135,139,142,144,146,149,150,151,153,154,157,164,168,170,173,180,183,188,193,196,200,215,216,217,220,224,232,236,237,239,240,250,255,258,261,264,270,272,275,277,285,286,291,292,295,302,304,307,329,333,337,339,340,348,352,359,362,366,369,372,376,379,382,385,387,389,401,404,405,407,409,411,413,416,418,427,428,435,443,445,449,452,454,456,458,461,462,463,465,468,469 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/frv/ffitarget.h:5,13,16,25,27,30,34,36,40,48,50,53,61 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/frv/ffi.c:5,7,15,18,28,31,33,36,38,44,47,51,53,55,57,60,62,64,68,73,76,80,84,88,92,95,96,98,100,102,104,108,109,111,112,115,120,122,124,125,131,136,138,141,144,147,149,152,153,155,163,164,165,168,174,179,183,189,192,194,216,218,223,224,227,233,235,239,245,246,247,254,262,264,281,285,290,292 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/pa/ffitarget.h:5,13,16,25,27,30,34,36,40,43,49,55,64,66,68,72 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/pa/ffi.c:6,9,17,20,30,33,36,38,42,51,53,55,57,63,82,83,85,100,106,112,116,121,124,127,130,133,138,141,143,150,153,156,158,160,162,166,170,174,178,186,193,199,205,207,214,218,220,228,230,234,237,240,242,246,250,253,254,258,259,261,263,266,269,271,272,274,276,277,279,283,285,287,289,295,302,305,306,307,314,316,317,320,323,329,336,345,350,354,355,359,363,367,368,370,371,375,377,379,382,385,393,395,398,399,401,407,411,412,413,420,433,435,441,445,447,449,451,461,467,477,482,486,492,495,499,506,512,515,517,521,525,528,529,532,533,536,539,542,565,569,573,577,585,590,593,596,601,602,605,608,610,614,619,621,622,626,628,635,637,641,645,647,652,655,658,661,667,671,673 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/metag/ffitarget.h:4,12,15,24,26,29,33,37,45,47,51,53 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/metag/ffi.c:3,12,15,24,27,29,31,36,38,43,45,50,51,53,56,58,62,65,69,86,91,92,93,97,98,101,104,108,112,116,118,119,122,126,129,130,132,159,161,162,164,174,176,180,182,187,194,202,203,206,207,209,212,214,217,219,234,235,236,237,239,246,248,253,258,262,264,265,266,273,276,279,288,290,292,293,297,302,305,310,311,313,317,323,328,330 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/ffitarget.h:5,7,15,18,27,29,32,36,38,41,46,51,56,58,79,91,100,126,128,131,136,149,158,160 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/internal.h:17,20,24 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/ffi64.c:6,8,16,19,29,32,37,39,42,54,56,61,63,70,73,76,82,86,99,101,103,107,110,113,117,124,128,136,146,149,150,156,162,164,175,177,179,182,184,187,189,193,195,198,201,218,224,228,231,235,239,240,243,245,247,252,256,257,259,260,262,269,273,274,277,282,288,292,293,298,302,303,305,307,310,321,325,328,338,339,340,342,343,347,351,355,359,363,382,383,386,388,389,391,396,399,405,412,414,418,462,468,470,472,478,489,490,494,519,523,524,529,533,535,538,541,543,546,547,550,553,555,556,560,566,569,574,579,580,585,587,589,594,597,599,601,606,608,612,617,619,623,625,627,638,651,663,664,665,666,668,671,672,677,680,683,686,689,690,696,700,703,706,709,710,711,714,723,730,743,750,755,758,762,764,765,773,779,784,786,793,794,797,800,805,807,811,816,822,825,828,830,833,834,837,840,843,848,849,850,851,854,857,858,861,867,871,878,884,886,887 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/ffi.c:8,10,18,21,31,38,49,53,60,64,67,69,80,81,83,131,134,144,147,151,173,177,179,181,183,186,188,190,191,194,196,205,211,214,215,216,218,226,228,234,245,255,257,261,268,273,276,278,292,293,294,301,306,309,313,317,323,324,327,332,334,336,340,343,345,348,349,351,354,363,373,375,380,382,386,387,388,390,392,393,396,398,399,403,405,406,408,412,414,421,424,432,440,442,445,450,457,458,461,464,469,471,475,478,480,483,484,486,489,493,502,504,509,511,515,516,517,519,520,522,527,528,535,539,541,558,559,562,566,570,574,576,577,581,585,587,589,605,606,610,612,613,615,617,620,627,631,638,642,643,645,654,655,659,663,667,669,670,673,680,684,687,689,703,704,705,712,716,719,723,727,734,735,738,742,744,748,750,754,757,760,762 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/ffiw64.c:4,6,14,17,27,33,39,41,48,51,54,56,58,64,65,68,81,94,96,98,106,108,109,113,118,120,123,127,132,133,138,142,145,148,149,151,153,169,170,171,173,174,177,179,180,184,186,187,188,191,198,210,212,218,219,222,226,228,229,233,235,241,242,246,248,249,251,257,267,271,275,281,285,286,288,292,294,299,304,306,307,311,312 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/asmnames.h:3,11,17,23,29 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/x86/internal64.h:17,19 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/types.c:3,5,13,16,26,30,33,35,46,47,62,63,68,77,79,82,88,101 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/microblaze/ffitarget.h:3,5,13,16,26,29,33,37,45,47,50,52 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/microblaze/ffi.c:3,5,13,16,26,29,33,35,39,43,48,51,52,54,57,64,65,68,69,72,78,81,83,121,124,134,135,136,137,139,142,147,149,150,152,156,163,164,166,174,175,176,180,184,195,200,202,207,208,213,214,217,219,243,245,261,263,264,274,275,276,281,286,290,292,295,301,307,315,319,321 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/arm/ffitarget.h:5,7,15,18,27,29,32,36,40,53,58,63,65,69,71,78,88 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/arm/ffi.c:7,9,17,20,30,38,43,45,49,57,61,64,75,76,79,81,83,96,106,114,120,125,128,129,131,132,135,143,146,148,151,152,154,158,159,160,164,170,175,179,182,183,185,189,192,196,199,206,212,217,223,224,229,230,231,235,238,245,248,252,263,268,275,279,281,289,290,298,301,303,306,307,312,316,319,321,322,327,331,333,334,336,338,345,350,354,360,363,371,373,376,379,382,385,388,391,392,394,398,402,404,407,409,412,413,416,417,420,422,423,427,429,430,434,437,439,442,444,447,448,450,453,457,458,460,461,465,471,474,476,479,480,482,486,488,491,493,495,497,501,505,510,513,515,518,520,521,522,527,528,530,531,533,538,544,550,551,557,563,564,569,571,577,579,581,585,588,594,601,617,621,623,624,628,630,632,636,639,643,645,646,648,652,655,658,661,664,668,670,671,673,674,677,680,683,686,689,692,695,696,698,699,703,706,709,713,717,732,733,738,743,745,749,750,751,755,768,771,774,777,780,783,784,788,789,792,795,798,802,804,807,810,813,814,818,821,826,829,834,835,838,845,847,851,852,853 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/arc/ffitarget.h:5,13,16,24,26,29,33,35,39,41,48,52 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/arc/ffi.c:3,5,13,16,25,28,31,33,41,44,47,52,54,56,59,60,62,65,68,71,75,78,80,82,86,90,94,98,102,105,106,108,110,112,114,116,118,121,122,125,126,128,129,133,136,140,144,150,155,156,158,159,163,166,168,171,175,177,180,182,187,191,192,193,197,203,205,208,211,212,214,217,220,223,227,231,232,234,236,237,239,244,246,248,255,258,259,264,266 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/riscv/ffitarget.h:3,5,13,16,25,27,30,34,38,40,43,53,56,58,60,67,69 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/riscv/ffi.c:6,8,16,19,29,32,35,43,47,49,57,59,65,73,78,84,93,95,96,105,110,120,125,126,128,130,147,162,163,168,169,170,184,185,190,191,205,206,207,211,220,221,222,226,228,237,243,244,250,251,252,257,266,267,268,272,274,285,291,292,299,300,301,307,309,311,312,317,318,320,324,325,329,333,342,354,355,358,363,367,371,373,377,378,381,383,384,388,390,391,393,395,398,401,404,415,419,421,423,424,426,430,433,437,439,440,449,460,464,470,474,476,480,481 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/dlmalloc.c:6,8,12,14,20,34,36,43,48,54,57,66,79,90,100,106,116,125,129,131,137,150,157,162,167,170,182,185,192,194,201,203,207,211,218,222,225,230,235,238,243,254,265,276,283,287,290,303,311,317,327,331,335,343,350,354,359,364,370,376,391,414,438,440,445,466,474,482,486,489,587,594,598,600,612,623,625,629,632,645,648,652,654,656,675,676,682,692,701,708,714,718,720,723,727,731,733,738,743,747,754,767,774,785,798,803,817,824,827,836,843,848,854,860,862,875,878,881,889,895,900,906,910,914,917,928,929,933,939,940,947,950,959,966,970,973,981,986,998,1002,1007,1009,1011,1017,1030,1038,1049,1055,1059,1065,1069,1076,1082,1088,1095,1102,1108,1114,1115,1123,1129,1135,1140,1142,1146,1154,1156,1158,1162,1164,1208,1255,1257,1261,1271,1274,1277,1282,1284,1290,1291,1295,1302,1306,1328,1330,1332,1340,1341,1343,1358,1360,1361,1365,1367,1372,1373,1379,1380,1395,1397,1398,1404,1410,1416,1419,1422,1423,1425,1427,1430,1437,1441,1449,1453,1455,1465,1471,1483,1484,1485,1488,1489,1498,1504,1512,1520,1521,1523,1526,1530,1538,1543,1545,1565,1567,1595,1600,1604,1615,1620,1628,1633,1635,1647,1656,1658,1665,1672,1674,1676,1682,1687,1691,1697,1701,1705,1709,1710,1712,1720,1724,1727,1732,1735,1739,1743,1746,1750,1754,1758,1761,1765,1772,1774,1778,1781,1797,1802,1825,1833,1840,1848,1856,1863,1870,1875,1879,1882,1884,1892,1906,1914,1921,1926,1939,1947,1949,1954,1957,1959,1968,1974,1978,1982,1985,1988,1990,1994,2003,2010,2020,2026,2039,2043,2048,2051,2054,2058,2063,2073,2094,2096,2098,2104,2113,2115,2121,2123,2125,2129,2133,2136,2141,2145,2149,2154,2158,2167,2168,2169,2178,2179,2180,2186,2194,2195,2197,2203,2205,2208,2212,2216,2220,2222,2230,2232,2235,2238,2241,2243,2247,2251,2253,2255,2257,2264,2272,2286,2288,2293,2297,2312,2330,2332,2336,2341,2346,2347,2349,2352,2357,2361,2363,2370,2371,2375,2387,2390,2393,2396,2399,2400,2402,2412,2428,2438,2445,2452,2453,2464,2466,2468,2470,2475,2480,2484,2486,2490,2494,2499,2504,2508,2510,2512,2517,2525,2527,2536,2540,2543,2544,2554,2556,2567,2572,2574,2590,2592,2593,2606,2614,2615,2616,2619,2624,2625,2638,2639,2652,2653,2663,2664,2682,2685,2686,2687,2699,2700,2701,2714,2726,2738,2743,2746,2747,2751,2752,2762,2763,2784,2785,2786,2787,2800,2801,2811,2818,2819,2820,2822,2823,2840,2845,2848,2850,2851,2853,2854,2864,2870,2871,2877,2878,2882,2884,2886,2906,2908,2910,2911,2919,2920,2922,2924,2926,2938,2946,2948,2949,2950,2954,2956,2957,2958,2960,2967,2985,2986,3005,3006,3022,3023,3035,3036,3038,3089,3090,3093,3107,3177,3178,3180,3184,3188,3189,3191,3206,3208,3218,3233,3241,3242,3244,3245,3269,3276,3277,3279,3280,3282,3289,3296,3297,3305,3306,3307,3309,3324,3326,3336,3340,3347,3352,3359,3363,3364,3367,3368,3369,3386,3389,3398,3408,3410,3418,3419,3421,3422,3424,3430,3432,3438,3439,3456,3462,3475,3476,3477,3486,3487,3488,3501,3502,3503,3504,3508,3511,3512,3514,3515,3525,3526,3527,3528,3543,3544,3545,3546,3547,3549,3552,3565,3566,3567,3580,3595,3598,3599,3600,3610,3611,3612,3615,3616,3618,3638,3641,3648,3651,3652,3653,3656,3658,3659,3664,3671,3682,3683,3684,3689,3697,3698,3700,3701,3702,3708,3709,3710,3714,3718,3719,3721,3722,3724,3732,3744,3752,3754,3755,3756,3764,3765,3766,3772,3774,3775,3789,3791,3792,3794,3796,3797,3805,3808,3814,3815,3816,3828,3830,3831,3832,3835,3836,3838,3843,3850,3852,3866,3867,3878,3879,3884,3885,3887,3891,3894,3901,3903,3904,3906,3907,3909,3919,3920,3924,3925,3934,3954,3958,3963,3965,3966,3976,3977,3978,3985,3988,3990,3991,3993,3994,3996,4005,4010,4022,4029,4036,4037,4042,4048,4049,4051,4064,4068,4070,4073,4074,4083,4084,4096,4100,4101,4102,4108,4111,4113,4116,4118,4121,4122,4123,4125,4127,4148,4151,4161,4173,4174,4196,4200,4201,4205,4206,4207,4215,4216,4217,4226,4232,4236,4237,4248,4249,4251,4255,4256,4258,4259,4266,4274,4291,4299,4304,4305,4308,4309,4310,4320,4324,4330,4339,4340,4341,4347,4348,4353,4354,4358,4359,4368,4373,4374,4382,4392,4395,4396,4397,4400,4401,4406,4407,4411,4412,4418,4419,4425,4426,4432,4434,4435,4438,4439,4442,4443,4447,4449,4452,4453,4459,4461,4462,4465,4466,4468,4470,4472,4491,4492,4497,4507,4508,4510,4511,4516,4522,4524,4525,4539,4540,4543,4545,4546,4551,4552,4558,4568,4580,4581,4603,4607,4608,4612,4613,4614,4622,4623,4624,4633,4639,4643,4644,4655,4656,4658,4662,4663,4665,4666,4678,4692,4700,4705,4706,4709,4710,4711,4721,4725,4731,4740,4741,4742,4748,4749,4754,4755,4756,4757,4765,4771,4776,4777,4785,4797,4799,4800,4801,4807,4809,4810,4818,4820,4821,4828,4830,4831,4839,4840,4843,4845,4846,4851,4854,4855,4856,4862,4865,4866,4867,4873,4876,4877,4878,4884,4886,4888,4891,4892,4894,4896,4899,4918,4925,4927,4930,4935,4937,4940,4942,4948,4950,4957,4959,4962,4964,4966,4967,4968,4971,4973,4975,4978,4981,4982,4983,4985,4986,5001,5004,5008,5024,5027,5040,5064,5080,5083,5092,5113,5124,5128,5132,5134,5143,5152,5161,5165 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/alpha/ffitarget.h:5,13,16,25,27,30,34,38,46,49,51,56 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/alpha/internal.h:7,19 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/alpha/ffi.c:4,6,14,17,27,32,43,49,53,57,58,61,63,64,67,71,74,77,80,97,103,111,114,115,116,120,160,173,177,179,187,189,190,193,195,204,209,215,221,224,225,226,230,235,240,245,249,252,254,259,261,277,283,290,295,302,305,306,307,310,311,314,316,317,321,323,324,331,333,336,343,347,349,352,355,357,358,363,366,370,372,373,379,383,387,391,394,395,397,400,405,407,420,426,431,434,437,443,450,454,459,472,477,480,486,493,497,499,502,505,508,511,512,514,515,518,521 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/aarch64/ffitarget.h:2,10,13,21,24,28,43,45,52,54,57,59,66,71,75,77,86,91 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/aarch64/internal.h:9,12,20,24,30,37,42,47,52,56,58,61,64 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/aarch64/ffi.c:2,10,13,21,33,44,46,50,52,55,57,61,63,70,72,76,79,89,90,92,96,99,102,105,108,112,114,115,117,118,121,124,127,130,133,136,139,140,142,143,148,151,154,158,162,173,179,183,184,189,194,196,200,201,202,206,224,227,230,233,236,239,240,244,245,248,251,253,257,262,266,273,274,279,281,291,294,296,297,300,302,324,325,326,332,335,382,384,390,392,395,399,420,423,427,448,453,455,457,461,466,469,472,473,476,480,482,512,520,523,526,533,535,538,539,542,545,546,553,555,556,562,566,568,572,578,585,590,596,599,604,610,613,618,621,625,639,644,655,656,658,664,666,669,673,675,680,683,685,688,693,697,699,701,709,711,714,721,723,730,731,733,735,738,739,742,746,748,749,751,754,755,758,760,761,766,768,770,772,775,782,785,787,792,809,811,813,815,826,830,832,833,837,841,843,846,851,855,857,859,861,868,871,875,882,886,888,890,894,896,900,913,921,925,927,930,939,941,946,947,949,952,956,958,962,964,966,968,974,976,979,982,984,988,989,991,994,995,998,1002,1004,1005,1009,1011,1013,1014 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/sparc/ffitarget.h:5,13,16,25,27,30,34,36,42,46,59,62,67,69,73,79,81 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/sparc/internal.h:12,21,25 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/sparc/ffi64.c:4,6,14,17,27,32,43,45,49,53,56,59,61,64,70,72,74,77,80,98,100,101,104,106,107,110,113,117,123,126,130,132,133,134,136,139,143,149,152,156,158,159,161,164,169,172,185,189,192,194,199,201,205,207,212,213,216,225,226,228,253,256,257,260,264,266,271,274,286,289,290,295,298,301,305,306,309,312,313,316,319,320,323,326,329,333,335,337,342,344,347,348,349,355,358,361,365,367,394,400,404,410,413,414,415,417,418,422,424,426,429,431,432,435,437,438,442,444,445,449,451,455,458,465,468,471,480,484,486,488,489,493,496,500,502,503,509,513,518,520,524,528,531,534,539,542,549,552,555,559,560,562,577,595,598,600,601,604,607 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/sparc/ffi.c:4,6,14,17,27,32,34,45,49,54,57,97,126,130,132,135,139,141,148,154,157,159,160,165,168,171,175,177,178,181,184,188,190,192,197,199,202,203,204,208,214,217,222,224,230,237,245,258,265,268,270,273,275,278,279,280,282,283,287,289,291,297,299,300,303,305,306,310,312,313,317,321,325,328,335,339,342,347,351,353,355,356,360,363,367,369,370,376,380,385,390,394,395,398,401,406,408,415,420,425,428,443,454,457,460,461,464,467 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/java_raw_api.c:3,5,8,10,18,21,31,37,41,43,46,49,51,53,68,69,70,72,73,74,77,80,82,84,86,91,96,105,109,113,118,119,120,122,124,127,141,147,148,152,154,155,158,161,163,165,173,181,189,197,205,213,217,226,230,239,240,241,242,244,247,250,256,266,270,273,275,276,279,282,288,295,299,302,304,305,312,315,320,321,323,327,330,334,335,342,344,351,354,355,357,358,362,368,370,371 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/vax/ffitarget.h:23,27,30,34,42,44,48 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/vax/ffi.c:23,30,33,36,41,45,49,52,58,60,66,68,72,74,77,79,83,87,91,95,99,102,104,106,108,112,113,116,117,119,120,123,126,130,134,137,138,150,157,158,160,161,164,166,169,172,179,181,185,189,190,191,195,199,202,206,208,210,212,215,219,222,223,224,227,230,233,235,237,239,240,245,248,250,258,264,270,274,276 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/bfin/ffitarget.h:3,5,13,16,26,29,33,41,43 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/bfin/ffi.c:4,6,14,17,29,32,35,44,49,54,56,61,62,66,68,104,109,111,112,121,127,135,136,137,138,145,164,170,184,189,192,193,194,195,196 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/raw_api.c:3,5,13,16,26,28,31,33,36,39,41,43,50,51,53,54,55,58,61,63,65,67,72,77,84,90,94,98,102,103,104,106,108,111,114,116,120,122,124,127,128,129,133,135,136,139,142,144,146,150,154,158,162,167,172,178,182,186,190,191,192,193,195,196,203,205,209,210,212,216,219,222,223,230,232,239,242,243,245,246,249,251,255,261,263,264,266 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/nios2/ffitarget.h:2,4,12,15,23,24,27,31,35,43,47,51 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi/src/nios2/ffi.c:2,4,12,15,23,24,27,29,32,37,41,44,48,49,51,57,59,61,70,72,73,74,80,82,85,90,93,94,96,101,105,109,112,116,120,124,128,132,135,136,142,143,144,145,149,151,152,155,161,164,171,173,179,195,196,197,201,205,212,218,221,224,227,230,234,238,242,243,247,248,249,258,261,264,279,291,297,301,303,304 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/FunctionInfo.c:29,35,42,45,49,55,60,62,65,68,76,78,79,82,88,89,90,93,100,102,103,117,126,132,133,135,145,149,153,154,158,159,162,163,168,169,174,175,178,179,182,190,202,203,205,207,208,216,218,220,222,223,231,233,235,237,238,241,243,245,263,268,269,270 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/Pointer.h:29,32,38,42,44,49,57,59,61,63 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/ClosurePool.c:28,53,60,66,68,69,73,79,88,90,94,99,101,107,109,110,113,115,122,124,125,128,133,134,135,136,139,147,152,154,155,161,165,166,172,175,176,177,180,181,187,192,195,201,202,203,206,207,210,220,221,222,223,226,228,229,230,233,241,242,245,252,253,256,262,263,266,273,274,277,279,280 ./vendor/bundle/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/StructByValue.c:29,44,48,52,54,59,61,64,66,68,72,77,79,80,83,87,91,92,97,100,102,103,106,109,110,113,116,117,118,121,123,126,127,130,132,134,136,137,140,144,149,150 ./vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/example/a.c:2,4,6 ./vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/example/main.c:2,5,7,11 ./vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/example/b.c:2,4,6 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_genibus/crc16_genibus.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_genibus/crc16_genibus.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_genibus/crc16_genibus_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16/crc16.h:3,6,8,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16/crc16_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16/crc16.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32c/crc32c.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32c/crc32c_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32c/crc32c.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64_jones/crc64_jones.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64_jones/crc64_jones.c:16,18,88,90,93,95,99,100,102 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64_jones/crc64_jones_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/compat/ruby.h:3,5,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_modbus/crc16_modbus.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_modbus/crc16_modbus_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_modbus/crc16_modbus.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_bzip2/crc32_bzip2.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_bzip2/crc32_bzip2.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_bzip2/crc32_bzip2_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc12_3gpp/crc12_3gpp.c:16,18,40,42,45,47,50,51,53,54,56,59,61,65,66,68 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc12_3gpp/crc12_3gpp.h:3,6,8,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc12_3gpp/crc12_3gpp_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_zmodem/crc16_zmodem_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_zmodem/crc16_zmodem.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_zmodem/crc16_zmodem.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_xfer/crc32_xfer.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_xfer/crc32_xfer_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_xfer/crc32_xfer.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_x_25/crc16_x_25.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_x_25/crc16_x_25_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_x_25/crc16_x_25.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_kermit/crc16_kermit_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_kermit/crc16_kermit.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_kermit/crc16_kermit.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc8/crc8.h:3,6,8,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc8/crc8_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc8/crc8.c:16,18,40,42,45,47,51,52,54 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64_xz/crc64_xz.c:16,18,88,90,93,95,99,100,102 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64_xz/crc64_xz.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64_xz/crc64_xz_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_usb/crc16_usb.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_usb/crc16_usb_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_usb/crc16_usb.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32/crc32.c:17,55,57,60,62,66,67,69 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32/crc32_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32/crc32.h:3,6,8,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_xmodem/crc16_xmodem.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_xmodem/crc16_xmodem_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_xmodem/crc16_xmodem.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc15/crc15.h:3,6,8,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc15/crc15_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc15/crc15.c:16,18,40,42,45,47,51,52,54 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc24/crc24_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc24/crc24.h:3,6,8,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc24/crc24.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_dnp/crc16_dnp_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_dnp/crc16_dnp.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_dnp/crc16_dnp.c:2,40,42,45,47,51,52,54 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_posix/crc32_posix.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_posix/crc32_posix_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_posix/crc32_posix.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_jam/crc32_jam.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_jam/crc32_jam.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_jam/crc32_jam_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_mpeg/crc32_mpeg.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_mpeg/crc32_mpeg_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc32_mpeg/crc32_mpeg.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64/crc64.h:3,6,8,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64/crc64_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc64/crc64.c:16,18,88,90,93,95,99,100,102 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc8_1wire/crc8_1wire.c:16,18,40,42,45,47,51,52,54 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc8_1wire/crc8_1wire_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc8_1wire/crc8_1wire.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_ccitt/crc16_ccitt.h:3,5,7 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_ccitt/crc16_ccitt.c:16,18,56,58,61,63,67,68,70 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc16_ccitt/crc16_ccitt_ext.c:3,6,8,12,15,17,20,21,23,26,28 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc5/crc5.h:3,6,8,10 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc5/crc5_ext.c:3,5,7,11,14,16,19,20,22,25,27 ./vendor/bundle/ruby/2.7.0/gems/digest-crc-0.6.1/ext/digest/crc5/crc5.c:16,18,40,42,45,47,51,52,54 <<<<<< EOF