Control-flow integrity (CFI) is a general term for computer security techniques that prevent a wide variety of malware attacks from redirecting the flow of execution (the control flow) of a program. == Background == A computer program commonly changes its control flow to make decisions and use different parts of the code. Such transfers may be direct, in that the target address is written in the code itself, or indirect, in that the target address itself is a variable in memory or a CPU register. In a typical function call, the program performs a direct call, but returns to the caller function using the stack – an indirect backward-edge transfer. When a function pointer is called, such as from a virtual table, we say there is an indirect forward-edge transfer. Attackers seek to inject code into a program to make use of its privileges or to extract data from its memory space. Before executable code was commonly made read-only, an attacker could arbitrarily change the code as it is run, targeting direct transfers or even do with no transfers at all. After W^X became widespread, an attacker wants to instead redirect execution to a separate, unprotected area containing the code to be run, making use of indirect transfers: one could overwrite the virtual table for a forward-edge attack or change the call stack for a backward-edge attack (return-oriented programming). CFI is designed to protect indirect transfers from going to unintended locations. == Techniques == Associated techniques include code-pointer separation (CPS), code-pointer integrity (CPI), stack canaries, shadow stacks (SS), and vtable pointer verification. These protections can be classified into either coarse-grained or fine-grained based on the number of targets restricted. A coarse-grained forward-edge CFI implementation, could, for example, restrict the set of indirect call targets to any function that may be indirectly called in the program, while a fine-grained one would restrict each indirect call site to functions that have the same type as the function to be called. Similarly, for a backward edge scheme protecting returns, a coarse-grained implementation would only allow the procedure to return to a function of the same type (of which there could be many, especially for common prototypes), while a fine-grained one would enforce precise return matching (so it can return only to the function that called it). == Implementations == Related implementations are available in Clang (LLVM front-end),, GNU Compiler Collection, Microsoft's Control Flow Guard and Return Flow Guard, Google's Indirect Function-Call Checks and Reuse Attack Protector (RAP). === LLVM/Clang === The LLVM compiler's C/C++ front-end Clang provides a number of "CFI" schemes that works on the forward edge by checking for errors in virtual tables and type casts. Not all of the schemes are supported on all platforms and most of them, the exception being two "kcfi" schemes intended for low-level kernel software, depends on link-time optimization (LTO) to know what functions are supposed to be called in normal cases. Also provided is a separate "shadow call stack" (SCS) instrumentation pass that defends on the backward edge by checking for call stack modifications, available only for the aarch64 and RISC-V ISAs. And due to use of a shared processor register SCS is only enforceable on certain ABIs or if in other ways it is ensured that any other software using the register set (thread/processor) does not interfere with this use. Google has shipped Android with the Linux kernel compiled by Clang with link-time optimization (LTO) and CFI enabled since 2018. Even though SCS is available for the Linux kernel as an option, and support is also available for Android's system components it is recommended only to enable it for components for which it can be ensured that no third party code is loaded. === GCC === The GNU Compiler Collection implemented a "shadow call stack" compatible with Clang for aarch64 in v12 released in 2022. This feature is primarily intended for building the Linux kernel as support is missing from GCC user space libraries. === Intel Control-flow Enforcement Technology === Intel Control-flow Enforcement Technology (CET) detects compromises to control flow integrity with a shadow stack (SS) and indirect branch tracking (IBT). The kernel must map a region of memory for the shadow stack not writable to user space programs except by special instructions. The shadow stack stores a copy of the return address of each CALL. On a RET, the processor checks if the return address stored in the normal stack and shadow stack are equal. If the addresses are not equal, the processor generates an INT #21 (Control Flow Protection Fault). Indirect branch tracking detects indirect JMP or CALL instructions to unauthorized targets. It is implemented by adding a new internal state machine in the processor. The behavior of indirect JMP and CALL instructions is changed so that they switch the state machine from IDLE to WAIT_FOR_ENDBRANCH. In the WAIT_FOR_ENDBRANCH state, the next instruction to be executed is required to be the new ENDBRANCH instruction (ENDBR32 in 32-bit mode or ENDBR64 in 64-bit mode), which changes the internal state machine from WAIT_FOR_ENDBRANCH back to IDLE. Thus every authorized target of an indirect JMP or CALL must begin with ENDBRANCH. If the processor is in a WAIT_FOR_ENDBRANCH state (meaning, the previous instruction was an indirect JMP or CALL), and the next instruction is not an ENDBRANCH instruction, the processor generates an INT #21 (Control Flow Protection Fault). On processors not supporting CET indirect branch tracking, ENDBRANCH instructions are interpreted as NOPs and have no effect. === Microsoft Control Flow Guard === Control Flow Guard (CFG) was first released for Windows 8.1 Update 3 (KB3000850) in November 2014. Developers can add CFG to their programs by adding the /guard:cf linker flag before program linking in Visual Studio 2015 or newer. As of Windows 10 Creators Update (Windows 10 version 1703), the Windows kernel is compiled with CFG. The Windows kernel uses Hyper-V to prevent malicious kernel code from overwriting the CFG bitmap. CFG operates by creating a per-process bitmap, where a set bit indicates that the address is a valid destination. Before performing each indirect function call, the application checks if the destination address is in the bitmap. If the destination address is not in the bitmap, the program terminates. This makes it more difficult for an attacker to exploit a use-after-free by replacing an object's contents and then using an indirect function call to execute a payload. ==== Implementation details ==== For all protected indirect function calls, the _guard_check_icall function is called, which performs the following steps: Convert the target address to an offset and bit number in the bitmap. The highest 3 bytes are the byte offset in the bitmap The bit offset is a 5-bit value. The first four bits are the 4th through 8th low-order bits of the address. The 5th bit of the bit offset is set to 0 if the destination address is aligned with 0x10 (last four bits are 0), and 1 if it is not. Examine the target's address value in the bitmap If the target address is in the bitmap, return without an error. If the target address is not in the bitmap, terminate the program. ==== Bypass techniques ==== There are several generic techniques for bypassing CFG: Set the destination to code located in a non-CFG module loaded in the same process. Find an indirect call that was not protected by CFG (either CALL or JMP). Use a function call with a different number of arguments than the call is designed for, causing a stack misalignment, and code execution after the function returns (patched in Windows 10). Use a function call with the same number of arguments, but one of pointers passed is treated as an object and writes to a pointer-based offset, allowing overwriting a return address. Overwrite the function call used by the CFG to validate the address (patched in March 2015) Set the CFG bitmap to all 1's, allowing all indirect function calls Use a controlled-write primitive to overwrite an address on the stack (since the stack is not protected by CFG) === Microsoft eXtended Flow Guard === eXtended Flow Guard (XFG) has not been officially released yet, but is available in the Windows Insider preview and was publicly presented at Bluehat Shanghai in 2019. XFG extends CFG by validating function call signatures to ensure that indirect function calls are only to the subset of functions with the same signature. Function call signature validation is implemented by adding instructions to store the target function's hash in register r10 immediately prior to the indirect call and storing the calculated function hash in the memory immediately preceding the target address's code. When the indirect call is made, the XFG validation function compares the value in r10 to the target
Time series
In mathematics, a time series is a sequence of data points indexed, listed, or graphed in chronological order. Most commonly, a time series consists of observations recorded at successive equally spaced points in time. Thus, it represents a form of discrete-time data. A time series may describe measurements collected over seconds, days, years, or even centuries. Common examples include heights of ocean tides, counts of sunspots, daily temperature readings, and the closing values of stock market indices such as the Dow Jones Industrial Average. A time series is often visualized using a run chart (a type of temporal line chart), which helps identify patterns such as trends, seasonal effects, and irregular fluctuations. Time series are widely used in statistics, actuarial science, signal processing, pattern recognition, econometrics, mathematical finance, weather forecasting, earthquake prediction, electroencephalography, control engineering, astronomy, communications engineering, and many other areas of applied science and engineering that involve temporal measurements. Time series analysis comprises methods for analyzing time series data in order to extract meaningful statistics and other characteristics of the data. Time series forecasting is the use of a model to predict future values based on previously observed values. Generally, time series data is modeled as a stochastic process. While regression analysis is often employed in such a way as to test relationships between one or more different time series, this type of analysis is not usually called "time series analysis", which refers in particular to relationships between different points in time within a single series. Time series data have a natural temporal ordering. This makes time series analysis distinct from cross-sectional studies, in which there is no natural ordering of the observations (e.g. explaining people's wages by reference to their respective education levels, where the individuals' data could be entered in any order). Time series analysis is also distinct from spatial data analysis where the observations typically relate to geographical locations (e.g. accounting for house prices by the location as well as the intrinsic characteristics of the houses). A stochastic model for a time series will generally reflect the fact that observations close together in time will be more closely related than observations further apart. In addition, time series models will often make use of the natural one-way ordering of time so that values for a given period will be expressed as deriving in some way from past values, rather than from future values (see time reversibility). Time series analysis can be applied to real-valued, continuous data, discrete numeric data, or discrete symbolic data (i.e. sequences of characters, such as letters and words in the English language). == Methods for analysis == Methods for time series analysis may be divided into two classes: frequency-domain methods and time-domain methods. The former include spectral analysis and wavelet analysis; the latter include auto-correlation and cross-correlation analysis. In the time domain, correlation and analysis can be made in a filter-like manner using scaled correlation, thereby mitigating the need to operate in the frequency domain. Additionally, time series analysis techniques may be divided into parametric and non-parametric methods. The parametric approaches assume that the underlying stationary stochastic process has a certain structure which can be described using a small number of parameters (for example, using an autoregressive or moving-average model). In these approaches, the task is to estimate the parameters of the model that describes the stochastic process. By contrast, non-parametric approaches explicitly estimate the covariance or the spectrum of the process without assuming that the process has any particular structure. Methods of time series analysis may also be divided into linear and non-linear, and univariate and multivariate. == Panel data == A time series is one type of panel data. Panel data is the general class, a multidimensional data set, whereas a time series data set is a one-dimensional panel (as is a cross-sectional dataset). A data set may exhibit characteristics of both panel data and time series data. One way to tell is to ask what makes one data record unique from the other records. If the answer is the time data field, then this is a time series data set candidate. If determining a unique record requires a time data field and an additional identifier which is unrelated to time (e.g. student ID, stock symbol, country code), then it is panel data candidate. If the differentiation lies on the non-time identifier, then the data set is a cross-sectional data set candidate. == Analysis == There are several types of motivation and data analysis available for time series which are appropriate for different purposes. === Motivation === In the context of statistics, econometrics, quantitative finance, seismology, meteorology, and geophysics the primary goal of time series analysis is forecasting. In the context of signal processing, control engineering and communication engineering it is used for signal detection. Other applications are in data mining, pattern recognition and machine learning, where time series analysis can be used for clustering, classification, query by content, anomaly detection as well as forecasting. === Exploratory analysis === A simple way to examine a regular time series is manually with a line chart. The datagraphic shows tuberculosis deaths in the United States, along with the yearly change and the percentage change from year to year. The total number of deaths declined in every year until the mid-1980s, after which there were occasional increases, often proportionately - but not absolutely - quite large. A study of corporate data analysts found two challenges to exploratory time series analysis: discovering the shape of interesting patterns, and finding an explanation for these patterns. Visual tools that represent time series data as heat map matrices can help overcome these challenges. === Estimation, filtering, and smoothing === This approach may be based on harmonic analysis and filtering of signals in the frequency domain using the Fourier transform, and spectral density estimation. Its development was significantly accelerated during World War II by mathematician Norbert Wiener, electrical engineers Rudolf E. Kálmán, Dennis Gabor and others for filtering signals from noise and predicting signal values at a certain point in time. An equivalent effect may be achieved in the time domain, as in a Kalman filter; see filtering and smoothing for more techniques. Other related techniques include: Autocorrelation analysis to examine serial dependence Spectral analysis to examine cyclic behavior which need not be related to seasonality. For example, sunspot activity varies over 11 year cycles. Other common examples include celestial phenomena, weather patterns, neural activity, commodity prices, and economic activity. Separation into components representing trend, seasonality, slow and fast variation, and cyclical irregularity: see trend estimation and decomposition of time series === Curve fitting === Curve fitting is the process of constructing a curve, or mathematical function, that has the best fit to a series of data points, possibly subject to constraints. Curve fitting can involve either interpolation, where an exact fit to the data is required, or smoothing, in which a "smooth" function is constructed that approximately fits the data. A related topic is regression analysis, which focuses more on questions of statistical inference such as how much uncertainty is present in a curve that is fit to data observed with random errors. Fitted curves can be used as an aid for data visualization, to infer values of a function where no data are available, and to summarize the relationships among two or more variables. Extrapolation refers to the use of a fitted curve beyond the range of the observed data, and is subject to a degree of uncertainty since it may reflect the method used to construct the curve as much as it reflects the observed data. For processes that are expected to generally grow in magnitude one of the curves in the graphic (and many others) can be fitted by estimating their parameters. The construction of economic time series involves the estimation of some components for some dates by interpolation between values ("benchmarks") for earlier and later dates. Interpolation is estimation of an unknown quantity between two known quantities (historical data), or drawing conclusions about missing information from the available information ("reading between the lines"). Interpolation is useful where the data surrounding the missing data is available and its trend, seasonality, and longer-term cycles are known. This is often done by using a relat
Deepfake pornography
Deepfake pornography is a form of non-consensual AI pornography created by altering existing photographs or videos using deepfake technology to modify the appearance of the participants. The use of deepfake pornography has sparked controversy because it involves the making and sharing of realistic videos featuring non-consenting individuals and is sometimes used for revenge porn. Many countries have criminalized this "new voyeurism" through legislative measures and technological solutions. == History == The term "deepfake" was coined in 2017 on a Reddit forum where users shared altered pornographic videos created using machine learning algorithms. It is a combination of the word "deep learning", which refers to the program used to create the videos, and "fake" meaning the videos are not real. Deepfake pornography was originally created on a small individual scale using a combination of machine learning algorithms, computer vision techniques, and AI software. The process began by gathering a large amount of source material (including both images and videos) of a person's face, and then using a deep learning model to train a Generative Adversarial Network to create a fake video that convincingly swaps the face of the source material onto the body of a pornographic performer. However, the production process has significantly evolved since 2018, with the advent of several public apps that have largely automated the process. While several AI "nudification" apps emerged on mainstream platforms like Google Play and the Apple App Store around 2023, major tech storefronts have since implemented stricter policies and automated detection to ban such software. Consequently, the proliferation of non-consensual deepfake pornography has largely shifted to decentralized websites, specialized online forums, and third-party messaging bot ecosystems. Deepfake pornography is sometimes confused with fake nude photography, but the two are mostly different. Fake nude photography typically uses non-sexual images and merely makes it appear that the people in them are nude. == Notable cases == Deepfake technology has been used to create non-consensual and pornographic images and videos of famous women. One of the earliest examples occurred in 2017 when a deepfake pornographic video of Gal Gadot was created by a Reddit user and quickly spread online. Since then, there have been numerous instances of similar deepfake content targeting other female celebrities, such as Emma Watson, Natalie Portman, and Scarlett Johansson. Johansson spoke publicly on the issue in December 2018, condemning the practice but also refusing legal action because she views the harassment as inevitable. === Rana Ayyub === In 2018, Rana Ayyub, an Indian investigative journalist, was the target of an online hate campaign stemming from her condemnation of the Indian government, specifically her speaking out against the rape of an eight-year-old Kashmiri girl. Ayyub was bombarded with rape and death threats, and had a doctored pornographic video of her circulated online. In a Huffington Post article, Ayyub discussed the long-lasting psychological and social effects this experience has had on her. She explained that she continued to struggle with her mental health and how the images and videos continued to resurface whenever she took a high-profile case. === Atrioc controversy === In 2023, Twitch streamer Atrioc stirred controversy when he accidentally revealed deepfake pornographic material featuring female Twitch streamers while on live. The influencer has since admitted to paying for AI generated porn, and apologized to the women and his fans. === Taylor Swift === In January 2024, AI-generated sexually explicit images of American singer Taylor Swift were posted on X (formerly Twitter), and spread to other platforms such as Facebook, Reddit and Instagram. One tweet with the images was viewed over 45 million times before being removed. A report from 404 Media found that the images appeared to have originated from a Telegram group, whose members used tools such as Microsoft Designer to generate the images, using misspellings and keyword hacks to work around Designer's content filters. After the material was posted, Swift's fans posted concert footage and images to bury the deepfake images, and reported the accounts posting the deepfakes. Searches for Swift's name were temporarily disabled on X, returning an error message instead. Graphika, a disinformation research firm, traced the creation of the images back to a 4chan community. A source close to Swift told the Daily Mail that she would be considering legal action, saying, "Whether or not legal action will be taken is being decided, but there is one thing that is clear: These fake AI-generated images are abusive, offensive, exploitative, and done without Taylor's consent and/or knowledge." The controversy drew condemnation from White House Press Secretary Karine Jean-Pierre, Microsoft CEO Satya Nadella, the Rape, Abuse & Incest National Network, and SAG-AFTRA. Several US politicians called for federal legislation against deepfake pornography. Later in the month, US senators Dick Durbin, Lindsey Graham, Amy Klobuchar and Josh Hawley introduced a bipartisan bill that would allow victims to sue individuals who produced or possessed "digital forgeries" with intent to distribute, or those who received the material knowing it was made non-consensually. === 2024 Telegram deepfake scandal === It emerged in South Korea in August 2024, that many teachers and female students were victims of deepfake images created by users who utilized AI technology. Journalist Ko Narin of The Hankyoreh uncovered the deepfake images through Telegram chats. On Telegram, group chats were created specifically for image-based sexual abuse of women, including middle and high school students, teachers, and even family members. Women with photos on social media platforms like KakaoTalk, Instagram, and Facebook are often targeted as well. Perpetrators use AI bots to generate fake images, which are then sold or widely shared, along with the victims' social media accounts, phone numbers, and KakaoTalk usernames. One Telegram group reportedly drew around 220,000 members, according to a Guardian report. Investigations revealed numerous chat groups on Telegram where users, mainly teenagers, create and share explicit deepfake images of classmates and teachers. The issue came in the wake of a troubling history of digital sex crimes, notably the notorious Nth Room case in 2019. The Korean Teachers Union estimated that more than 200 schools had been affected by these incidents. Activists called for a "national emergency" declaration to address the problem. South Korean police reported over 800 deepfake sex crime cases by the end of September 2024, a stark rise from just 156 cases in 2021, with most victims and offenders being teenagers. On September 21, 6,000 people gathered at Marronnier Park in northeastern Seoul to demand stronger legal action against deepfake crimes targeting women. On September 26, following widespread outrage over the Telegram scandal, South Korean lawmakers passed a bill criminalizing the possession or viewing of sexually explicit deepfake images and videos, imposing penalties that include prison terms and fines. Under the new law, those caught buying, saving, or watching such material could face up to three years in prison or fines up to 30 million won ($22,600). At the time the bill was proposed, creating sexually explicit deepfakes for distribution carried a maximum penalty of five years, but the new legislation would increase this to seven years, regardless of intent. By October 2024, it was estimated that "nudify" deep fake bots on Telegram were up to four million monthly users. === 2025–2026 Grok/X chatbot deepfake scandal === In December 2025, Bloomberg reported that X users found Grok would comply with unconsensual requests to digitally undress individuals, including minors, or show them performing sexually explicit acts. The majority of these prompts were targeted at women and girls. An analysis of 20,000 images generated by Grok between December 25, 2025 and January 1, 2026 showed 2% were of people in bikinis or transparent clothes and appeared to be 18 or younger, including 30 of "young or very young" women or girls. A separate analysis conducted over 24 hours from January 5 to 6 calculated that users had Grok create 6,700 sexually suggestive or nudified images per hour. xAI responded to requests for comment from media organizations with the automated reply, "Legacy Media Lies". The bot's image generation sparked an international backlash and calls for legal or regulatory action from officials in the European Union, United Kingdom, Poland, France, India, Malaysia, and Brazil. === Fernandes–Ulmen case === German TV presenter Collien Fernandes, filed a complaint against her ex-husband, actor Christian Ulmen, for several accusation including, ident
Paranoia (role-playing game)
Paranoia is a dystopian science-fiction tabletop role-playing game originally designed and written by Greg Costikyan, Dan Gelber, and Eric Goldberg, and first published in 1984 by West End Games. Since 2004 the game has been published under license by Mongoose Publishing. The game won the Origins Award for Best Roleplaying Rules of 1984 and was inducted into the Origins Awards Hall of Fame in 2007. Paranoia is notable among tabletop games for being more competitive than co-operative, with players encouraged to betray one another for their own interests, as well as for keeping a light-hearted, tongue in cheek tone despite its dystopian setting. Several editions of the game have been published since the original version, and the franchise has spawned several spin-offs, novels and comic books based on the game. == Premise == The game is set in a dystopian future city controlled by the Computer (also known as "Friend Computer"), and where information (including the game rules) are restricted by color-coded "security clearance". Player characters are initially enforcers of the Computer's authority known as Troubleshooters, and are given missions to seek out and eliminate threats to the Computer's control. They are also part of prohibited underground movements, and have secret objectives including theft from and murder of other player characters. == Tone == Paranoia is a humorous role-playing game set in a dystopian future along the lines of Nineteen Eighty-Four, Brave New World, Logan's Run, and THX 1138; however, the tone of the game is rife with black humor, frequently tongue-in-cheek rather than dark and heavy. Most of the game's humor is derived from the players' (usually futile) attempts to complete their assignment while simultaneously adhering to the Computer's arbitrary, contradictory and often nonsensical security directives. The Paranoia rulebook is unusual in a number of ways; demonstrating any knowledge of the rules is forbidden, and most of the rulebook is written in an easy, conversational tone that often makes fun of the players and their characters, while occasionally taking digs at other notable role-playing games. === Setting === The game's main setting is an immense, futuristic city called Alpha Complex. Alpha Complex is controlled by the Computer, a civil service AI construct (a literal realization of the "Influencing Machine" that some schizophrenics fear). The Computer serves as the game's principal antagonist, and fears a number of threats to its 'perfect' society, such as the Outdoors, mutants, and secret societies (especially Communists). To deal with these threats, the Computer employs Troubleshooters, whose job is to go out, find trouble, and shoot it. Player characters are usually Troubleshooters, although later game supplements have allowed the players to take on other roles, such as High-Programmers of Alpha Complex. The player characters frequently receive mission instructions from the Computer that are incomprehensible, self-contradictory, or obviously fatal if adhered to, and side-missions (such as Mandatory Bonus Duties) that conflict with the main mission. Failing a mission generally results in termination of the player character, but succeeding can just as often result in the same fate, after being rewarded for successfully concluding the mission. They are issued equipment that is uniformly dangerous, faulty, or "experimental" (i.e., almost certainly dangerous and faulty). Additionally, each player character is generally an unregistered mutant and a secret society member (which are both termination offenses in Alpha Complex), and has a hidden agenda separate from the group's goals, often involving stealing from or killing teammates. Thus, missions often turn into a comedy of errors, as everyone on the team seeks to double-cross everyone else while keeping their own secrets. The game's manual encourages suspicion between players, offering several tips on how to make the gameplay as paranoid as possible. Every player's character is assigned six clones, known as a six-pack, which are used to replace the preceding clone upon his or her death. The game lacks a conventional health system; most wounds the player characters can suffer are assumed to be fatal. As a result, Paranoia allows characters to be routinely killed, yet the player can continue instead of leaving the game. This easy spending of clones tends to lead to frequent firefights, gruesome slapstick, and the horrible yet humorous demise of most if not all of the player character's clone family. Additional clones can be purchased if one gains sufficient favour with the Computer. === Security clearances === Paranoia features a security clearance system based on colors of the visible spectrum which heavily restricts what the players can and cannot legally do; everything from corridors to food and equipment have security restrictions. The lowest rating is Infrared, but the lowest playable security clearance is Red; the game usually begins with the characters having just been promoted to Red grade. Interfering with anything which is above that player's clearance carries significant risk. The full order of clearances from lowest to highest is Infrared (visually represented by black), Red, Orange, Yellow, Green, Blue, Indigo, Violet, and Ultraviolet (visually represented by white). Within the game, Infrared-clearance citizens live dull lives of mindless drudgery and are heavily medicated, while higher clearance characters may be allowed to demote or even summarily execute those of a lower rank and those with Ultraviolet clearance are almost completely unrestricted and have a great deal of access to the Computer; they are the only citizens that may (legally) access and modify the Computer's programming, and thus Ultraviolet citizens are also referred to as "High Programmers". Security clearance is not related to competence but is instead the result of the Computer's often insane and unjustified calculus of trust concerning a citizen. It is suggested that it may in fact be the High Programmers' meddling with The Computer's programming that resulted in its insanity. === Secret societies === In the game, secret societies tend to be based on sketchy and spurious knowledge of historical matters. For example, previous editions included societies such as the "Seal Club" that idolizes the Outdoors but is unsure what plants and animals actually look like. Other societies include the Knights of the Circular Object (based on the Knights of the Round Table), the Trekkies, and the First Church of Christ Computer Programmer. In keeping with the theme of paranoia, many secret societies have spies or double agents in each other's organizations. The first edition also included secret societies such as Programs Groups (the personal agents and spies of the High Programmers at the apex of Alpha Complex society) and Spy For Another Alpha Complex. The actual societies which would be encountered in a game depends on the play style; some societies are more suited for more light-hearted games (Zap-style, or the lighter end of Classic), whereas others represent a more serious threat to Alpha Complex and are therefore more suitable for Straight or the more dark sort of Classic games. == Publication history == Six editions have been published. Three of these were published by West End Games — the first, second, and fifth editions — whereas the later three editions (Paranoia XP, the 25th Anniversary edition and the "Red Clearance" edition) were published by Mongoose Publishing. In addition to these six published editions, it is known that West End Games were working on a third edition — to replace the poorly received fifth edition — in the late 1990s, but their financial issues would prevent this edition from being published, except for being included in one tournament adventure. === First edition === The first edition, was written by Greg Costikyan, Dan Gelber, and Eric Goldberg, and published in 1984 by West End Games. In 1985, this edition of Paranoia won the Origins Award for Best Roleplaying Rules of 1984. This edition, while encouraging dark humour in-game, took a fairly serious dystopian tone; the supplements and adventures released to accompany it emphasised the lighter side, however, establishing the freewheeling mix of slapstick, intra-team backstabbing and satire that is classically associated with a game of Paranoia. === Second edition === The second edition, is credited to Costikyan, Gelber, Goldberg, Ken Rolston, and Paul Murphy, was published in 1987 by West End Games. This edition can be seen as a response to the natural development of the line towards a rules-light, fast and entertaining play style. Here, the humorous possibilities of life in a paranoid dystopia are emphasised, and the rules are simplified. ==== Metaplot and the second edition ==== Many of the supplements released for the second edition fall into a story arc set up by new writers and line editors
Abu Dhabi Autonomous Racing League
The Abu Dhabi Autonomous Racing League (A2RL) is an autonomous racing league based in Abu Dhabi and organized by ASPIRE, part of the UAE government's Advanced Technology Research Council. It has three distinct categories: the "car race", the drone race, and the buggy race. The first car race was held on 27 April 2024 at the Yas Marina Circuit, marking the first major autonomous formula race outside the US since the now-folded Roborace championship. The first drone race was held on 11 and 12 April 2025. == Formats == A2RL has three distinct formats, the formula racing format (dubbed the Car Race), the quadcopter drone racing format (dubbed the Drone Race), and the off-road dune buggy racing format (dubbed the Buggy Race). === Car Race === A2RL's main event, the car race is a standard formula racing format with self-driving formula cars. The cars are made by Dallara and are modified versions of Super Formula cars with Yokohama tires. These cars had the CPUs of their AIs mounted where the driver's seat is on a non-modified chassis, as well as hydraulic actuators for AI control of the vehicle, multiple sensor systems including LIDAR and GPS, and a large LED indicator showing the status of the AI. The first car race was held on 27 April 2024. This race was marked by the cars' subpar performance: Out of four cars that qualified, only two finished the race - the other two did not. The next race was held on 15 November 2025, with 11 teams. ==== Technical specifications ==== The full list of technical specifications are as follows: Chassis: Dallara EAV24 (modified Dallara SF23) Forward suspension: Pushrod type, torsion bar spring, adjustable dampers, third element Rear suspension: Pushrod type, torsion bar, coil springs, adjustable dampers, third element Tires: Yokohama Advan Drive-by-wire system: Provided by Meccanica 42, the DBW system consists of steering and brake actuators, with a central ECU that coordinates the driving actions and reacts to any critical situation in real-time. Brakes: Brembo calipers, Brembo carbon discs, electro-hydraulically activated Engine: 4 Piston Racing K20C1 (based on Honda 2.0l; turbocharged 4-cylinder engine) Gearbox: 3MO 6-speed gearbox Sensor suite: 7x Sony IMX728 cameras, 4x ZF ProWave radar units, 3x Seyond Falcon Kinetic lidar units Main computer: Neousys RGS-8805GC ==== Races held ==== === Drone Race === Created in partnership with the Drone Champions' League, the drone race is the quadcopter drone racing aerial format of the A2RL. The first race was held on 11/12 April 2025 at the ADNEC Marina Hall. 10 teams are scheduled to take part. === Buggy Race === The buggy race will be the off-road format of the A2RL using self-driving dune buggies. No date or number of teams has been announced for the first race. === Other events === A2RL is known to host AI vs AI and Human vs AI events, in Abu Dhabi and abroad. One such event took place at the Suzuka Circuit in Japan. The Human vs AI race was precluded due to AI car "Yalla" crashing into the wall during the formation lap. == Team lists ==
Rademacher complexity
In computational learning theory (machine learning and theory of computation), Rademacher complexity, named after Hans Rademacher, measures richness of a class of sets with respect to a probability distribution. The concept can also be extended to real valued functions. == Definitions == === Rademacher complexity of a set === Given a set A ⊆ R m {\displaystyle A\subseteq \mathbb {R} ^{m}} , the Rademacher complexity of A is defined as follows: Rad ( A ) := 1 m E σ [ sup a ∈ A ∑ i = 1 m σ i a i ] {\displaystyle \operatorname {Rad} (A):={\frac {1}{m}}\mathbb {E} _{\sigma }\left[\sup _{a\in A}\sum _{i=1}^{m}\sigma _{i}a_{i}\right]} where σ 1 , σ 2 , … , σ m {\displaystyle \sigma _{1},\sigma _{2},\dots ,\sigma _{m}} are independent random variables drawn from the Rademacher distribution i.e. Pr ( σ i = + 1 ) = Pr ( σ i = − 1 ) = 1 / 2 {\displaystyle \Pr(\sigma _{i}=+1)=\Pr(\sigma _{i}=-1)=1/2} for i ∈ { 1 , 2 , … , m } {\displaystyle i\in \{1,2,\dots ,m\}} , and a = ( a 1 , … , a m ) ∈ A {\displaystyle a=(a_{1},\ldots ,a_{m})\in A} . Some authors take the absolute value of the sum before taking the supremum, but if A {\displaystyle A} is symmetric this makes no difference. === Rademacher complexity of a function class === Let S = { z 1 , z 2 , … , z m } ⊆ Z {\displaystyle S=\{z_{1},z_{2},\dots ,z_{m}\}\subseteq Z} be a sample of points and consider a function class F {\displaystyle {\mathcal {F}}} of real-valued functions over Z {\displaystyle Z} . Then, the empirical Rademacher complexity of F {\displaystyle {\mathcal {F}}} given S {\displaystyle S} is defined as: Rad S ( F ) = 1 m E σ [ sup f ∈ F | ∑ i = 1 m σ i f ( z i ) | ] {\displaystyle \operatorname {Rad} _{S}({\mathcal {F}})={\frac {1}{m}}\mathbb {E} _{\sigma }\left[\sup _{f\in {\mathcal {F}}}\left|\sum _{i=1}^{m}\sigma _{i}f(z_{i})\right|\right]} This can also be written using the previous definition: Rad S ( F ) = Rad ( F ∘ S ) {\displaystyle \operatorname {Rad} _{S}({\mathcal {F}})=\operatorname {Rad} ({\mathcal {F}}\circ S)} where F ∘ S {\displaystyle {\mathcal {F}}\circ S} denotes function composition, i.e.: F ∘ S := { ( f ( z 1 ) , … , f ( z m ) ) ∣ f ∈ F } {\displaystyle {\mathcal {F}}\circ S:=\{(f(z_{1}),\ldots ,f(z_{m}))\mid f\in {\mathcal {F}}\}} The worst case empirical Rademacher complexity is Rad ¯ m ( F ) = sup S = { z 1 , … , z m } Rad S ( F ) {\displaystyle {\overline {\operatorname {Rad} }}_{m}({\mathcal {F}})=\sup _{S=\{z_{1},\dots ,z_{m}\}}\operatorname {Rad} _{S}({\mathcal {F}})} Let P {\displaystyle P} be a probability distribution over Z {\displaystyle Z} . The Rademacher complexity of the function class F {\displaystyle {\mathcal {F}}} with respect to P {\displaystyle P} for sample size m {\displaystyle m} is: Rad P , m ( F ) := E S ∼ P m [ Rad S ( F ) ] {\displaystyle \operatorname {Rad} _{P,m}({\mathcal {F}}):=\mathbb {E} _{S\sim P^{m}}\left[\operatorname {Rad} _{S}({\mathcal {F}})\right]} where the above expectation is taken over an identically independently distributed (i.i.d.) sample S = ( z 1 , z 2 , … , z m ) {\displaystyle S=(z_{1},z_{2},\dots ,z_{m})} generated according to P {\displaystyle P} . == Intuition == The Rademacher complexity is typically applied on a function class of models that are used for classification, with the goal of measuring their ability to classify points drawn from a probability space under arbitrary labellings. When the function class is rich enough, it contains functions that can appropriately adapt for each arrangement of labels, simulated by the random draw of σ i {\displaystyle \sigma _{i}} under the expectation, so that this quantity in the sum is maximized. The Rademacher complexity of a set A {\displaystyle A} can be rewritten as Rad ( A ) := 1 m E σ [ sup a ∈ A ∑ i = 1 m σ i a i ] = 1 m 2 m ∑ σ ∈ { − 1 / m , + 1 / m } m [ sup a ∈ A ⟨ σ , a ⟩ ] . {\displaystyle \operatorname {Rad} (A):={\frac {1}{m}}\mathbb {E} _{\sigma }\left[\sup _{a\in A}\sum _{i=1}^{m}\sigma _{i}a_{i}\right]={\frac {1}{{\sqrt {m}}2^{m}}}\sum _{\sigma \in \{-1/{\sqrt {m}},+1/{\sqrt {m}}\}^{m}}\left[\sup _{a\in A}\langle \sigma ,a\rangle \right].} Each term in the summation is the farthest distance of the set A {\displaystyle A} from the origin, along a unit-length direction σ {\displaystyle \sigma } . The directions are along the vertices of a hypercube. Thus, we can also write it as Rad ( A ) = 1 2 m 1 2 m − 1 ∑ σ ∈ { − 1 / m , + 1 / m } m / { − 1 , + 1 } [ sup a ∈ A ⟨ σ , a ⟩ − inf a ∈ A ⟨ σ , a ⟩ ] {\displaystyle \operatorname {Rad} (A)={\frac {1}{2{\sqrt {m}}}}{\frac {1}{2^{m-1}}}\sum _{\sigma \in \{-1/{\sqrt {m}},+1/{\sqrt {m}}\}^{m}/\{-1,+1\}}\left[\sup _{a\in A}\langle \sigma ,a\rangle -\inf _{a\in A}\langle \sigma ,a\rangle \right]} Here, the set { − 1 / m , + 1 / m } m / { − 1 , + 1 } {\displaystyle \{-1/{\sqrt {m}},+1/{\sqrt {m}}\}^{m}/\{-1,+1\}} denotes half of the vertices of a hypercube, selected so that each diagonal has exactly one vertex selected. In words, this states that 2 m Rad ( A ) {\displaystyle 2{\sqrt {m}}\operatorname {Rad} (A)} is precisely the average width of the set A {\displaystyle A} along all diagonal directions of a hypercube. == Examples == A singleton set has 0 width in any direction, so it has Rademacher complexity 0. The set A = { ( 1 , 1 ) , ( 1 , 2 ) } ⊆ R 2 {\displaystyle A=\{(1,1),(1,2)\}\subseteq \mathbb {R} ^{2}} has average width 1 / 2 {\displaystyle 1/{\sqrt {2}}} along the two diagonal directions of the square, so it has Rademacher complexity 1 / 4 {\displaystyle 1/4} . The unit cube [ 0 , 1 ] m {\displaystyle [0,1]^{m}} has constant width m {\displaystyle {\sqrt {m}}} along the diagonal directions, so it has Rademacher complexity 1 / 2 {\displaystyle 1/2} . Similarly, the unit cross-polytope { x ∈ R m : ‖ x ‖ 1 ≤ 1 } {\displaystyle \{x\in \mathbb {R} ^{m}:\|x\|_{1}\leq 1\}} has constant width 2 / m {\displaystyle 2/{\sqrt {m}}} along the diagonal directions, so it has Rademacher complexity 1 / m {\displaystyle 1/m} . == Using the Rademacher complexity == The Rademacher complexity can be used to derive data-dependent upper-bounds on the learnability of function classes. Intuitively, a function-class with smaller Rademacher complexity is easier to learn. === Bounding the representativeness === In machine learning, it is desired to have a training set that represents the true distribution of some sample data S {\displaystyle S} . This can be quantified using the notion of representativeness. Denote by P {\displaystyle P} the probability distribution from which the samples are drawn. Denote by H {\displaystyle H} the set of hypotheses (potential classifiers) and denote by F {\displaystyle {\mathcal {F}}} the corresponding set of error functions, i.e., for every hypothesis h ∈ H {\displaystyle h\in H} , there is a function f h ∈ F {\displaystyle f_{h}\in F} , that maps each training sample (features,label) to the error of the classifier h {\displaystyle h} (note in this case hypothesis and classifier are used interchangeably). For example, in the case that h {\displaystyle h} represents a binary classifier, the error function is a 0–1 loss function, i.e. the error function f h {\displaystyle f_{h}} returns 0 if h {\displaystyle h} correctly classifies a sample and 1 else. We omit the index and write f {\displaystyle f} instead of f h {\displaystyle f_{h}} when the underlying hypothesis is irrelevant. Define: L P ( f ) := E z ∼ P [ f ( z ) ] {\displaystyle L_{P}(f):=\mathbb {E} _{z\sim P}[f(z)]} – the expected error of some error function f ∈ F {\displaystyle f\in {\mathcal {F}}} on the real distribution P {\displaystyle P} ; L S ( f ) := 1 m ∑ i = 1 m f ( z i ) {\displaystyle L_{S}(f):={1 \over m}\sum _{i=1}^{m}f(z_{i})} – the estimated error of some error function f ∈ F {\displaystyle f\in {\mathcal {F}}} on the sample S {\displaystyle S} . The representativeness of the sample S {\displaystyle S} , with respect to P {\displaystyle P} and F {\displaystyle {\mathcal {F}}} , is defined as: Rep P ( F , S ) := sup f ∈ F ( L P ( f ) − L S ( f ) ) {\displaystyle \operatorname {Rep} _{P}({\mathcal {F}},S):=\sup _{f\in F}(L_{P}(f)-L_{S}(f))} Smaller representativeness is better, since it provides a way to avoid overfitting: it means that the true error of a classifier is not much higher than its estimated error, and so selecting a classifier that has low estimated error will ensure that the true error is also low. Note however that the concept of representativeness is relative and hence can not be compared across distinct samples. The expected representativeness of a sample can be bounded above by the Rademacher complexity of the function class: If F {\displaystyle {\mathcal {F}}} is a set of functions with range within [ 0 , 1 ] {\displaystyle [0,1]} , then Rad P , m ( F ) − ln 2 2 m ≤ E S ∼ P m [ Rep P ( F , S ) ] ≤ 2 Rad P , m ( F ) {\displaystyle \operatorname {Rad} _{P,m}({\mathcal {F}})-{\sqrt {\frac {\ln 2}{2m}}}\leq \mathbb {E} _{S\sim P^{m}}[\operatorname {Rep} _{P}({\
Hundred (novel series)
Hundred (ハンドレッド, Handoreddo) is a Japanese light novel series written by Jun Misaki and illustrated by Nekosuke Ōkuma. SB Creative published 16 novels between November 15, 2012, and October 15, 2018, under their GA Bunko imprint. A manga adaptation with art by Sasayuki was serialized in Fujimi Shobo's Monthly Dragon Age magazine. An anime television series adaptation, produced by Production IMS and directed by Tomoki Kobayashi, aired from April to June 2016. == Plot == "Hundreds" are a kind of weapon that get their name from their ability to change into many different forms, and are the only thing that can counter the mysterious life forms called Savage that are attacking Earth. Those who can wield a Hundred are sought out to be made into Slayers, trained individuals who can use them in combat. To become a Slayer, Hayato Kisaragi successfully enrolls in the marine academy city ship Little Garden. However he feels a strange yet familiar sense of incongruity towards Emile Crossford, his roommate who somehow knows him from somewhere. On top of that, shortly after he enters the school, he ends up getting challenged to a duel by the "Queen" and the school's most powerful Slayer, Claire Harvey. == Characters == Hayato Kisaragi (如月 ハヤト, Kisaragi Hayato) Voiced by: Yoshiaki Hasegawa (Japanese); Ricco Fajardo (English) Hayato is the male protagonist of Hundred. Originally from Yamato, Hayato became a Slayer in order to obtain state-of-the-art medical treatment for his sister. His previous encounter with a Savage 10 years ago resulted in him becoming a Variant - one of a very small fraction of people (fewer than 10 in the world, according to Emile) who have survived exposure to the Savages and obtained a greatly increased affinity for Hundreds as a result. He has the highest known compatibility with a Hundred and his Hundred, the Flying Swallow, is a chevalier-type that takes the form of a sword and a shoulder guard. When he first met Emilia he didn't realize that she was really a girl, but upon discovering the truth, he agreed to keep her secret. He is shown to be slightly uncomfortable whenever Emilia was showing him affection and would always blush when around her or other women who show their romantic feelings toward him. Emilia Hermit (エミリア・ハーミット, Emiria Hāmitto) Voiced by: Rumi Ōkubo (Japanese); Mikaela Krantz (English) Emilia is the female protagonist of Hundred. She is a silver-haired girl from the Britannia Empire and Hayato's roommate. She initially poses as a boy under the name Emile Crossfode (エミール・クロスフォード, Emīru Kurosufōdo) with only a few people aware of her secret until she eventually reveals the truth about herself. She and Hayato were survivors from the second Savage attack 10 years earlier, which resulted in her and Hayato becoming Variants. Hayato only has vague recollections of the prior event and it isn't until their encounter with the Savages at Zwei Island that Hayato realizes her true identity. She is a citizen of the Gudenburg Empire by birth and eventually reveals that she is Emilia Gudenburg (エミリア・グーデンブルグ, Emiria Gūdenburugu), the Empire's third princess. Her Hundred is the Arms Shroud that is an innocence type able to change into any form of weapon, something no other Slayer's Hundred can do. Like Hayato, she too is a Variant. Ten years ago she and Hayato where fleeing from the Savages' onslaught when she was attacked by one and almost died. The attack left a potent amount of virus in her gaping wound. Hayato, in an attempt to save her life sucked some of the fluids out, causing him to become a Variant as well. A substantial amount was still left in her system. She is in love with Hayato and is known to be very affectionate towards him and does not care about the rumors circulating about their relationship since everyone assumes them to be gay. Eventually, her status as a princess and girl are revealed to her peers, who were shocked at her heritage and finally understand her feelings to Hayato. Claire Harvey (クレア・ハーヴェイ, Kurea Hāvei) Voiced by: M.A.O (Japanese); Caitlin Glass (English) The highest-ranked Slayer in Little Garden who is from the United States of Liberia, she is called the Queen. The newly-arrived Hayato is forced to duel her to prevent the expulsion of two students who arrived late to the entrance ceremony because they are looking for him at the airport when he arrived. During the duel Hayato accidentally gropes her and she goes all out and defeats him, but the duel is called a draw and the students are allowed to stay. After Hayato saves her from a Savage and, later, accidentally kisses her, she falls in love with him. Her Hundred is a Dragoon Type which utilizes multiple cannons or transforms into a large powerful rifle, in doing so it drains much of her energy. She is also one of the few people who are aware that Emilia is secretly a girl. Karen Kisaragi (如月 カレン, Kisaragi Karen) Voiced by: Kaya Okuno (Japanese); Dawn M. Bennett (English) Hayato's younger sister who is ill. Hayato became a Slayer in order to obtain first-class treatment for her. While staying in the hospital she is often seen playing tarot cards, where she has become sort of a clairvoyant. Unlike her brother, Hayato, she suspected that Emilia was really a girl the moment she met her, until she was later convinced otherwise. She later becomes good friends with popular idol Sakura. Sakura Kirishima (霧島 サクラ, Kirishima Sakura) Voiced by: Mayu Yoshioka (Japanese); Amber Lee Connors (English) She is a popular idol who falls in love with Hayato after seeing him defeat the Trenta Savage at Zwei Island. She originally met Hayato and Karen at a shelter in Gudenberg during the second Savage attack. She remembers Karen but wasn't able to get Hayato's name at the time. After that incident, she lives with her father whom she never meets. When she later falls ill from an unknown illness, her father sells her to the Warslran Research Facility, where subjects like her are injected with vaccines that are developed from the fluids recovered from defeated Savages. She is the only one of the test subjects to have survived and, like Hayato and Emilia, she is also a Variant and a Slayer. Liza Harvey (リザ・ハーヴェイ, Riza Hāvei) Voiced by: Nichika Ōmori (Japanese); Megan Shipman (English) Claire's younger sister. Liddy Steinberg (リディ・スタインバーグ, Ridi Sutainbāgu) Voiced by: Rika Kinugawa (Japanese); Alex Moore (English) Little Garden's student council Vice President who is in charge of enforcement, she is very loyal to Claire and can be very uptight when enforcing the school's rules and regulations. Her Hundred takes the form of a lance and a shield. Erica Candle (エリカ・キャンドル, Erika Kyandoru) Voiced by: Yui Makino (Japanese); Natalie Hoover (English) She is also student council Vice President, however, she is mostly in charge of strategic planning, she has a high admiration for Claire, and it is suggested that she has certain feelings for her. Her Hundred, the Everlasting, is an Arsene type, which takes the form of a massive chained yoyo that she uses for restraining. Unfortunately her Hundred is ineffective against much stronger Savages. She is also one of the few people who became aware of Emilia's secret. Fritz Granz (フリッツ・グランツ, Furittsu Gurantsu) Voiced by: Wataru Hatano (Japanese); Jason Liebrecht (English) Hayato's classmate and Latia's partner. His Hundred takes the form of a sniper rifle. He and Latia were childhood friends, he often pokes fun at her. He is curious about the relationship between Hayato and Emilie and often teases them about their relationship, including sometimes referring to them as a couple on occasion. Latia Saintemilion (レイティア・サンテミリオン, Reitia Santemirion) Voiced by: Yuka Ōtsubo (Japanese); Elizabeth Maxwell (English) She is classmates with Hayato and Emilia, she is also Fritz's partner. Her Hundred is a close quarter melee type. She is Fritz's childhood friend. Charlotte Dimandias (シャーロット・ディマンディウス, Shārotto Dimandiusu) Voiced by: Miyu Matsuki (1st drama CD), Yui Horie (2nd drama CD, anime); Sarah Wiedenheft (English) She is a child prodigy who serves as the Little Garden's only main technical expert and chief researcher on Hundreds. Her authority is equal to that of the student council, that she can go against them or question their decisions. She is best friends with Emilia, and she is one of the characters who knows her secret. Meimei (メイメイ, Meimei) Voiced by: Ayaka Imamura (Japanese); Jill Harris (English) Miharu Kashiwagi (柏木 ミハル, Kashiwagi Miharu) Voiced by: Yuna Yoshino (Japanese); Rachel Glass (English) Miharu is a nurse at the hospital where Karen is staying. She is known for her very sweet demeanor and large breasts. Chris Steinbelt (クリス・シュタインベルト, Kurisu Shutainberuto) Voiced by: Emiri Kato (Japanese); Howard Wang (English) Noa Sheldon (ノア・シェルダン, Noa Sherudan) Voiced by: Yurika Kubo (Japanese); Madeleine Morris (English) Xue-Mei Liu (劉雪梅, Ryū Shuemei) Voiced by: Eri Suzuki (Japanese); Apphia Yu (English) Alphonse Brustad (アルフォ