mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 19:02:04 +00:00
1410 lines
45 KiB
YAML
1410 lines
45 KiB
YAML
|
- family_replacement: $1
|
||
|
regex: (GeoEvent Server) (\d+)(?:\.(\d+)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: '(ArcGIS Pro)(?: (\d+)\.(\d+)\.([^ ]+)|)'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ArcMap
|
||
|
regex: ArcGIS Client Using WinInet
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Operations Dashboard for ArcGIS
|
||
|
regex: (OperationsDashboard)-(?:Windows)-(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ArcGIS Earth
|
||
|
regex: (arcgisearth)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ArcGIS Earth
|
||
|
regex: com.esri.(earth).phone/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Explorer for ArcGIS
|
||
|
regex: (arcgis-explorer)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Collector for ArcGIS
|
||
|
regex: arcgis-(collector|aurora)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Workforce for ArcGIS
|
||
|
regex: (arcgis-workforce)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1 for ArcGIS
|
||
|
regex: (Collector|Explorer|Workforce)-(?:Android|iOS)-(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1 for ArcGIS
|
||
|
regex: (Explorer|Collector)/(\d+) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ArcGIS Runtime SDK for $1
|
||
|
regex: ArcGISRuntime-(Android|iOS|NET|Qt)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ArcGIS Runtime SDK for $1
|
||
|
regex: ArcGIS\.?(iOS|Android|NET|Qt)(?:-|\.)(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ArcGIS Runtime SDK for $1
|
||
|
regex: ArcGIS\.Runtime\.(Qt)\.(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Luminary)[Stage]+/(\d+) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (ESPN)[%20| ]+Radio/(\d+)\.(\d+)\.(\d+) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: AntennaPod
|
||
|
regex: (Antenna)/(\d+) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (TopPodcasts)Pro/(\d+) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (MusicDownloader)Lite/(\d+)\.(\d+)\.(\d+) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(.{0,200})-iPad\/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(.{0,200})-iPhone/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(.{0,200})/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|) CFNetwork
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Luminary)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ESPN
|
||
|
regex: (espn\.go)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ESPN
|
||
|
regex: (espnradio\.com)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ESPN
|
||
|
regex: ESPN APP$
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: AudioBoom
|
||
|
regex: (audioboom\.com)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ' (Rivo) RHYTHM'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: CFNetwork
|
||
|
regex: (CFNetwork)(?:/(\d+)\.(\d+)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: PingdomBot
|
||
|
regex: (Pingdom\.com_bot_version_)(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: PingdomBot
|
||
|
regex: (PingdomTMS)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: WebPageTest.org bot
|
||
|
regex: ' (PTST)/(\d+)(?:\.(\d+)|)$'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: X11; (Datanyze); Linux
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: NewRelicPingerBot
|
||
|
regex: (NewRelicPinger)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Tableau
|
||
|
regex: (Tableau)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Adobe CreativeCloud
|
||
|
regex: AppleWebKit/\d{1,10}\.\d{1,10}.{0,200} Safari.{0,200} (CreativeCloud)/(\d+)\.(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Salesforce)(?:.)\/(\d+)\.(\d?)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: StatusCakeBot
|
||
|
regex: (\(StatusCake\))
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: FacebookBot
|
||
|
regex: (facebookexternalhit)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: GooglePlusBot
|
||
|
regex: Google.{0,50}/\+/web/snippet
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: GmailImageProxy
|
||
|
regex: via ggpht\.com GoogleImageProxy
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: YahooMailProxy
|
||
|
regex: YahooMailProxy; https://help\.yahoo\.com/kb/yahoo-mail-proxy-SLN28749\.html
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Twitterbot
|
||
|
regex: (Twitterbot)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: /((?:Ant-|)Nutch|[A-z]+[Bb]ot|[A-z]+[Ss]pider|Axtaris|fetchurl|Isara|ShopSalad|Tailsweep)[
|
||
|
\-](\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: \b(008|Altresium|Argus|BaiduMobaider|BoardReader|DNSGroup|DataparkSearch|EDI|Goodzer|Grub|INGRID|Infohelfer|LinkedInBot|LOOQ|Nutch|OgScrper|Pandora|PathDefender|Peew|PostPost|Steeler|Twitterbot|VSE|WebCrunch|WebZIP|Y!J-BR[A-Z]|YahooSeeker|envolk|sproose|wminer)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: MSIECrawler
|
||
|
regex: (MSIE) (\d+)\.(\d+)([a-z]\d|[a-z]|);.{0,200} MSIECrawler
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (DAVdroid)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Google-HTTP-Java-Client|Apache-HttpClient|PostmanRuntime|Go-http-client|scalaj-http|http%20client|Python-urllib|HttpMonitor|TLSProber|WinHTTP|JNLP|okhttp|aihttp|reqwest|axios|unirest-(?:java|python|ruby|nodejs|php|net))(?:[
|
||
|
/](\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Pinterestbot
|
||
|
regex: (Pinterest(?:bot|))/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)[;\s(]+\+https://www.pinterest.com/bot.html
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: '(CSimpleSpider|Cityreview Robot|CrawlDaddy|CrawlFire|Finderbots|Index crawler|Job
|
||
|
Roboter|KiwiStatus Spider|Lijit Crawler|QuerySeekerSpider|ScollSpider|Trends Crawler|USyd-NLP-Spider|SiteCat
|
||
|
Webbot|BotName\/\$BotVersion|123metaspider-Bot|1470\.net crawler|50\.nu|8bo Crawler
|
||
|
Bot|Aboundex|Accoona-[A-z]{1,30}-Agent|AdsBot-Google(?:-[a-z]{1,30}|)|altavista|AppEngine-Google|archive.{0,30}\.org_bot|archiver|Ask
|
||
|
Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]{1,30})(?:-[A-Za-z]{1,30}|)|bingbot|BingPreview|blitzbot|BlogBridge|Bloglovin|BoardReader
|
||
|
Blog Indexer|BoardReader Favicon Fetcher|boitho.com-dc|BotSeer|BUbiNG|\b\w{0,30}favicon\w{0,30}\b|\bYeti(?:-[a-z]{1,30}|)|Catchpoint(?:
|
||
|
bot|)|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\(S\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher|)|Feed
|
||
|
Seeker Bot|Feedbin|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]{1,30}-|)Googlebot(?:-[a-zA-Z]{1,30}|)|Google
|
||
|
SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile|)|IconSurf|IlTrovatore(?:-Setaccio|)|InfuzApp|Innovazion
|
||
|
Crawler|InternetArchive|IP2[a-z]{1,30}Bot|jbot\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee
|
||
|
Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\.RU_Bot|masscan|masidani_bot|Mediapartners-Google|Microsoft
|
||
|
.{0,30} Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media {0,2}|)|msrbot|Mtps Feed Aggregation
|
||
|
System|netresearch|Netvibes|NewsGator[^/]{0,30}|^NING|Nutch[^/]{0,30}|Nymesis|ObjectsSearch|OgScrper|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo
|
||
|
Screenshot Bot|PHPCrawl|PlantyNet_WebRobot|Pompos|Qwantify|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival
|
||
|
IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|SemrushBot|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slackbot-LinkExpanding|Slack-ImgProxy|Slurp|snappy|Speedy
|
||
|
Spider|Squrl Java|Stringer|TheUsefulbot|ThumbShotsBot|Thumbshots\.ru|Tiny Tiny
|
||
|
RSS|Twitterbot|WhatsApp|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]{1,30}|WhatWeb|WIRE|WordPress|Wotbox|www\.almaden\.ibm\.com|Xenu(?:.s|)
|
||
|
Link Sleuth|Xerka [A-z]{1,30}Bot|yacy(?:bot|)|YahooSeeker|Yahoo! Slurp|Yandex\w{1,30}|YodaoBot(?:-[A-z]{1,30}|)|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\.ze\.bz|ZooShot|ZyBorg|ArcGIS
|
||
|
Hub Indexer)(?:[ /]v?(\d+)(?:\.(\d+)(?:\.(\d+)|)|)|)'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: \b(Boto3?|JetS3t|aws-(?:cli|sdk-(?:cpp|go|java|nodejs|ruby2?|dotnet-(?:\d{1,2}|core)))|s3fs)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (FME)\/(\d+\.\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (QGIS)\/(\d)\.?0?(\d{1,2})\.?0?(\d{1,2})
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (JOSM)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Tygron Platform) \((\d+)\.(\d+)\.(\d+(?:\.\d+| RC \d+\.\d+))
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Facebook Messenger
|
||
|
regex: \[(FBAN/MessengerForiOS|FB_IAB/MESSENGER);FBAV/(\d+)(?:\.(\d+)(?:\.(\d+)(?:\.(\d+)|)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Facebook
|
||
|
regex: \[FB.{0,300};(FBAV)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Facebook
|
||
|
regex: \[FB.{0,300};
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^.{0,200}?(?:\/[A-Za-z0-9\.]{0,50}|) {0,2}([A-Za-z0-9 \-_\!\[\]:]{0,50}(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]{0,50}))[/
|
||
|
](\d+)(?:\.(\d+)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^.{0,200}?((?:[A-Za-z][A-Za-z0-9 -]{0,50}|)[^C][^Uu][Bb]ot)\b(?:(?:[ /]|
|
||
|
v)(\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: '^.{0,200}?((?:[A-z0-9]{1,50}|[A-z\-]{1,50} ?|)(?: the |)(?:[Ss][Pp][Ii][Dd][Ee][Rr]|[Ss]crape|[Cc][Rr][Aa][Ww][Ll])[A-z0-9]{0,50})(?:(?:[
|
||
|
/]| v)(\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (HbbTV)/(\d+)\.(\d+)\.(\d+) \(
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Chimera|SeaMonkey|Camino|Waterfox)/(\d+)\.(\d+)\.?([ab]?\d+[a-z]*|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Sailfish Browser
|
||
|
regex: (SailfishBrowser)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: \[(Pinterest)/[^\]]{1,50}\]
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: '(Pinterest)(?: for Android(?: Tablet|)|)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: Mozilla.{1,200}Mobile.{1,100}(Instagram).(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: Mozilla.{1,200}Mobile.{1,100}(Flipboard).(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: Mozilla.{1,200}Mobile.{1,100}(Flipboard-Briefing).(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: Mozilla.{1,200}Mobile.{1,100}(Onefootball)\/Android.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Snapchat)\/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Twitter
|
||
|
regex: (Twitter for (?:iPhone|iPad)|TwitterAndroid)(?:\/(\d+)\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Spider
|
||
|
regex: Mozilla.{1,100}Mobile.{1,100}AspiegelBot
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Spider
|
||
|
regex: AspiegelBot
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Basilisk
|
||
|
regex: (Firefox)/(\d+)\.(\d+) Basilisk/(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Pale Moon
|
||
|
regex: (PaleMoon)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox Mobile
|
||
|
regex: (Fennec)/(\d+)\.(\d+)\.?([ab]?\d+[a-z]*)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox Mobile
|
||
|
regex: (Fennec)/(\d+)\.(\d+)(pre)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox Mobile
|
||
|
regex: (Fennec)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox Mobile
|
||
|
regex: (?:Mobile|Tablet);.{0,200}(Firefox)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox ($1)
|
||
|
regex: (Namoroka|Shiretoko|Minefield)/(\d+)\.(\d+)\.(\d+(?:pre|))
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox Alpha
|
||
|
regex: (Firefox)/(\d+)\.(\d+)(a\d+[a-z]*)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox Beta
|
||
|
regex: (Firefox)/(\d+)\.(\d+)(b\d+[a-z]*)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox Alpha
|
||
|
regex: (Firefox)-(?:\d+\.\d+|)/(\d+)\.(\d+)(a\d+[a-z]*)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox Beta
|
||
|
regex: (Firefox)-(?:\d+\.\d+|)/(\d+)\.(\d+)(b\d+[a-z]*)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox ($1)
|
||
|
regex: (Namoroka|Shiretoko|Minefield)/(\d+)\.(\d+)([ab]\d+[a-z]*|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: MicroB
|
||
|
regex: (Firefox).{0,200}Tablet browser (\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (MozillaDeveloperPreview)/(\d+)\.(\d+)([ab]\d+[a-z]*|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Firefox iOS
|
||
|
regex: (FxiOS)/(\d+)\.(\d+)(\.(\d+)|)(\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Flock)/(\d+)\.(\d+)(b\d+?)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (RockMelt)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Netscape
|
||
|
regex: (Navigator)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Netscape
|
||
|
regex: (Navigator)/(\d+)\.(\d+)([ab]\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Netscape
|
||
|
regex: (Netscape6)/(\d+)\.(\d+)\.?([ab]?\d+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: My Internet Browser
|
||
|
regex: (MyIBrow)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: UC Browser
|
||
|
regex: (UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Opera Tablet).{0,200}Version/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Opera Mini)(?:/att|)/?(\d+|)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera Mobile
|
||
|
regex: (Opera)/.{1,100}Opera Mobi.{1,100}Version/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera Mobile
|
||
|
regex: (Opera)/(\d+)\.(\d+).{1,100}Opera Mobi
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera Mobile
|
||
|
regex: Opera Mobi.{1,100}(Opera)(?:/|\s+)(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera Mobile
|
||
|
regex: Opera Mobi
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Opera)/9.80.{0,200}Version/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera Mobile
|
||
|
regex: (?:Mobile Safari).{1,300}(OPR)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera
|
||
|
regex: (?:Chrome).{1,300}(OPR)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera Coast
|
||
|
regex: (Coast)/(\d+).(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera Mini
|
||
|
regex: (OPiOS)/(\d+).(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Opera Neon
|
||
|
regex: Chrome/.{1,200}( MMS)/(\d+).(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: webOS Browser
|
||
|
regex: (hpw|web)OS/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: LuaKit
|
||
|
regex: (luakit)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Snowshoe)/(\d+)\.(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: Gecko/\d+ (Lightning)/(\d+)\.(\d+)\.?((?:[ab]?\d+[a-z]*)|(?:\d*))
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Swiftfox
|
||
|
regex: (Firefox)/(\d+)\.(\d+)\.(\d+(?:pre|)) \(Swiftfox\)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Swiftfox
|
||
|
regex: (Firefox)/(\d+)\.(\d+)([ab]\d+[a-z]*|) \(Swiftfox\)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Rekonq
|
||
|
regex: (rekonq)/(\d+)\.(\d+)(?:\.(\d+)|) Safari
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Rekonq
|
||
|
regex: rekonq
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Conkeror
|
||
|
regex: (conkeror|Conkeror)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Konqueror
|
||
|
regex: (konqueror)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (WeTab)-Browser
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Comodo Dragon
|
||
|
regex: (Comodo_Dragon)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Symphony) (\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: NetFront NX
|
||
|
regex: PLAYSTATION 3.{1,200}WebKit
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: NetFront
|
||
|
regex: PLAYSTATION 3
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: NetFront
|
||
|
regex: (PlayStation Portable)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: NetFront NX
|
||
|
regex: (PlayStation Vita)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: NetFront NX
|
||
|
regex: AppleWebKit.{1,200} (NX)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: NetFront NX
|
||
|
regex: (Nintendo 3DS)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Amazon Silk
|
||
|
regex: (Silk)/(\d+)\.(\d+)(?:\.([0-9\-]+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Puffin)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Edge Mobile
|
||
|
regex: Windows Phone .{0,200}(Edge)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Edge Mobile
|
||
|
regex: (EdgiOS|EdgA)/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Samsung Internet
|
||
|
regex: (SamsungBrowser)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: "Seznam prohl\xED\u017Ee\u010D"
|
||
|
regex: (SznProhlizec)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Coc Coc
|
||
|
regex: (coc_coc_browser)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Baidu Browser
|
||
|
regex: (baidubrowser)[/\s](\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Baidu Explorer
|
||
|
regex: (FlyFlow)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Maxthon
|
||
|
regex: (MxBrowser)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Crosswalk)/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: LINE
|
||
|
regex: (Line)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: MiuiBrowser
|
||
|
regex: (MiuiBrowser)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Mint Browser
|
||
|
regex: (Mint Browser)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: TopBuzz
|
||
|
regex: (TopBuzz)/(\d+).(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Google
|
||
|
regex: Mozilla.{1,200}Android.{1,200}(GSA)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: QQ Browser Mini
|
||
|
regex: (MQQBrowser/Mini)(?:(\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: QQ Browser Mobile
|
||
|
regex: (MQQBrowser)(?:/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: QQ Browser
|
||
|
regex: (QQBrowser)(?:/(\d+)(?:\.(\d+)\.(\d+)(?:\.(\d+)|)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: DuckDuckGo Mobile
|
||
|
regex: Mobile.{0,200}(DuckDuckGo)/(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Tenta Browser
|
||
|
regex: (Tenta/)(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Chrome Mobile WebView
|
||
|
regex: Version/.{1,300}(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Chrome Mobile WebView
|
||
|
regex: ; wv\).{1,300}(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Chrome Mobile
|
||
|
regex: (CrMo)/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Chrome Mobile iOS
|
||
|
regex: (CriOS)/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Chrome Mobile
|
||
|
regex: (Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+) Mobile(?:[ /]|$)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Chrome Mobile
|
||
|
regex: ' Mobile .{1,300}(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Chrome Frame
|
||
|
regex: (chromeframe)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Tizen Browser
|
||
|
regex: (SLP Browser)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Sogou Explorer
|
||
|
regex: (SE 2\.X) MetaSr (\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: RackspaceBot
|
||
|
regex: (Rackspace Monitoring)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (PRTG Network Monitor)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (PyAMF)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Yandex Browser
|
||
|
regex: (YaBrowser)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Mail.ru Chromium Browser
|
||
|
regex: (Chrome)/(\d+)\.(\d+)\.(\d+).{0,100} MRCHROME
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (AOL) (\d+)\.(\d+); AOLBuild (\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (PodCruncher|Downcast)[ /]?(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ' (BoxNotes)/(\d+)\.(\d+)\.(\d+)'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Whale
|
||
|
regex: (Whale)/(\d+)\.(\d+)\.(\d+)\.(\d+) Mobile(?:[ /]|$)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Whale
|
||
|
regex: (Whale)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (1Password)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Ghost)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: PAN (GlobalProtect)/(\d+)\.(\d+)\.(\d+) .{1,100} \(X11; Linux x86_64\)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Slack Desktop Client
|
||
|
regex: (Slack_SSB)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: HipChat Desktop Client
|
||
|
regex: (HipChat)/?(\d+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: \b(MobileIron|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Spotify|Flock|Netscape|Lunascape|WebPilot|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera
|
||
|
Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\.Browser|Bunjalloo|Google Earth|Raven
|
||
|
for Mac|Openwave|MacOutlook|Electron|OktaMobile)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Outlook
|
||
|
regex: Microsoft Office Outlook 12\.\d+\.\d+|MSOffice 12
|
||
|
v1_replacement: '2007'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Outlook
|
||
|
regex: Microsoft Outlook 14\.\d+\.\d+|MSOffice 14
|
||
|
v1_replacement: '2010'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Outlook
|
||
|
regex: Microsoft Outlook 15\.\d+\.\d+
|
||
|
v1_replacement: '2013'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Outlook
|
||
|
regex: Microsoft Outlook (?:Mail )?16\.\d+\.\d+|MSOffice 16
|
||
|
v1_replacement: '2016'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: Microsoft Office (Word) 2014
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Windows Live Mail
|
||
|
regex: Outlook-Express\/7\.0
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Airmail) (\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Thunderbird
|
||
|
regex: (Thunderbird)/(\d+)\.(\d+)(?:\.(\d+(?:pre|))|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Postbox
|
||
|
regex: (Postbox)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Barca
|
||
|
regex: (Barca(?:Pro)?)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Lotus Notes
|
||
|
regex: (Lotus-Notes)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Superhuman
|
||
|
regex: Superhuman
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Vivaldi)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Edge
|
||
|
regex: (Edge?)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Brave
|
||
|
regex: (brave)/(\d+)\.(\d+)\.(\d+) Chrome
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Iron
|
||
|
regex: (Chrome)/(\d+)\.(\d+)\.(\d+)[\d.]{0,100} Iron[^/]
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: '\b(Dolphin)(?: |HDCN/|/INT\-)(\d+)\.(\d+)(?:\.(\d+)|)'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (HeadlessChrome)(?:/(\d+)\.(\d+)\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Evolution)/(\d+)\.(\d+)\.(\d+\.\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (RCM CardDAV plugin)/(\d+)\.(\d+)\.(\d+(?:-dev|))
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (bingbot|Bolt|AdobeAIR|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera
|
||
|
Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|iTunes|MacAppStore|NetNewsWire|Space
|
||
|
Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE
|
||
|
Browser|mDolphin|qutebrowser|Otter|QupZilla|MailBar|kmail2|YahooMobileMail|ExchangeWebServices|ExchangeServicesClient|Dragon|Outlook-iOS-Android)/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Chromium|Chrome)/(\d+)\.(\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: IE Mobile
|
||
|
regex: (IEMobile)[ /](\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (BacaBerita App)\/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(bPod|Pocket Casts|Player FM)$
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(AlexaMediaPlayer|VLC)/(\d+)\.(\d+)\.([^.\s]+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(AntennaPod|WMPlayer|Zune|Podkicker|Radio|ExoPlayerDemo|Overcast|PocketTunes|NSPlayer|okhttp|DoggCatcher|QuickNews|QuickTime|Peapod|Podcasts|GoldenPod|VLC|Spotify|Miro|MediaGo|Juice|iPodder|gPodder|Banshee)/(\d+)\.(\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Peapod|Liferea)/([^.\s]+)\.([^.\s]+|)\.?([^.\s]+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(bPod|Player FM) BMID/(\S+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: '^(Podcast ?Addict)/v(\d+) '
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: PodcastAddict
|
||
|
regex: '^(Podcast ?Addict) '
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Replay) AV
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (VOX) Music Player
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (CITA) RSS Aggregator/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Pocket Casts)$
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Player FM)$
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (LG Player|Doppler|FancyMusic|MediaMonkey|Clementine) (\d+)\.(\d+)\.?([^.\s]+|)\.?([^.\s]+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (philpodder)/(\d+)\.(\d+)\.?([^.\s]+|)\.?([^.\s]+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Player FM|Pocket Casts|DoggCatcher|Spotify|MediaMonkey|MediaGo|BashPodder)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (QuickTime)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Kinoma)(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: FancyMusic
|
||
|
regex: (Fancy) Cloud Music (\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ESPN
|
||
|
regex: EspnDownloadManager
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: '(ESPN) Radio (\d+)\.(\d+)(?:\.(\d+)|) ?(?:rv:(\d+)|) '
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (podracer|jPodder) v ?(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (ZDM)/(\d+)\.(\d+)[; ]?
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Zune|BeyondPod) (\d+)(?:\.(\d+)|)[\);]
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (WMPlayer)/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: WMPlayer
|
||
|
regex: ^(Lavf)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(RSSRadio)[ /]?(\d+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: RSSRadio
|
||
|
regex: (RSS_Radio) (\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Podkicker
|
||
|
regex: (Podkicker) \S+/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(HTC) Streaming Player \S+ / \S+ / \S+ / (\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Stitcher)/iOS
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Stitcher)/Android
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(VLC) .{0,200}version (\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ' (VLC) for'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: VLC
|
||
|
regex: (vlc)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(foobar)\S{1,10}/(\d+)\.(\d+|)\.?([\da-z]+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Clementine)\S{1,10} (\d+)\.(\d+|)\.?(\d+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Amarok
|
||
|
regex: (amarok)/(\d+)\.(\d+|)\.?(\d+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Custom)-Feed Reader
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (iCab|Lunascape|Opera|Android|Jasmine|Polaris|Microsoft SkyDriveSync|The
|
||
|
Bat!) (\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Kindle)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Android) Donut
|
||
|
v1_replacement: '1'
|
||
|
v2_replacement: '2'
|
||
|
- family_replacement: $1
|
||
|
regex: (Android) Eclair
|
||
|
v1_replacement: '2'
|
||
|
v2_replacement: '1'
|
||
|
- family_replacement: $1
|
||
|
regex: (Android) Froyo
|
||
|
v1_replacement: '2'
|
||
|
v2_replacement: '2'
|
||
|
- family_replacement: $1
|
||
|
regex: (Android) Gingerbread
|
||
|
v1_replacement: '2'
|
||
|
v2_replacement: '3'
|
||
|
- family_replacement: $1
|
||
|
regex: (Android) Honeycomb
|
||
|
v1_replacement: '3'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: IE Large Screen
|
||
|
regex: (MSIE) (\d+)\.(\d+).{0,100}XBLWP7
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Nextcloud)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (mirall)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Owncloud
|
||
|
regex: (ownCloud-android)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Skype
|
||
|
regex: (OC)/(\d+)\.(\d+)\.(\d+)\.(\d+) \(Skype for Business\)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: OpenVAS Scanner
|
||
|
regex: (OpenVAS)(?:-VT)?(?:[ \/](\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (AnyConnect)\/(\d+)(?:\.(\d+)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Monitis
|
||
|
regex: compatible; monitis
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Obigo)InternetBrowser
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Obigo)\-Browser
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Obigo
|
||
|
regex: (Obigo|OBIGO)[^\d]*(\d+)(?:.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Maxthon
|
||
|
regex: (MAXTHON|Maxthon) (\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Maxthon|MyIE2|Uzbl|Shiira)
|
||
|
v1_replacement: '0'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (BrowseX) \((\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: NCSA Mosaic
|
||
|
regex: (NCSA_Mosaic)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Polaris
|
||
|
regex: (POLARIS)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Polaris
|
||
|
regex: (Embider)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Bon Echo
|
||
|
regex: (BonEcho)/(\d+)\.(\d+)\.?([ab]?\d+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: TopBuzz
|
||
|
regex: (TopBuzz) com.alex.NewsMaster/(\d+).(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: TopBuzz
|
||
|
regex: (TopBuzz) com.mobilesrepublic.newsrepublic/(\d+).(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: TopBuzz
|
||
|
regex: (TopBuzz) com.topbuzz.videoen/(\d+).(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Google
|
||
|
regex: (iPod|iPhone|iPad).{1,200}GSA/(\d+)\.(\d+)\.(\d+)(?:\.(\d+)|) Mobile
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Mobile Safari
|
||
|
regex: (iPod|iPhone|iPad).{1,200}Version/(\d+)\.(\d+)(?:\.(\d+)|).{1,200}[ +]Safari
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Mobile Safari UI/WKWebView
|
||
|
regex: (iPod|iPod touch|iPhone|iPad);.{0,30}CPU.{0,30}OS[ +](\d+)_(\d+)(?:_(\d+)|).{0,30}
|
||
|
AppleNews\/\d+\.\d+(?:\.\d+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Mobile Safari UI/WKWebView
|
||
|
regex: (iPod|iPhone|iPad).{1,200}Version/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Mobile Safari
|
||
|
regex: (iPod|iPod touch|iPhone|iPad).{0,200} Safari
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Mobile Safari UI/WKWebView
|
||
|
regex: (iPod|iPod touch|iPhone|iPad)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Apple $1 App
|
||
|
regex: (Watch)(\d+),(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Outlook-iOS)/\d+\.\d+\.prod\.iphone \((\d+)\.(\d+)\.(\d+)\)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (AvantGo) (\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ONE Browser
|
||
|
regex: (OneBrowser)/(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Avant)
|
||
|
v1_replacement: '1'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (QtCarBrowser)
|
||
|
v1_replacement: '1'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: iBrowser Mini
|
||
|
regex: ^(iBrowser/Mini)(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(iBrowser|iRAPP)/(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Nokia Services (WAP) Browser
|
||
|
regex: ^(Nokia)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Nokia Browser
|
||
|
regex: (NokiaBrowser)/(\d+)\.(\d+).(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Nokia Browser
|
||
|
regex: (NokiaBrowser)/(\d+)\.(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Nokia Browser
|
||
|
regex: (NokiaBrowser)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Nokia Browser
|
||
|
regex: (BrowserNG)/(\d+)\.(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Nokia Browser
|
||
|
regex: (Series60)/5\.0
|
||
|
v1_replacement: '7'
|
||
|
v2_replacement: '0'
|
||
|
- family_replacement: Nokia OSS Browser
|
||
|
regex: (Series60)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Ovi Browser
|
||
|
regex: (S40OviBrowser)/(\d+)\.(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Nokia)[EN]?(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: BlackBerry WebKit
|
||
|
regex: (PlayBook).{1,200}RIM Tablet OS (\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: BlackBerry WebKit
|
||
|
regex: (Black[bB]erry|BB10).{1,200}Version/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: BlackBerry
|
||
|
regex: (Black[bB]erry)\s?(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (OmniWeb)/v(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Palm Blazer
|
||
|
regex: (Blazer)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Palm Pre
|
||
|
regex: (Pre)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (ELinks)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (ELinks) \((\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Links) \((\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (QtWeb) Internet Browser/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (PhantomJS)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: WebKit Nightly
|
||
|
regex: (AppleWebKit)/(\d+)(?:\.(\d+)|)\+ .{0,200} Safari
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Safari
|
||
|
regex: (Version)/(\d+)\.(\d+)(?:\.(\d+)|).{0,100}Safari/
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Safari)/\d+
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (OLPC)/Update(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (OLPC)/Update()\.(\d+)
|
||
|
v1_replacement: '0'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (SEMC\-Browser)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Teleca Browser
|
||
|
regex: (Teleca)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Phantom Browser
|
||
|
regex: (Phantom)/V(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: IE
|
||
|
regex: (Trident)/(7|8)\.(0)
|
||
|
v1_replacement: '11'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: IE
|
||
|
regex: (Trident)/(6)\.(0)
|
||
|
v1_replacement: '10'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: IE
|
||
|
regex: (Trident)/(5)\.(0)
|
||
|
v1_replacement: '9'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: IE
|
||
|
regex: (Trident)/(4)\.(0)
|
||
|
v1_replacement: '8'
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Espial)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Apple Mail
|
||
|
regex: (AppleWebKit)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Firefox)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Firefox)/(\d+)\.(\d+)(pre|[ab]\d+[a-z]*|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: IE
|
||
|
regex: ([MS]?IE) (\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Python Requests
|
||
|
regex: (python-requests)/(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: \b(Windows-Update-Agent|WindowsPowerShell|Microsoft-CryptoAPI|SophosUpdateManager|SophosAgent|Debian
|
||
|
APT-HTTP|Ubuntu APT-HTTP|libcurl-agent|libwww-perl|urlgrabber|curl|PycURL|Wget|wget2|aria2|Axel|OpenBSD
|
||
|
ftp|lftp|jupdate|insomnia|fetch libfetch|akka-http|got|CloudCockpitBackend|ReactorNetty|axios|Jersey|Vert.x-WebClient|Apache-CXF|Go-CF-client|go-resty|AHC)(?:[
|
||
|
/](\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: CloudFoundry
|
||
|
regex: ^(cf)\/(\d+)\.(\d+)\.(\S+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(sap-leonardo-iot-sdk-nodejs) \/ (\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(SAP NetWeaver Application Server) \(1.0;(\d{1})(\d{2})\)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: HTTPClient
|
||
|
regex: ^(\w+-HTTPClient)\/(\d+)\.(\d+)-(\S+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(go-cli)\s(\d+)\.(\d+).(\S+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Java-EurekaClient|Java-EurekaClient-Replication|HTTPClient|lua-resty-http)\/v?(\d+)\.(\d+)\.?(\d*)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(ping-service|sap xsuaa|Node-oauth|Site24x7|SAP CPI|JAEGER_SECURITY)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Python aiohttp
|
||
|
regex: (Python/3\.\d{1,3} aiohttp)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Java)[/ ]?\d+\.(\d+)\.(\d+)[_-]*([a-zA-Z0-9]+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (minio-go)/v(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(ureq)[/ ](\d+)\.(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(http\.rb)/(\d+)\.(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(GuzzleHttp)/(\d+)\.(\d+).(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(grab)\b
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Cyberduck)/(\d+)\.(\d+)\.(\d+)(?:\.\d+|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(S3 Browser) (\d+)[.-](\d+)[.-](\d+)(?:\s*https?://s3browser\.com|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (S3Gof3r)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: \b(ibm-cos-sdk-(?:core|java|js|python))/(\d+)\.(\d+)(?:\.(\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(rusoto)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(rclone)/v(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: ^(Roku)/DVP-(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: Kurio App
|
||
|
regex: (Kurio)\/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: '^(Box(?: Sync)?)/(\d+)\.(\d+)\.(\d+)'
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: ViaFree
|
||
|
regex: ^(ViaFree|Viafree)-(?:tvOS-)?[A-Z]{2}/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Transmit)/(\d+)\.(\d+)\.(\d+)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: (Download Master)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|
||
|
- family_replacement: $1
|
||
|
regex: \b(HTTrack) (\d+)\.(\d+)(?:[\.\-](\d+)|)
|
||
|
v1_replacement: $2
|
||
|
v2_replacement: $3
|