Shiny.Beacons 3.0.0-alpha-0516

Prefix Reserved
This is a prerelease version of Shiny.Beacons.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Shiny.Beacons --version 3.0.0-alpha-0516
                    
NuGet\Install-Package Shiny.Beacons -Version 3.0.0-alpha-0516
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Shiny.Beacons" Version="3.0.0-alpha-0516" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Shiny.Beacons" Version="3.0.0-alpha-0516" />
                    
Directory.Packages.props
<PackageReference Include="Shiny.Beacons" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Shiny.Beacons --version 3.0.0-alpha-0516
                    
#r "nuget: Shiny.Beacons, 3.0.0-alpha-0516"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Shiny.Beacons@3.0.0-alpha-0516
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Shiny.Beacons&version=3.0.0-alpha-0516&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Shiny.Beacons&version=3.0.0-alpha-0516&prerelease
                    
Install as a Cake Tool

Shiny v3 ALPHA for Microsoft Application UI (MAUI), Xamarin, & WebAssembly

<img src="https://github.com/shinyorg/shiny/raw/master/art/logo.png" width="100" />

THIS IS THE ALPHA/UNSTABLE BRANCH - FOR STABLE XAMARIN GO HERE

Shiny is a cross platform framework designed to make working with device services and background processes easy, testable, and consistent while bringing things like dependency injection & logging in a structured way to your code!

Features

  • Handles all of the cruft like Permissions, main thread traversal, persistent storage and app restarts
  • Brings your infrastructure to the background
  • Provides logging to ensure you know when your services fail in the background
  • Gives a clean & testable API surface for your code
  • Periodic Background Jobs
  • BLE Client & Hosting
  • Beacons Ranging & Monitoring
  • Locations - GPS, Geofencing, & Activity Monitoring (driving, walking, etc)
  • Push Notification - Native, Azure Notifications Hubs, Firebase, and more
  • Local Notifications - best of breed local notifications supporting almost all features across all of the supported platforms

Visual Studio Templates

These templates will help get you up & running quickly. Simply select what features of Shiny you want to use and they will wire up everything from permissions to app configuration.

GitHub NuGet

dotnet new --install Shiny.Templates

Support Shiny!

While Shiny is free and will continue to be so, maintenance and support takes a heavy toll on sustainability. If you or your company have the resources, please consider becoming a GitHub Sponsor. GitHub Sponsorships help to make Open Source Development more sustainable.

Depending on your Sponsorship Tier, you may also get access to some great benefits on Sponsor Connect (https://sponsorconnect.dev) including:

  • The Sponsor Only Discord server
  • Training available ONLY to sponsors on Sponsor Connect
  • Special sponsor-only packages

https://sponsor.shinylib.net

How about some Shiny Gear

Contributors

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-android33.0 is compatible.  net7.0-ios was computed.  net7.0-ios16.1 is compatible.  net7.0-maccatalyst was computed.  net7.0-maccatalyst16.1 is compatible.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed.  monoandroid12.0 is compatible. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed.  xamarinios10 is compatible. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Shiny.Beacons:

Package Downloads
Shiny.Testing

Shiny mocks to make your unit testing life easier

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.0-beta-0093 145 9/21/2025
4.0.0-beta-0092 276 9/17/2025
4.0.0-beta-0091 163 8/18/2025
4.0.0-beta-0086 186 6/23/2025
4.0.0-beta-0084 179 6/4/2025
4.0.0-beta-0083 170 6/3/2025
4.0.0-beta-0082 177 6/3/2025
4.0.0-beta-0081 104 5/30/2025
4.0.0-beta-0079 167 5/29/2025
4.0.0-beta-0075 116 5/24/2025
4.0.0-beta-0069 211 4/8/2025
4.0.0-beta-0061 192 4/3/2025
4.0.0-beta-0057 189 4/1/2025
4.0.0-beta-0055 160 3/27/2025
4.0.0-beta-0054 493 3/26/2025
4.0.0-beta-0049 127 3/21/2025
4.0.0-beta-0048 137 3/21/2025
4.0.0-beta-0047 173 3/20/2025
4.0.0-beta-0046 183 3/20/2025
4.0.0-beta-0040 163 6/14/2024
3.4.0-beta-0010 249 3/6/2025
3.4.0-beta-0009 137 2/5/2025
3.4.0-beta-0006 125 2/4/2025
3.4.0-beta-0005 129 2/4/2025
3.4.0-beta-0003 148 2/4/2025
3.3.4 1,156 1/15/2025
3.3.3 1,245 4/8/2024
3.3.3-beta-0007 161 4/8/2024
3.3.3-beta-0003 154 4/8/2024
3.3.2 206 3/26/2024
3.3.1 191 3/26/2024
3.3.0 200 3/18/2024
3.3.0-beta-0011 141 3/14/2024
3.3.0-beta-0009 138 3/12/2024
3.3.0-beta-0003 184 2/28/2024
3.2.4 346 2/3/2024
3.2.4-beta-0004 156 2/3/2024
3.2.4-beta-0002 152 2/2/2024
3.2.3 209 1/19/2024
3.2.2 247 1/3/2024
3.2.1 223 12/20/2023
3.2.0 245 12/11/2023
3.2.0-beta-0049 155 1/12/2024
3.2.0-beta-0042 167 1/3/2024
3.2.0-beta-0041 163 1/3/2024
3.2.0-beta-0034 182 12/20/2023
3.2.0-beta-0025 192 12/10/2023
3.2.0-beta-0022 200 11/29/2023
3.2.0-beta-0019 203 11/25/2023
3.2.0-beta-0010 191 11/11/2023
3.2.0-beta-0006 176 11/8/2023
3.1.2 406 11/8/2023
3.1.1 251 11/2/2023
3.1.0 237 10/27/2023
3.1.0-beta-0018 176 11/2/2023
3.1.0-beta-0017 211 10/27/2023
3.1.0-beta-0007 201 10/17/2023
3.1.0-beta-0005 204 10/14/2023
3.1.0-beta-0004 201 10/14/2023
3.0.1 984 9/20/2023
3.0.1-beta-0016 191 9/20/2023
3.0.1-beta-0002 198 9/14/2023
3.0.0 284 9/5/2023
3.0.0-beta-0305 249 9/1/2023
3.0.0-beta-0301 223 8/31/2023
3.0.0-beta-0300 251 8/31/2023
3.0.0-beta-0296 236 8/28/2023
3.0.0-beta-0293 247 8/28/2023
3.0.0-beta-0292 222 8/28/2023
3.0.0-beta-0282 228 8/25/2023
3.0.0-beta-0277 224 8/20/2023
3.0.0-beta-0273 218 8/20/2023
3.0.0-beta-0257 241 8/15/2023
3.0.0-beta-0245 239 8/8/2023
3.0.0-beta-0241 247 7/31/2023
3.0.0-beta-0231 261 7/25/2023
3.0.0-beta-0230 262 7/25/2023
3.0.0-beta-0215 259 7/18/2023
3.0.0-beta-0210 260 7/12/2023
3.0.0-beta-0200 271 7/5/2023
3.0.0-beta-0199 267 7/5/2023
3.0.0-beta-0179 311 6/27/2023
3.0.0-beta-0174 230 6/26/2023
3.0.0-beta-0165 223 6/22/2023
3.0.0-beta-0154 247 6/17/2023
3.0.0-beta-0153 225 6/16/2023
3.0.0-beta-0124 252 6/1/2023
3.0.0-beta-0122 246 5/31/2023
3.0.0-beta-0116 274 5/30/2023
3.0.0-beta-0114 277 5/29/2023
3.0.0-beta-0092 274 5/16/2023
3.0.0-beta-0081 236 5/13/2023
3.0.0-beta-0073 240 5/12/2023
3.0.0-beta-0039 247 5/7/2023
3.0.0-beta-0031 250 5/5/2023
3.0.0-beta-0026 255 4/28/2023
3.0.0-beta-0023 261 4/26/2023
3.0.0-beta-0015 259 4/22/2023
3.0.0-beta-0001 293 4/14/2023
3.0.0-alpha-0608 262 4/13/2023
3.0.0-alpha-0604 251 4/13/2023
3.0.0-alpha-0593 282 4/7/2023
3.0.0-alpha-0560 291 3/28/2023
3.0.0-alpha-0557 282 3/27/2023
3.0.0-alpha-0552 277 3/26/2023
3.0.0-alpha-0550 273 3/25/2023
3.0.0-alpha-0548 288 3/25/2023
3.0.0-alpha-0545 280 3/25/2023
3.0.0-alpha-0543 272 3/24/2023
3.0.0-alpha-0540 283 3/24/2023
3.0.0-alpha-0533 290 3/14/2023
3.0.0-alpha-0532 262 3/12/2023
3.0.0-alpha-0530 252 3/6/2023
3.0.0-alpha-0523 292 3/1/2023
3.0.0-alpha-0516 263 2/27/2023
3.0.0-alpha-0513 232 2/26/2023
3.0.0-alpha-0497 266 2/23/2023
3.0.0-alpha-0496 290 2/4/2023
3.0.0-alpha-0495 328 1/12/2023
3.0.0-alpha-0491 316 12/24/2022
3.0.0-alpha-0489 280 12/23/2022
3.0.0-alpha-0470 276 12/15/2022
3.0.0-alpha-0427 314 12/4/2022
3.0.0-alpha-0423 283 12/1/2022
3.0.0-alpha-0402 301 11/19/2022
3.0.0-alpha-0399 272 11/12/2022
3.0.0-alpha-0396 297 11/12/2022
3.0.0-alpha-0392 307 10/29/2022
3.0.0-alpha-0391 294 10/27/2022
3.0.0-alpha-0387 335 10/25/2022
3.0.0-alpha-0384 308 10/24/2022
3.0.0-alpha-0381 323 10/18/2022
3.0.0-alpha-0376 295 10/7/2022
3.0.0-alpha-0370 314 10/4/2022
3.0.0-alpha-0360 297 10/3/2022
3.0.0-alpha-0354 288 10/1/2022
3.0.0-alpha-0348 327 9/26/2022
3.0.0-alpha-0344 293 9/25/2022
3.0.0-alpha-0343 291 9/24/2022
3.0.0-alpha-0338 312 9/22/2022
3.0.0-alpha-0329 319 9/20/2022
3.0.0-alpha-0310 284 9/3/2022
3.0.0-alpha-0283 295 8/24/2022
3.0.0-alpha-0266 321 8/13/2022
3.0.0-alpha-0245 318 8/10/2022
3.0.0-alpha-0225 299 8/9/2022
3.0.0-alpha-0216 312 8/7/2022
3.0.0-alpha-0208 302 8/5/2022
3.0.0-alpha-0204 286 7/31/2022
3.0.0-alpha-0181 312 7/25/2022
3.0.0-alpha-0172 286 7/22/2022
3.0.0-alpha-0167 309 7/19/2022
3.0.0-alpha-0160 294 7/18/2022
3.0.0-alpha-0158 319 7/18/2022
3.0.0-alpha-0157 302 7/17/2022
3.0.0-alpha-0156 320 7/16/2022
3.0.0-alpha-0155 314 7/15/2022
3.0.0-alpha-0142 312 7/14/2022
3.0.0-alpha-0128 341 6/16/2022
3.0.0-alpha-0102 299 6/6/2022
3.0.0-alpha-0099 305 6/2/2022
3.0.0-alpha-0090 320 5/25/2022
3.0.0-alpha-0087 273 5/24/2022
3.0.0-alpha-0084 302 5/24/2022
3.0.0-alpha-0082 289 5/23/2022
3.0.0-alpha-0079 306 5/21/2022
3.0.0-alpha-0075 299 5/20/2022
3.0.0-alpha-0002 308 5/5/2022
2.7.3 1,459 8/25/2023
2.7.2 1,198 4/17/2023
2.7.1 617 11/11/2022
2.7.0 585 10/29/2022
2.6.3 673 9/14/2022
2.6.2 645 8/26/2022
2.6.1 659 8/15/2022
2.6.0 672 8/9/2022
2.5.5 2,114 6/17/2022
2.5.4 699 6/7/2022
2.5.3 788 6/1/2022
2.5.2 656 5/25/2022
2.5.1 924 5/10/2022
2.5.0-preview-3124 317 5/5/2022
2.5.0-preview-3117 306 5/3/2022
2.5.0-preview-3109 294 4/26/2022
2.5.0-preview-3108 313 4/25/2022
2.5.0-preview-3107 320 4/24/2022
2.5.0-preview-3100 340 4/22/2022
2.5.0-preview-3096-g833b58f618 287 4/22/2022
2.5.0-preview.3067 251 3/28/2022
2.5.0-preview.3062 229 3/26/2022
2.5.0-preview.3061 226 3/26/2022
2.5.0-preview.3045 226 3/23/2022
2.5.0-preview.3040 225 3/22/2022
2.5.0-preview.3028 212 3/21/2022
2.5.0-gceb9616c08 309 5/5/2022
2.4.3.3024 1,035 3/14/2022
2.4.3.3023 929 3/14/2022
2.4.3.3022 942 3/14/2022
2.4.3.3021 1,005 3/14/2022
2.4.3.3003 1,572 2/9/2022
2.4.3.3002-preview 359 2/9/2022
2.4.3.3000-preview 388 2/7/2022
2.4.3.2998-preview 391 2/5/2022
2.4.2.2996 1,152 1/11/2022
2.4.2.2995-preview 399 1/11/2022
2.4.1.2971 788 12/2/2021
2.4.1.2970-preview 398 12/2/2021
2.4.0.2967-preview 708 11/21/2021
2.4.0.2960 714 11/18/2021
2.3.0.2958 668 11/18/2021
2.3.0.2957-preview 410 11/18/2021
2.3.0.2946-preview 470 11/13/2021
2.3.0.2940-preview 460 11/11/2021
2.3.0.2936-preview 540 11/5/2021
2.3.0.2932-preview 413 11/4/2021
2.3.0.2923-preview 590 10/30/2021
2.3.0.2919-preview 515 10/29/2021
2.3.0.2909-preview 507 10/21/2021
2.3.0.2906 1,590 10/16/2021
2.3.0.2902-preview 478 10/14/2021
2.3.0.2898-preview 539 10/11/2021
2.3.0.2894-preview 501 10/10/2021
2.3.0.2891-preview 470 10/6/2021
2.3.0.2890-preview 514 10/5/2021
2.3.0.2888-preview 483 10/1/2021
2.3.0.2881-preview 453 9/27/2021
2.3.0.2879-preview 492 9/27/2021
2.3.0.2877-preview 461 9/24/2021
2.3.0.2869-preview 575 9/11/2021
2.3.0.2855-preview 472 8/25/2021
2.3.0.2852-preview 473 8/24/2021
2.3.0.2850-preview 449 8/24/2021
2.3.0.2848-preview 521 8/22/2021
2.2.0.2829 952 7/30/2021
2.2.0.2826-preview 546 7/29/2021
2.2.0.2824-preview 479 7/29/2021
2.2.0.2820-preview 513 7/27/2021
2.2.0.2818-preview 553 7/25/2021
2.2.0.2814-preview 500 7/22/2021
2.2.0.2813-preview 467 7/22/2021
2.2.0.2812-preview 454 7/22/2021
2.2.0.2804-preview 503 7/22/2021
2.2.0.2801-preview 443 7/19/2021
2.2.0.2800-preview 442 7/19/2021
2.2.0.2798-preview 483 7/19/2021
2.2.0.2791-preview 500 7/15/2021
2.2.0.2776-preview 498 7/8/2021
2.2.0.2762-preview 568 6/27/2021
2.2.0.2759-preview 493 6/19/2021
2.2.0.2753-preview 502 6/14/2021
2.1.0.2769 1,290 7/3/2021
2.1.0.2757 1,861 6/19/2021
2.1.0.2748-preview 452 6/13/2021
2.1.0.2744-preview 521 6/11/2021
2.1.0.2741 1,703 6/10/2021
2.1.0.2740-preview 502 6/10/2021
2.1.0.2731-preview 513 6/6/2021
2.1.0.2729-preview 477 6/6/2021
2.1.0.2710-preview 583 5/31/2021
2.1.0.2707-preview 568 5/29/2021
2.0.2696-preview 475 5/26/2021
2.0.2692-preview 496 5/26/2021
2.0.2691-preview 392 5/26/2021
2.0.2689-preview 420 5/26/2021
2.0.2687-preview 399 5/26/2021
2.0.2685-preview 401 5/26/2021
2.0.2682-preview 402 5/26/2021
2.0.2673-preview 501 5/20/2021
2.0.2672-preview 474 5/20/2021
2.0.2667-preview 563 5/16/2021
2.0.0.2655-preview 453 5/10/2021
2.0.0.2639 1,045 5/5/2021
2.0.0.2636-preview 532 4/30/2021
2.0.0.2632-preview 455 4/30/2021
2.0.0.2630-preview 498 4/29/2021
2.0.0.2628-preview 450 4/29/2021
2.0.0.2608-preview 476 4/21/2021
2.0.0.2606-preview 503 4/19/2021
2.0.0.2604-preview 521 4/19/2021
2.0.0.2593-preview 483 4/15/2021
2.0.0.2591-preview 489 4/15/2021
2.0.0.2579-preview 493 3/31/2021
2.0.0.2572-preview 451 3/29/2021
2.0.0.2570-preview 496 3/25/2021
2.0.0.2567-preview 483 3/25/2021
2.0.0.2560-preview 515 3/23/2021
2.0.0.2542-preview 541 3/15/2021
2.0.0.2533-preview 1,702 3/2/2021
2.0.0.2531-preview 493 3/2/2021
2.0.0.2524-preview 489 2/26/2021
2.0.0.2522-preview 484 2/26/2021
2.0.0.2518-preview 533 2/26/2021
2.0.0.2516-preview 525 2/25/2021
2.0.0.2508-preview 969 2/23/2021
2.0.0.2501-preview 471 2/18/2021
2.0.0.2487-preview 474 2/14/2021
2.0.0.2476-preview 522 2/12/2021
2.0.0.2462-preview 507 2/2/2021
2.0.0.2458-preview 479 1/29/2021
2.0.0.2450-preview 486 1/26/2021
2.0.0.2448-preview 466 1/25/2021
2.0.0.2434-preview 497 1/11/2021
2.0.0.2431-preview 617 1/10/2021
2.0.0.2427-preview 537 1/8/2021
2.0.0.2424-preview 545 1/7/2021
2.0.0.2417-preview 559 1/5/2021
2.0.0.2412-preview 589 1/1/2021
2.0.0.2410-preview 636 1/1/2021
2.0.0.2404-preview 595 12/26/2020
2.0.0.2401-preview 578 12/25/2020
2.0.0.2396-preview 514 12/22/2020
2.0.0.2394-preview 506 12/22/2020
2.0.0.2392-preview 624 12/22/2020
2.0.0.2389-preview 575 12/21/2020
2.0.0.2381-preview 551 12/15/2020
2.0.0.2373-preview 953 12/11/2020
2.0.0.2356-preview 632 11/9/2020
2.0.0.2349-preview 577 10/29/2020
2.0.0.2348-preview 743 10/29/2020
2.0.0.2337-preview 595 10/24/2020
2.0.0.2334-preview 590 10/24/2020
2.0.0.2333-preview 588 10/23/2020
2.0.0.2322-preview 604 10/20/2020
2.0.0.2320-preview 585 10/19/2020
2.0.0.2317-preview 595 10/19/2020
2.0.0.2312-preview 571 10/17/2020
2.0.0.2311-preview 509 10/17/2020
2.0.0.2310-preview 618 10/17/2020
2.0.0.2294-preview 575 10/13/2020
2.0.0.2285-preview 650 10/10/2020
2.0.0.2280-preview 2,348 10/8/2020
2.0.0.28-preview 527 10/17/2020
1.2.0.1755-beta 2,968 6/18/2020
1.2.0.1686-beta 1,098 6/4/2020
1.1.0.1570-beta 1,515 5/6/2020
1.1.0.1473-beta 2,575 3/17/2020
1.1.0.1469-beta 709 3/17/2020
1.1.0.1449-beta 1,290 3/12/2020
1.0.0.1182-beta 927 1/24/2020
1.0.0.1181-beta 583 1/24/2020
1.0.0.1179-beta 570 1/24/2020
1.0.0.1174-beta 646 1/24/2020
1.0.0.572-beta 583 1/16/2020
1.0.0.567-beta 603 1/16/2020
1.0.0.560-beta 694 1/11/2020
1.0.0.556-beta 720 1/11/2020
1.0.0.531-beta 904 12/22/2019
1.0.0.525-beta 564 12/21/2019
1.0.0.484-beta 1,594 11/1/2019
1.0.0.464-beta 795 10/19/2019
1.0.0.462-beta 691 10/18/2019
1.0.0.454-beta 777 10/15/2019
1.0.0.425-beta 755 9/27/2019
1.0.0.400-beta 797 9/17/2019
1.0.0.398-beta 671 9/17/2019
1.0.0.391-beta 1,064 9/13/2019
1.0.0.375-beta 703 9/9/2019
1.0.0.357-beta 725 8/21/2019
1.0.0.332-beta 719 8/11/2019
1.0.0.330-beta 808 8/10/2019
1.0.0.306-beta 707 8/1/2019
1.0.0.304-beta 733 8/1/2019
1.0.0.300-beta 703 7/30/2019
1.0.0.280-beta 734 7/20/2019
1.0.0.264-beta 709 7/7/2019
1.0.0.261-beta 721 7/6/2019
1.0.0.252-beta 741 7/1/2019
1.0.0.250-beta 720 6/29/2019
1.0.0.244-beta 753 6/27/2019
1.0.0.238-beta 801 6/18/2019
1.0.0.232-beta 663 6/15/2019
1.0.0.226-beta 737 6/13/2019
1.0.0.217-beta 766 6/10/2019
1.0.0.197-beta 732 6/5/2019
1.0.0.195-beta 744 6/5/2019
1.0.0.193-beta 735 5/29/2019
1.0.0.187-beta 697 5/25/2019
1.0.0.8-beta 719 5/21/2019
1.0.0.7-beta 691 5/16/2019
1.0.0.3-beta 758 5/7/2019
1.0.0.2-beta 722 4/30/2019
1.0.0 349 5/27/2023