Tavas lives in Kansas. Kansas has n cities numbered from 1 to n connected with m bidirectional roads. We can travel from any city to any other city via these roads. Kansas is as strange as Tavas. So there may be a road between a city and itself or more than one road between two cities.

Tavas invented a game and called it "Dashti". He wants to play Dashti with his girlfriends, Nafas.

In this game, they assign an arbitrary integer value to each city of Kansas. The value of i-th city equals to pi.

During the game, Tavas is in city s and Nafas is in city t. They play in turn and Tavas goes first. A player in his/her turn, must choose a non-negative integer x and his/her score increases by the sum of values of all cities with (shortest) distance no more than x from his/her city. Each city may be used once, or in the other words, after first time a player gets score from a city, city score becomes zero.

There is an additional rule: the player must choose x such that he/she gets the point of at least one city that was not used before. Note that city may initially have value 0, such city isn't considered as been used at the beginning of the game, i. e. each player may use it to fullfill this rule.

The game ends when nobody can make a move.

A player's score is the sum of the points he/she earned during the game. The winner is the player with greater score, or there is a draw if players score the same value. Both players start game with zero points.

If Tavas wins, he'll break his girlfriend's heart, and if Nafas wins, Tavas will cry. But if their scores are equal, they'll be happy and Tavas will give Nafas flowers.

They're not too emotional after all, so they'll play optimally. Your task is to tell Tavas what's going to happen after the game ends.


#ifndef MODRM_H_
#define MODRM_H_

#include <stdint.h>

#include "emulator.h"

/* ModR/Mを表す構造体 */
typedef struct {
    uint8_t mod;

    /* opecodeとreg_indexは別名で同じ物 */
    union {
        uint8_t opecode;
        uint8_t reg_index;
    };

    uint8_t rm;

    /* SIB が必要な mod/rm の組み合わせの時に使う */
    uint8_t sib;

    union {
        int8_t disp8; // disp8 は符号付き整数
        uint32_t disp32;
    };
} ModRM;

/* ModR/M, SIB, ディスプレースメントを解析する
 *
 * emu から ModR/M, SIB, ディスプレースメントを読み取って modrm にセットする。
 * 呼び出しのとき emu->eip は ModR/M バイトを指している必要がある。
 * この関数は emu->eip を即値（即値がない場合は次の命令）の先頭を指すように変更する。
 *
 * 引数
 *   emu: eip が ModR/M バイトの先頭を指しているエミュレータ構造体
 *   modrm: 解析結果を格納する構造体
 */
void parse_modrm(Emulator* emu, ModRM* modrm);

/* ModR/M の内容に基づきメモリの実効アドレスを計算する
 *
 * modrm->mod は 0, 1, 2 のいずれかでなければならない
 */
uint32_t calc_memory_address(Emulator* emu, ModRM* modrm);

/* rm32のレジスタまたはメモリの32bit値を取得する */
uint32_t get_rm32(Emulator* emu, ModRM* modrm);

/* rm32のレジスタまたはメモリの32bit値を設定する
 *
 * modrm の内容に従って value を目的のメモリまたはレジスタに書き込む
 *
 * 引数
 *   emu: エミュレータ構造体（eip はどこを指していても良い）
 *   modrm: ModR/M（SIB, disp を含む）
 *   value: 即値
 */
void set_rm32(Emulator* emu, ModRM* modrm, uint32_t value);

/* r32のレジスタの32bit値を取得する */
uint32_t get_r32(Emulator* emu, ModRM* modrm);

/* r32のレジスタの32bit値を設定する */
void set_r32(Emulator* emu, ModRM* modrm, uint32_t value);

#endif


The Real Reason Why NYC’s Skyscrapers Are Where They Are
Why does Manhattan have two business separate districts? Turns out that it's not because of the usual story about bedrock depth.
On The Black Skyscraper: An Interview with Literary Critic Adrienne Brown
Early skyscrapers changed the ways we see race, how we see bodies, how we perceive and make judgments about people in the world.


Error Message: Procedure Entry Point Not Found in Msvcrt.dll
do you know if there is an option where i can download a repair cd and do this stuff because i feel my windows xp cd is not working anymore.This procedure from microsoft require a winxp cd since xp are not being sold now by retail im afraid i wont be able to get one ....
To resolve this issue, use the Windows XP Recovery Console to replace the Msvcrt.dll file with the original version. To do this, follow these steps:
1.Insert your Windows XP CD-ROM into the computer's CD-ROM drive or DVD-ROM drive, and then restart your computer from the CD-ROM.
NOTE: Some computers may require that you modify the basic input/output system (BIOS) settings before you can start the computer from a CD-ROM. For information about how to modify BIOS, see your computer documentation.
2.At the Welcome to Setup screen, press R to start the Recovery Console.
3.Press the number key that corresponds to the installation that you want to repair, and then press ENTER.
4.Type the Administrator password, and then press ENTER.
5.With the Windows XP CD-ROM still in the CD-ROM drive or DVD-ROM drive, type the following commands, pressing ENTER after each command:
ren msvcrt.dll msvcrt.old
expand msvcrt.dl_ BootDriveLetter:\windows\system32
NOTE: BootDriveLetter refers to the drive letter of the boot drive. In other words, it refers to the drive where the Windows folder is located, which is probably drive C. CD-ROM_or_DVD-ROM_Drive_Letter refers to the drive letter of the CD-ROM or the drive letter of the DVD-ROM drive. The CD-ROM drive or the DVD-ROM drive are frequently located in drive D.
NOTE: The retail version of the Msvcrt.dll file is dated 23-Aug-2001. It was included with Windows XP and has the following properties:
Size - 315 KB (322,560 bytes)
Version - 7.0.2600.0
Was this reply helpful? (0) (0)


Microsoft Office Tutorials and References
In Depth Information
delegation. In addition, the access model between the WFE and the ECS should be set to Delegation. If
the WFE and the ECS are on separate machines, the central IT department will need to set up
delegation between the WFE and the ECS as well. The workbook author will have to set the connection to use
Workbook Embedded Credentials
The workbook author can save in the workbook specific credentials to be used when connecting to a
database. Then all users who open that workbook can use the credentials.
The main advantage of this method is its simplicity. The author can publish a workbook to the server
and allow all other users to connect to any database that supports database credentials. In addition, it is
very good in terms of performance, because everyone uses the same credentials, which enables them to
share the cached query results.
The main disadvantage is that all users who can view the workbook receive permissions to perform
the query from the database. This method is almost equivalent to sending these credentials to all
users. It is good for cases in which those credentials would normally be known to everyone in the
Anyone who has access to the workbook can get the password that is stored in the file. You can limit this
disclosure by saving the workbook into a document library to which only the author has open rights and
all other users have only view rights.
To specify that a connection should use embedded credentials, set the Server Authentication to None,
write the user and password to the connection string, and select Save Password.
The ECS will log in as the unattended account when creating the connection to the database. The query
will fail if the unattended account is not defined correctly.
The administrator can define a special account to be used when the author defines a connection with the
authentication type set to None. This account is called the unattended account . The unattended account is
defined in the External Data section of the Excel Services Settings (see Figure 5-9).
Connections with a None authentication type will fail if the unattended account is not defined and/or if
the user or password is incorrect.
If the unattended account is defined correctly, the ECS logs in as the unattended account when creating a
None connection type. The ECS then passes the connection string, which may or may not contain a
database username and password, to the database. If the database does not find any user and password on
the connection string, it works as the unattended account. (The previous section described what happens
when there is a database user and password.)
To increase the security of your system, either don’t define the unattended account or define it as an
account with very low privileges and no access to the databases. When you use a low-privilege account,
the ECS is allowed to use embedded workbook credentials, but it cannot use the unattended account to
connect to a database.


Running Coldfusion/CFML in AWS Lambda
In a previous life I had worked on some Coldfusion projects. It was an interesting language, if you are not familiar you can read about the language itself here. ColdFusion is owned, built and supported by Adobe, though along the way a few open source CFML engines, Lucee, OpenDB and many years ago one or 2 more half implemented engines.
Interestingly in 2009 OpenBD was in a state where it was deployable to the cloud via Google App engine, it’s hard to believe this was 11 years ago but here is a video I took on My 2008 Mac Book. I don’t remember much about it but there was no file system and there was a Virtual File System that used DataStore. https://youtu.be/BFJF_0BGIS8
Up until a few weeks ago this was broken with any recent version of SAM but my buddy Malcom Crum and I poked around and saw the changes in the Java code for the Java runtime in Lambda and made the appropriate fixes. At the time I compiled Fuseless locally and if there is any interest I can do a second post on how to step through that. We also updated the init scripts to pull down a more recent version of Lucee.
I have built a sample repo with all the jars included ( https://github.com/kukielp/cfml-samples/tree/master/cfml-on-lambda )
Satisfying the requirements of Fuseless you “should” be able to clone that repo, build the project and use SAM to push the project and expose an API. You’ll of course have to setup a database and change the Security Groups and VPC.
The example program is running as: https://8wgei5rj1f.execute-api.ap-southeast-2.amazonaws.com/Prod/demo.cfm
The demo includes:
- Running CFML in Lambda
- Demonstrating the application scope persistence between invocations
- Configuring a DSN ( Data source ) in Application.cfc
- Lifting ENV variables and leveraging those in CMFL code
- Querying a database
- Setting CORS ( or any other ) headers for cross site access
- Object/cfc creation
- Serialisation of CFML object to JSON
- Demostrating on onError and onMissingTemplate in application.cfc
Of course there is some cold start, Lucee is a jee application so that’s not really avoidable though there are ways to keep Lambdas warm as well as provisioned concurrency to keep some Lambdas always hot.
As I haven’t used CFML for years the only new feature I took advantage of was environment variables where I pass those in from SSM ( you can see this in template.yaml )
Setting the headers for CORS was simple in CFML. While this demo runs on the same page while testing the HTML, I was running the HTML page locally calling the remote endpoints on Lambda.
You might also ask “How can I run this locally?” well you can with SAM. Open 2 terminals, in terminal one run:
gradle build -t
In terminal 2 run:
sam local start-api
You can use the browser to see the result, the browser will always request a favicon.ico invoking a second call, so I tend to use Postman. Running this locally will always incur cold start on each request.
TO deploy the app run: In terminal 2 run:
sam deploy --guided
Note that you will have to specify Security groups and a VPC ID or simply remove those lines if you do not need to run in a VPC or do not have a database.
I’m not sure who might be using CFML in Lambda or who is interested in a deeper dive. If I have some interest I can do a second or third post on this subject. Hope you enjoy.


I learned to be ok by myself.🌸
…owly. The problem is that if change happens too quickly, it doesn’t last (remember the fad diets?). People are most successful when they make small changes to their lives which over time make a big impact.
Saving money and losing weight are very similar processes: success is slow and requires a lot of deliberate steps. There are get rich quick schemes and fad diets, but these don’t deliver long-term, sustainable resu…
…k at our door. In most cases, it’s hidden, covered in dust, blocked by resistance of various types. Few people look for such obscure opportunities. Few behave like archeologists, treasure hunters, and pirates.


This is really starting to annoy the hell out of me. I just picked up a Microsoft Bluetooth mouse, the Notebook 5000 mouse to be exact for my home entertainment center.
I have my PC ran to a monitor and a 55 inch Samsung LED LCD TV for watching movies etc. The problem is, the HDMI cord is run threw the wall so the PC is in another room so I cant use the normal mouse on the PC. I bought a bluetooth mouse due to the increased range but I'm having nothing but issues.
I have the Microsoft Bluetooth dongle btw, didn't come with the mouse, the mouse actually comes with no dongle.
Anyway it connects fine but if I stop using it for like an hour or whatever it disconnects and nothing I do will reconnect it unless I take my other mouse, go into bluetooth devices, delete it and readd it all over again.
WHY THE HELL does it keep doing this lol?
It's very annoying, I sit down to watch a movie and discover I cant start it without first going into the other room and readding my mouse.
I'm well within range and I've tried moving the bluetooth mouse to the same room as the PC to use it with the PC and it still does the same thing.


Top 5 IT Courses – The advancement in the field of technology has brought with it many skills to learn, embrace and put into practice.
Some famous and sought-after courses are listed below:
1- ARTIFICIAL INTELLIGENCE
What is AI?
In the top 5 IT courses AI is on 1st position. As the name implies, AI is the intellectual and human cognitive abilities such as learning and problem solving, exhibited by the machines. It is a revolutionary technology and a vast field of study.
Applications of AI
Due to its cognitive ability like learning from experience, modifying itself according to the changes, reasoning and self correction, AI has made its way in every single field.
Be it marketing, finance, agriculture, healthcare and gaming, AI is the jack of all trades.
Slowly but steadily, AI is gaining momentum and it is believed that its going to replace many jobs which were previously done by the humans and which took a lot of time, money and manpower to get done.
Resumes having AI skills grab a lot of attention in front of the hiring managers. Plus it also promises the growth of your business and your social status as well.
So, having an AI course is going to benefit in many ways.
2- EXTENDED REALITY
Extended reality is a super ordinate which includes all the immersive and three dimensional technologies forming an amalgamation of the physical and virtual worlds.
In the top 5 IT courses ER on 2nd position. This includes Augmented reality, Virtual reality, Mixed reality.According to Forbes, by 2022 the XR is expected to reach $209 billions, which is eight times what it is today. Sounds incredible right?!
AR provides the user to experience the virtual world within the real world without being detached from their surroundings. This can be accessed by means of AR glasses, screens, tablets and smart phones.
AR gained much popularity because of the famous game Pokemon GO that projects digital creature onto the real world.
Snapchat filters are another example providing AR experience by putting digital objects onto your head.
In this particular immersive experience, users are fully engrossed in a simulated digital environment.
For this, usually a VR headset or a head mounted display is required to get a 360 degree view of an artificial world.
VR deceives the human brain into believing that whatever is happening on the screen is a near to real experience, e.g, riding and then fearing a fall from the roller coaster, swimming under the ocean etc.
Recently released movie “Ready player one” was solely based on magnificent VR experience in which the characters were able to experience, live and move in the virtual world.
Mixed Reality (MR)
Mixed Reality as can be predicted from the name is a merger of real and virtual worlds
to generate a new environment and visualization with the integration
and coexistence of physical and digital objects in real worlds.
What are the benefits of XR and why should you learn it?
Because of its near to reality experience in many field, XR can be beneficial in
entertainment and gaming, training tool, better consumer experience, health care. If you learn how to make a XR software, you can get employed very quickly where any XR related skill is required. And if one is really motivated
and passionate about Extended Reality, you can gain a good name because this field is still developing and is not as saturated as other fields. With prior knowledge and creativity,
XR can provide you a stable and bright career.
3- CLOUD COMPUTING
It is the term used for storage systems available to several users over the internet.
In the top 5 IT courses CC is on 3rd position. Through cloud computing, servers, storage, databases. The software can be accessed from anywhere with an Internet connection.
Cloud Computing is reaping benefits for business because of efficiency and scalability, it has less operational issues, saves time and money, less carbon footprint and easily accessible data.
Why this course?
Cloud computing expertise has become a coveted and desirable skill that many business organizations are seeking,
since they want to set up a cloud environment as seamlessly as possible. Most companies face difficulty in finding an IT professional with cloud computing skills,
so it is a golden opportunity to enroll in this course.
Linux, which is an open source operating system that is rapidly gaining popularity due to its special features.
What makes Linux different from other operating softwares, is its safety and security from viruses and malwares, it doesn’t crash or slow down, doesn’t require costly repairs and licenses,
it’s easily installable and last but not the least, it is open-source, meaning that it can be used for any purpose.
Why opt for a Linux course?
Since, more and more people are becoming familiar with Linux, it is better to upgrade your skills and start learning this OS.
Specially, if you are a computer professional, then it is advisable that you get a hold of Linux. Also with regards to career, just knowing Microsoft Windows wouldn’t be much valuable,
whereas Linux skills will make you stand out from others while applying for a job.
Python is a high-level and general purpose programming language. Python has become an immensely popular language with vast applications.
It lets you do fairly complex things in relatively few lines of minimalist code. It allows you to focus on the core functionality of your application by taking care of the common tasks.
It is used for web development, web backend, AI , GUI (Graphic User interface), Web applications.
What can you do with Python?
If you are a programming or a software specialist, learning python is an integral and in demand skill. Major Application of Python is
• Development of Web frame in Django and Flask
• Data science including Machine learning, Data analysis and Data visuals
Since Artifical intelligence and Machine learning use is on a surge, Python is being used more commonly because it has framework and libraries for these technologies.


My umts-stick (ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem) isn´t recognized at boot/reboot if it is already connected to the PC. And I mean: it isn´t recognized at all, not even as mass-storage-device.
It doesn´t appear to be a modeswitch-problem because lsusb doesn´t list the device at all.
Yet as soon as I disconnect the stick physically (if PC is already running) and then reconnect it it´s recognized immediately (lsusb-entry is “HSDPA Modem”) and I can
establish an internet connection.
I think you have your answer there in having to do that. I had the same problem with my wife’s laptop. Well not the same but it thought the power cable was the Ethernet connection, which it wasn’t as we’re wireless. So the only way we could get her connected was to disconnect that and then once established a wireless connection put it in. The problem doesn’t seem to be as bad with Mint 19.1 and only happens occasionally now. So that would be my only bit of help I could give you here.
Perhaps someone else can give a better bit of help
@01101111: Yes, it´s the same umts-stick. But the problem I´m referring to now is a bit different. Never mind. It seems that physical disconnection is the only way to go for the time being.
However I´ve got a hama-hub with on-/off-switch, which at least gives me some sort of convenience.
Yes, you’re right: they’re different issues but when I tried to solve my problem, one of the tests I did was power off/on to the USB port - that’s the reason I said maybe I could adapt my script or, for example, add my script to reset the controller, I don’t know…
First I need to look both lsusb and keep in mind I’m not an expert in Linux - you know how much time I “waste” with my problem…
You never waste time. my friend. You are pedantic and there is nothing wrong with that as it helps to give great learning experience and knowledge that you can pass on to others. Nothing is a waste of time in the process of learning something.
Hi to you all and thanks a lot for all your input,
@Tech_JA: lsusb after power on and after reboot are the same: The umts-stick simply isn´t detected at all. lsusb yields the following output:
Bus 002 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
!!!!!Bus 001 Device 015: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem!!!!!
Bus 001 Device 013: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 010: ID 045e:0779 Microsoft Corp. LifeCam HD-3000
Bus 001 Device 008: ID 058f:6387 Alcor Micro Corp. Flash Drive
Bus 001 Device 012: ID 1113:3163 Medion AG
Bus 001 Device 011: ID 05e3:0727 Genesys Logic, Inc. microSD Reader/Writer
Bus 001 Device 009: ID 058f:6387 Alcor Micro Corp. Flash Drive
Bus 001 Device 007: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 006: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 1058:25a2 Western Digital Technologies, Inc.
Bus 001 Device 004: ID 0458:0185 KYE Systems Corp. (Mouse Systems)
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
But without the line Bus 001 Device 015: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
As I´m using a working internet connection at the moment it´s included in the lsusb-output.
Yes, I´ve tried that, too. That´s what I did in the beginning. And that´s the reason why I decided to go for a hub with on-/off-switch, which gives me greater convenience.
Yes and no. The hub with on-/off-switch (that´s the one the umts-stick is connected to) is a passive one. But it´s connected to a hub with its own power-supply. So it definitely shouldn´t be a power issue there.
Thanks a lot for all the effort of yours…
It´s been a while since I looked up my BIOS-settings but I´m pretty sure the problem lies somewhere in the already quoted
My first thought was to ask about this problem here in case anyone has encountered a similar one.
Nevertheless I think I´ll stick to my on-/off hub for the time being, as it provides some sort of workaround anyway.


上載: 22:06 02 十一月 03 #1Is CoPilot Live Pocket PC4 CF GPS Quickstart compatible with the Toshiba e570 PDA? Am I right in thinking that the EU version covers Europe as well as the UK? whereas the UK version only covers UK?
Compatibility [CoPilot Live Pocket PC 4 CF GPS Quickstart - 105644]
- 投稿: 1
- 註冊日期: 2 十一月 2003
- 投稿: 10920
- 註冊日期: 15 四月 2003
- 地點: Manchester UK
上載: 09:32 03 十一月 03 #2As it is an older PDA it is not mentioned on the CoPilot website. But as it has a CF slot and a is running Pocket PC 2002 there shouldn't be a problem with compatibility. The EU version does cover Europe as well as the UK. -- Michael - eXpansys


Most of our live production code was written (by me) without any attention paid to character encodings. Fortunately, nearly every link in the LAMP chain seems to default to ISO-8859-1 nicely, so things have worked out for the most part as that. Every now and then a UTF-8 character will pop up, and we’ll either change the character in the database, or someone will use random combinations of htmlentities() and mb_convert_encoding() in some random file until it looks right in that particular case. It’s one of those cases of building up a smidgen of technical debt. Doing it the right way and switching all of our code, databases, and data from ISO-8859-1 to UTF-8 at this point makes me shudder.
For our newer systems coming online, I really wanted to get this character encoding problem right. Since we started from scratch, all the necessary endpoints were written to support UTF-8 encoded text. And we made sure that all incoming data is UTF-8 encoded. If it was not, we converted it basically using this single line.
$string = mb_convert_encoding($string, 'UTF-8');
But something was wrong. When I tried to convert a single smart quote (’) generated on my Windows machine and view it in my browser, it simply disappeared. Trawling the PHP manual for a solution (as usual), I came upon it on the manual page for utf8_encode().
Note that you should only use utf8_encode() on ISO-8859-1 data, and not on data using the Windows-1252 codepage. Microsoft’s Windows-1252 codepage contains ISO-8859-1, but it includes several characters in the range 0x80-0x9F whose codepoints in Unicode do not match the byte’s value (in Unicode, codepoints U+80 – U+9F are unassigned).
utf8_encode() simply assumes the bytes integer value is the codepoint number in Unicode.
What this means is that, for example, a single smart quote (’), sent to PHP as ISO-8859-1, and converted to UTF-8 using utf8_encode(), will not convert to the proper multi-byte character, and thus will either appear as garbage in the browser or not at all (in fact it’s not at all since the values are unassigned).
Since no third argument is given, mb_convert_encoding() will use the default internal encoding for that platform. Unfortunately, PHP uses ISO-8859-1 on Windows instead of the so-similar-yet-different-it’s-annoying-that-it-must-be-a-Microsoft-product Windows-1252 encoding, which mostly overlaps with ISO-8859-1 but has different values for certain non-control, non-ASCII punctuation characters.
The solution fortunately was also in the same manual page, which was simply a function with a hard-coded mapping to replace all the incorrectly converted Windows-1252 characters to their correct UTF-8 values.
So I modified the above line of code to look like the following, and I could see my smart quotes once again.
$string = strtr(mb_convert_encoding($string, 'UTF-8'), self::$_cp1252_map);


Senior Android Engineer Michael Morgano answers this week’s top question. Now that the Chromecast SDK is open, what does that mean for developers?
New to development or a pro who needs help? Just tweet your question to #AskADev. We’ll pick the best ones and have a developer answer them.


This project uses Particle's Argon and cloud services (webhooks) to provide an integrated access control system for a makerspace.
The system we made was a temperature tracker and software medical assistant which will enhance the user's awareness of COVID-19
Electronic Medical Records (EMRs), Electronic Health Records (EHRs) Personal Health Records, eHealth-as-a-Service(eHaaS)
This program monitors the entry & exit of the building and marks the attendance.
A detection tool that allows people in offices, schools and universities to monitor their employees and students' temperature.


contextdeleter allows you to delete html elements on the fly..
contextdeleter allows you to delete elements within websites that you do not want to see.
Are you reading a blog and theres an unsightly image that you dont want others to see right click the image and select "Delete this Element" to remove the element.
This is a very minimalist extension which injects itself into your right click menu.
As of version 0.1.0, all it does is delete elements.
I will add features as requested by users.
Flash elements and js generated html (as seen on Facebook) cannot be removed (however, you can remove the parent container of the flash element to remove the flash element).
HISTORY: 0.1.0: 2012 >> initial release >> allows deletion of images, HTML elements, etc.
0.2.0: 2012 >> small update >> added border on right click, which lets you see with greater ease what you will be deleting.
2.0.0: July 27th, 2016 >> biggest update, skipping 1.0.0 release >> faster and smaller, restructured the code, added locales, and generally made it better.
Now it reimplements the border styling it removed to add its target highlighter (blue box) on deselect (left mouse click, or right mouse click).


Ran Yakumo is a cute girl who loves creating cute Maths problems.

Let $$$f(x)$$$ be the minimal square number strictly greater than $$$x$$$, and $$$g(x)$$$ be the maximal square number less than or equal to $$$x$$$. For example, $$$f(1)=f(2)=g(4)=g(8)=4$$$.

A positive integer $$$x$$$ is cute if $$$x-g(x)<f(x)-x$$$. For example, $$$1,5,11$$$ are cute integers, while $$$3,8,15$$$ are not.

Ran gives you an array $$$a$$$ of length $$$n$$$. She wants you to find the smallest non-negative integer $$$k$$$ such that $$$a_i + k$$$ is a cute number for any element of $$$a$$$.


Applicable to Entuity v20.0 upwards.
The Device Configuration Diffs report provides a summary of individual changes in selected device configurations during a specified time span.
Details of the report:
The report displays a text summary of current device configuration diffs, sorted by device and then by timestamp.
For further help and information on change-based configuration diffs in Entuity, please see this article.
To run a Device Configuration Diffs report:
- In the Main Menu, click Reports.
- This will open the Reports page. Click Configuration Reports.
- This will open the Configuration Reports page. Click Device Configuration Diffs.
- This will open the Device Configuration Diffs Options page.
- If you want to reuse previously saved report values, select it in the Use saved values dropdown field.
- Specify the format of the report in the Report format field.
- Specify a Report style template if required.
- Specify the View against which the report is to be run in the Please select a View dropdown field. You can drag Views into this field from the Drop Box.
- Specify the way in which the report will be sorted in the Please select a sort option dropdown field, one of:
- Device name.
- Policy checking.
- Scheduled upload.
- Maximum archives retained.
- Specify the time zone to which you want the reporting period to apply. By default, this is set to None, which means that the time zone of the host/consolidation server is used.
- Click Save to save your report values, Run to run immediately, or click Cancel.


/* This used to ICE on s390 due to bug in the definition of the 'R'
   constraint which replaced the 'm' constraint (together with 'T')
   while adding z10 support.  */

/* { dg-do compile } */
/* { dg-options "-O" } */

int boo()
{
  struct {
    unsigned char pad[4096];
    unsigned long bar;
  } *foo;
  asm volatile( "" : "=m" (*(unsigned long long*)(foo->bar))
		: "a" (&foo->bar));
}


There’s no arguing that the API ecosystem has become a key enabler for businesses. Leveraging APIs has helped companies become more agile, grow faster, and unlock more revenue. However, companies must also prioritise API security to make the most of this technology. Otherwise, they risk exposing their data and critical infrastructure to cybercriminals.
While API security is vital — malicious API attack traffic surged from an average of 12.22M malicious calls per month to an average of 26.46M calls over the past year — it’s also challenging to get right. Standard security practices like web application firewalls and identity and access management solutions weren’t designed to protect APIs. Instead, APIs require a robust security strategy that accounts for various challenges, including:
- A constantly evolving landscape where existing APIs change all the time and new ones enter the space with different parameters
- Low-and-slow attacks that are designed to compromise unique features in an API
- Existing security tactics in the DevOps model that don’t account for the complexities of APIs across different environments
- APIs with multiple, complex layers that require specific security measures to keep them safe
To mitigate the impact of these complexities, an API security framework needs to cover all the bases. It requires a layered approach that keeps attackers out and protects the valuable data shared across an API network. In this article, we’re taking a closer look at how APIs can be compromised across various areas and how to secure each layer in an API.
APIs have multiple vulnerabilities
There is no one way to compromise APIs. In fact, just exploring some of the most common API attacks shows the breadth of vulnerabilities. These include:
- BOLA attacks: In broken object-level authorization attacks, bad actors exploit API endpoints by manipulating the ID of an object sent in an API request. Since the server component doesn’t usually track the client’s state, these vulnerabilities are prevalent in APIs. These attacks can lead to data being accessed, stolen, modified, or destroyed.
- Broken user authentication: Teams with weak password hygiene, long password rotation cycles, or those that rely exclusively on API keys as authentication materials are open to broken user authentication attacks. Cybercriminals can exploit these vulnerabilities by using stolen authentication tokens, credential stuffing, or brute-force attacks to get access to applications. Once they’re in, they can leverage this access to compromise user data, conduct phishing attacks, or make transactions to their benefit.
- Excessive data exposure: APIs that share more data than they should, leave themselves open to attack. APIs send more information than is needed, relying on the client application to filter the data and present the correct input to the end user. However, bad actors can use redundant data from this process to extract sensitive information, which they can then use to compromise the organisation.
- Security misconfiguration: This category spans several potential vulnerabilities, as various security misconfigurations could negatively impact an API. These include incomplete configurations, verbose error messages, and misconfigured HTTP headers. Bad actors can learn more about the API they’re attacking and exploit these errors.
- Business logic flaws: Some of the most successful API attacks target gaps in the business logic of the API. If a developer hasn’t fully understood the use case or business logic they are trying to build for, they may leave logical flaws in the code that attackers can then exploit. This is one of the trickiest vulnerabilities to identify and solve.
These vulnerabilities span different functions and layers within an API, including authentication, data processing, and business logic. This is why a strong API security strategy needs to be multi-layered.
A layered approach to API security
A successful API security framework covers the four key layers of an API. These include the network and service, data, identity and access, and business and application layers.
Network and service layer
An API’s network and service layer is often compromised by attacks that overload the system with requests or traffic — like a DDoS attack. Measures that teams can take to prevent these types of attacks include pagination, which segments results from queries into manageable chunks, as well as API throttling, which limits the number of API requests that a user can make in a designated amount of time.
Attacks to the data layer will often include an injection of malicious code that disrupts the usual functionality of the API — this is how attackers will leverage excessive data exposure, for example. One way to mitigate these efforts is to validate all input data on the server side. Bad actors can easily bypass validation efforts on the client side, so adding a validation step on the server side can reduce their success rate.
Another helpful approach for preventing cross-site scripting, for instance, is to use HTML entity encoding. This way, user input data is encrypted before a response is sent to the web browser, thus protecting it in motion.
Identity and access layer
Identity and access management is a vital component of API security. Teams should be able to ensure that only the right people have the right level of access to the correct data at the right time. Implementing role-based access control across every API and role and feature mapping can reduce the impact of authentication-based attacks. This should be implemented as early as possible in the API development process. Continuous monitoring and reviews of the security parameters are also key activities.
Business and application layer
As mentioned above, business logic gaps pose a high risk for API attacks. API testing is part of the equation, but pre-production testing won’t uncover most business logic gaps. Teams must also implement runtime security to identify the reconnaissance behaviour of an attacker manipulating a company’s APIs.
Cybercriminals see APIs as dynamic and multifaceted technologies that are rife for attack — and companies need to look at their APIs similarly. As you build out your API security strategy, make sure to take a comprehensive approach that accounts for all these different parts of your attack surface. Only with the right security measures in place will you be able to fully take advantage of the API economy.
Author: Ali Cameron is a content marketer that specializes in the cybersecurity and B2B SaaS space. Besides writing for Tripwire’s State of Security blog, she’s also written for brands including Okta, Salesforce, and Microsoft. Taking an unusual route into the world of content, Ali started her career as a management consultant at PwC where she sparked her interest in making complex concepts easy to understand. She blends this interest with a passion for storytelling, a combination that’s well suited for writing in the cybersecurity space. She is also a regular writer for Bora.
Ali is a guest blogger. All opinions are her own.


You are an intergalactic surgeon and you have an alien patient. For the purposes of this problem, we can and we will model this patient's body using a $$$2 \times (2k + 1)$$$ rectangular grid. The alien has $$$4k + 1$$$ distinct organs, numbered $$$1$$$ to $$$4k + 1$$$.

In healthy such aliens, the organs are arranged in a particular way. For example, here is how the organs of a healthy such alien would be positioned, when viewed from the top, for $$$k = 4$$$:

Here, the E represents empty space.

In general, the first row contains organs $$$1$$$ to $$$2k + 1$$$ (in that order from left to right), and the second row contains organs $$$2k + 2$$$ to $$$4k + 1$$$ (in that order from left to right) and then empty space right after.

Your patient's organs are complete, and inside their body, but they somehow got shuffled around! Your job, as an intergalactic surgeon, is to put everything back in its correct position. All organs of the alien must be in its body during the entire procedure. This means that at any point during the procedure, there is exactly one cell (in the grid) that is empty. In addition, you can only move organs around by doing one of the following things:

- You can switch the positions of the empty space E with any organ to its immediate left or to its immediate right (if they exist). In reality, you do this by sliding the organ in question to the empty space;
- You can switch the positions of the empty space E with any organ to its immediate top or its immediate bottom (if they exist) only if the empty space is on the leftmost column, rightmost column or in the centermost column. Again, you do this by sliding the organ in question to the empty space.

Your job is to figure out a sequence of moves you must do during the surgical procedure in order to place back all $$$4k + 1$$$ internal organs of your patient in the correct cells. If it is impossible to do so, you must say so.


I am Dinakar, working on MCF52277EVAL Board, I need to use Serial Boot Facility of this board to load my boot loader into internal SRAM. I have an application note (AN3514) but it is for MCF54455. I followed the same procedure incorporating changes needed for MCF52277 but I am not able to make the system come out of reset. I can see SPI communication and change of SPI clock after first byte reading but some how processor do not come out of reset.
I suspect the problem with reset configurations ( I tried several possiblities). Can some one give me some working file/guidelines RCON settings etc which are specific for MCF52277....
Thanks in Advance


We are using T2081 as a CPU, Uboot as boot loader and vxworks 7.0 as an operating system. Our requirement is we want boot from NOR flash which will have U-boot as the boot loader.
But we want to keep our kernel which is vxworks 7.0 inside EMMC and ask U-Boot to take the kernel from the EMMC. Also we want to put some software packages inside the EMMC.
To achieve the above requirement what all is required..?
Thanks & Regards


You are given a tube which is reflective inside represented as two non-coinciding, but parallel to $$$Ox$$$ lines. Each line has some special integer points — positions of sensors on sides of the tube.

You are going to emit a laser ray in the tube. To do so, you have to choose two integer points $$$A$$$ and $$$B$$$ on the first and the second line respectively (coordinates can be negative): the point $$$A$$$ is responsible for the position of the laser, and the point $$$B$$$ — for the direction of the laser ray. The laser ray is a ray starting at $$$A$$$ and directed at $$$B$$$ which will reflect from the sides of the tube (it doesn't matter if there are any sensors at a reflection point or not). A sensor will only register the ray if the ray hits exactly at the position of the sensor.

Examples of laser rays. Note that image contains two examples. The $$$3$$$ sensors (denoted by black bold points on the tube sides) will register the blue ray but only $$$2$$$ will register the red.

Calculate the maximum number of sensors which can register your ray if you choose points $$$A$$$ and $$$B$$$ on the first and the second lines respectively.


After Part 1 where we created a build template in Packer for a Docker compatible image of Windows Server, capable of running containers, I was inspired by the West Wind Album Viewer sample project, and decided it was time to start developing a containerized app for the server to run. With Visual Studio 2017 and .NET Framework 4.7, there is native support for running containerized applications with Docker.
About a month ago someone at work turned me on to testing with Selenium. I was blown away with the functionality and I couldn’t believe what I was seeing. Selenium automates the actions that you write in your tests. It gives you a great visual picture of what is happening. I quickly tried to implement some of the Selenium concepts in my own work. Using Selenium is about as easy as getting started with Nunit which was my previous blog here.
For this next part we are going setup a basic node/React site (the ultimate goal being a running a Phaser app built on node/React running in AWS). First we’ll dig into the dependencies we need and then we’ll move on to the various bits of code necessary to get up and running.
Introduction to Unit Testing
Coming into this I knew next to nothing about Unit testing. The testing I had implemented in the past had always been scrutinized as the wrong way of testing and not really unit testing but more like integration testing. Unit testing for me has been a way to fix nuances in code. For me, I’ve always used the approach of coding first and testing after but I have heard of cases where testing first methodology has worked. For those of you that are new to unit testing, in general, you might be able to find a better understanding of what unit testing is by using some of the documentation that I’ve found.
Welcome to Part 2 of my “Getting Started With Python” series. In part one, I looked at Python from an outsider’s perspective. I knew that most programming languages had common constructs for looping, conditionals, and other flow control mechanisms, but I also know that Python syntax is largely different than the curly brace languages I had been using for the entirety of my career. I wasn’t sure what kind of learning curve I was jumping into, but I had a plethora of baseball statistics at my fingertips and I wanted to write something that could massage them into a format I could use for my purposes. Thus, I carved out some time and got my hands dirty.
This is the first in a series of blog posts chronicling my journey into the world of programming with Python.
In order to begin my journey into exploring Docker, I felt the need to incorporate as many of the 12 Factor principles as I could into my development pipeline. I also wanted to have a clean place to get started on a Docker workflow, that was isolated from my normal .NET Development environment so as not to conflict, or pickup and unneeded dependencies. I had heard a lot about Hashicorp, and the tools they build for “provisioning, securing, connecting, and running any infrastructure for any application”. So, I decided I wanted to start there, with a fresh Packer Image that could be built, and reused from “scratch” as many times as I would need.
Welcome to the Laughlin Constable Dev Team Blog! This will serve as a documentation of our team’s journey into technology. The idea started as an effort to get our team to go outside their comfort zone. Often times we fall into “maintenance mode” where we spend our days working very hard to meet deadlines and respond to issues and this usually comes at the expense of finding time for innovation and growth. This is our answer to that problem. We hope you enjoy your stay.


Designing and building a FIRST robot can be a daunting undertaking, especially for rookie teams or new members of existing teams. Ideally, every member of the team should have enough background to make a contribution during the 6-week build season starting January 9th. Without seeing a wide range of robots, and understanding some technical basics, it’s hard to take a central role. That’s where FIRSTFare comes in. FIRSTFare is both a robot show and a collection of technical/marketing seminars. You’ll get a detailed look at some of last year’s robots from veteran teams. You can ask dumb questions and no one will laugh nor will they feel like you’re “spying”. The teams coming to this event are there to share the tribal knowledge they’ve gathered. Last year nearly 400 people came. The other main function of FIRSTFare will be seminars on a variety of topics. These are typically presentations by experienced students, mentors, or vendors. There are multiple seminar tracks with something of interest to anyone on a FIRST team. If you are a member or mentor of a FIRST Robotics Competition team this is the place to be.
FIRSTFare was held on October 31st, 2009 at Catlin Gabel School in Portland.
The final schedule is located here.
PRESENTATIONS AND DOWNLOADS
We’ve saved the presentations and speaker’s materials. They can be found here.


Q: The customer reports that some users forget to get offline or when they do not use network bandwidth, it needs to force those users offline at BAS, avoiding extra losses. How does MA5200G set the idle cut for users?
It is regulated that if a broadband user has no traffic in an hour (not including the control packets such as user detection) or if the customer request traffic lower limit, MA5200G will execute command to cut the user. If requested, configure MA5200G as follows, or according to the requirements of users.
[MA5200G-aaa-domain-test]idle-cut xx xx
For instance: [MA5200G-aaa-domain-test]idle-cut 60 120
The configuration means that if the traffic of a user at one minute within an hour does not reach 120Kbyte, it will be forced offline. The last parameter (the value of traffic required in every minute) could be advertised by Radius.


|How does ssl work?
Detailed SSL – Step 1 Determine Secure Communication
( updated 2004-01-15 )
This is page 2 of our SSL articles. You can go back to the SSL overview by clicking here.
Internet communication typically runs through multiple program layers on a server before getting to the requested data such as a web page or cgi scripts.The outer layer is the first to be hit by the request. This is the high level protocols such as HTTP (web server), IMAP (mail server), and FTP (file transfer).Determining which outer layer protocol will handle the request depends on the type of request made by the client. This high level protocol then processes the request through the Secure Sockets Layer. If the request is for a non-secure connection it passes through to the TCP/IP layer and the server application or data.If the client requested a secure connection the ssl layer initiates a handshake to begin the secure communication process. Depending on the SSL setup on the server, it may require that a secure connection be made before allowing communication to pass through to the TCP/IP layer in which case a non-secure request will send back an error asking for them to retry securely (or simply deny the non-secure connection).
This question is usually geared toward whether or not the path and query string is encrypted in an HTTPS “get” request (this is where form field responses or program variables are tagged on to the end of the url). These fields are stripped off of the URL when creating the routing information in the https packaging process by the browser and are included in the encrypted data block.
The page data (form, text, and query string) are passed in the encrypted block after the encryption methods are determined and the handshake completes.
A related issue that frequently comes up is whether or not form data is transmited with encryption if the blank form is displayed without https. If the form “action” is set to use https then the ssl handshake will take place before the data is sent. Whether or not the original form is displayed using https has little to do with the form submission unless the form action uses a relative path, in which case the default will be to use the protocol that was used to display the form.
This applies to both the request and the response.


Upgrading usb key code
Just got new motherboard put into the laptop, so had to re-enter codes to enable isadora. I used the wrong one for the usb key, so have enabled the standard version of isadora, how do I enter the core video one to enable core stuff - registration option is now greyed out?
If you have a mac I can help.
Quit Isadora and go to users-->shared and trash the Isadora Registration file.
Restart Isadora and you can re-register.
Don't know where to find that file on the PC. Someone else?
Hi Michaelhave done that as far as i can see, but its still showing up as registered when the usb key is inserted (have restarted computer as well)Nick
trial and error got me there - launch isadora without the key plugged in, then plug the key - registration menu item is then available and gives empty box to enter code.
mark last edited by
The instructions (which you should have received via email when you got your key) are to delete Isadora USB and re-install the program. This clears the registration file embedded into the app. Probably you got that mail a long time ago though.Anyway, that's the best practice for this situation.Best Wishes,Mark
Thanks for that.Yep the email is long gone - just saved the code number.


Results 1 to 2 of 2
hi all: here's a twist on things... i have a fedora 3 box set up behind a linksys router which is designated as dhcp (the router is dhcp). i am ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 05-30-2005 #1
- Join Date
- Jan 2005
HELP PLEASE i cannot ftp files to a fedora 3 box behind router
here's a twist on things... i have a fedora 3 box set up behind a linksys router which is designated as dhcp (the router is dhcp). i am trying to set up and serve content and specified a static IP on the router which passes through and accesses my linux box (see: http://18.104.22.168/ ) and does serve a basic page to the web. i will run subdirectories for the limited stuff i'll be doing.
question: when i ftp into the box through the linksys router, i cannot put any files. i am able to cp files with a terminal window, but i cannot get transfer them with wsFTP or smartFTP on a windows box. i can browse and view the directories and actually get a fast login. i have checked permissions and they are '755' on var/www/html but when i try to move the files, i cannot.
anyone have any ideas?
- 05-30-2005 #2
- Join Date
- Apr 2005
Can u tell me which FTP Package have you installed and configured. If I am able to uderstand correctly you are not able to put any files when you are using it thru the windows client right?


We're currently running version 184.108.40.206. and everything was working just fine until today. No modifications were made that we are aware of and the only update that was done prior to this issue was an woocommerce update. I have tried disabling each of our plugins one at a time, but ALL images are still broken throughout the entire forum. We're running both the advanced attachments and the wpforo embed addons. Again, everything was running just fine until now. If you see my screenshot, you can see that all attachment thumbnails are missing and/or broken. If you attempt to view direct url of an attachment, it produces a non-specific error notice: "image cannot be displayed because it contains errors"
Here's what I have already attempted with no success:
1.) Disabling all other plugins
2.) Regenerating thumbnails
Can anyone offer any additional suggestions on trouble shooting critical issue??
It looks like another user experienced the same exact issue here: https://gvectors.com/forum/wpforo-advanced-attachments/images-dont-display-anymore/
Looks like kyle had suggested to disable "secure attachment urls" and that seemed to immediately fix the other user's issue.
The question is, where is that specific setting? It seems that it no longer exists?
Ok, I was able to locate the add-on tab that contained all of the settings and finally have resolved the "broken image" issue after switching off secure attachment urls.
I still have two questions about this issue:
1.) What would be causing secure attachment urls to break images in the first place?
2.) What are the downsides/risks to having secure attachment urls turned off?


SQL Server migrations are a necessary and expected part of keeping a modern SQL Server deployment. We have worked with many clients on migration projects, and I have organized some considerations for you and your team before, during, and after your SQL Server migration. We recommend working with a SQL server DBA on these kinds of projects. Especially because this list is not exhaustive, nor does it take everything for your environment into account, a DBA will be best equipped to help keep things on track.
The main set of reasons we encounter for a migration project is that SQL is out of date or it is time for a hardware upgrade or both. Some others may be to change data centers or to move to the cloud. In any case, the things I will ask you to consider will be relevant to any migration project.
First is hardware:
Provisioning is a complex topic, and an in-depth guide is out of the bounds of this post. However, be sure to look into the CPU and network throughput needs of your current production workload on the old server and plan appropriately according to your business needs.
For storage, we recommend getting a different drive for the different workloads in SQL Server. Specifically, having a separate drive for each of the following: the binary files, the data files (.mdf and .ndf), the log files (.ldf), TempDB (.mdf,.ndf, and .ldf), and backups (.bak or .trn), and none of these should live on C:\. This is to help prevent I/O issues across workloads as well as prevent the C:\ drive from ever having a space issue that could take the server down. Be sure to size the new drives in accordance with the usage patterns of the prior server with room for growth. A cloud consideration is to look for a local attached SSD for TempDB to increase performance, also known as ephemeral storage.
We would also recommend provisioning a network storage for local backups and point in time-recoverability with low wait times. This should be paired with a backup to cloud storage for long-term retention and ransomware protection.
Second is Software:
When at all possible, keep the SQL server host clean from other applications and services. Even SQL Server Management studio should not be installed on a high-performance production system!
When installing SQL Server on the new host, be sure only to include the services that will be needed. Refrain from installing everything available, or even things you might use later. Only install things you plan on using. This helps keep the device performant and lean. However, you can run the SQL server discovery report (built into the SQL server installer) to see what SQL Server extensions are currently running on the old server so that the new server can be configured the same.
Third is licensing:
Some migrations occur solely to save money on licensing or to access features only available to the Enterprise edition, such as intelligent query tuning. Be sure to consider the pain points of your current system and investigate if a newer version feature solves it or simplifies its management. Also, consider if a higher edition will provide quality of life improvement or business critical service that may reduce time or cost in other ways.
Fourth is configuration and compatibility
Some organizations use legacy SQL versions because their application requires them. It is worthwhile to consider that there are minimum compatibility levels when upgrading. For example, the minimum compatibility level in SQL server 2019 is 100, which is the 2008 version of the cardinality estimator. Checking with vendors or internal development teams with these new features in a dev environment (SQL server developer edition is free for this purpose!) is a worthwhile investment.
Be sure to consider the current configurations of individual databases on the old server. Some that have tripped up some of our clients have been ‘is_trustrworthy_on’, ‘is_read_committed_snapshot_on’, ‘is_broker_enabled’ among others.
We recommend testing production workloads in a development environment before migrating. Testing app connections and ensuring everything works as it should be a required checkpoint in your project. The last thing you want in the middle of a downtime is to find out there is an unknown compatibility issues on the app side when the database has already been cut over to the new server.
Fifth is downtime:
A well-planned migration can have a cutover of a production database in 5 minutes or less. We typically use log shipping as it is an effective and low-maintenance method to get a production copy of data that is usually less than 1 hour out of sync from production. The process for cutting over for us is the least painful part of a migration. Especially since we typically work through all the above with our clients beforehand.
Considerations During Migration
Since this is typically a short section of our process, I will describe the general flow:
We set up log shipping sometime before the migration, it does not take much as the longest part is typically restoring a copy of the production database to the new server. Once this is set up, we use scripts to configure and start the log shipping process. We make sure the LSbackup, copy, and restore jobs work and then we are set until the day we cut over. We also copy over any relevant jobs or linked servers and ensure other dependencies, such as SSIS packages, are ready at this point in the process.
On cutover day we use scripts to set the database to read-only and cancel all in-flight transactions so the data is in a consistent state. We do one last backup and then disable the job. We use the built-in report to see “Transaction Log Shipping Status” and compare the LSNs of the most recent backup and restore to make sure all the most recent data has been restored to the new server. Then we disable the copy and restore jobs, recover the database on the new server and set it to read/write. Here is where our clients change the connection strings and ensure everything is working as expected. We follow up by changing relevant configurations such as the ones mentioned above and clearing out the log shipping jobs from the old and new servers.
The database is set up and is running on the new server, at this point we would use our final ‘copy-logins’ script to ensure the application and users have the same permissions and login capabilities on the new server. Migration complete!
We monitor our client’s servers throughout the year, so we typically look at our maintenance jobs and reports as they come in after the migration to look for any issues, working with the client to resolve any issues that arise. Having alerts set up to catch these issues is important, even if you do have a DBA team!
I hope this helps you on your migration path. Please let us know if you are having trouble or need more information, we would be glad to help you have a successful migration and more!


A Course/Module Director can change the way tools are listed in the left-hand navigation. By default 2.9 sorts these tools alphabetically. Course/Module Directors can arrange the tools by:
- Click Site Editor
- Click Page Order
- DRAG each tool up or down and place it relative to the other tools
- Click Save
Other capabilities include renaming, hide/disable and delete.
For consistency between sites for students we recommend that you do not change the name.
In some cases hiding or disabling a tool will affect student access.
Before deleting a tool verify that there is no data.


Polycarp is working on a new operating system called BerOS. He asks you to help with implementation of a file suggestion feature.

There are $$$n$$$ files on hard drive and their names are $$$f_1, f_2, \dots, f_n$$$. Any file name contains between $$$1$$$ and $$$8$$$ characters, inclusive. All file names are unique.

The file suggestion feature handles queries, each represented by a string $$$s$$$. For each query $$$s$$$ it should count number of files containing $$$s$$$ as a substring (i.e. some continuous segment of characters in a file name equals $$$s$$$) and suggest any such file name.

For example, if file names are "read.me", "hosts", "ops", and "beros.18", and the query is "os", the number of matched files is $$$2$$$ (two file names contain "os" as a substring) and suggested file name can be either "hosts" or "beros.18".


Vector network analyzer (VNA) are used to measure scattering parameters of high frequency circuits. When frequency is high enough the reflections of the waves start to matter and distributed effects need to be taken into account. VNA can be used to analyze reflection and transmission coefficients of circuits at high frequencies.
For example ideally antenna would radiate all the energy it gets, but all antennas reflect some of the energy back to the source and only radiate energy at certain frequencies. With VNA amount of energy reflected as function of frequency can be measured. Amplifiers also reflect some energy from both input and output and have some amount of gain. All of which can be measured using VNA.
Unfortunately VNAs are often very expensive and way out of my budget. Newest cutting edge VNAs with very wide frequency band can have insanely high cost. For example starting price of Anritsu’s 110 GHz VectorStart ME7838A VNA is $575,850. Even used VNAs for lower frequencies are often several thousand dollars. At ebay cheapest used 6 GHz two port VNAs seem to sell for about 2,000€, still way more than I’m willing to pay.
Since I can’t afford even a used VNA I decided to make one myself with a budget of 200€, tenth of what they cost used and about 1/100 of what they cost new. Of course it isn’t going to be as accurate as commercial VNAs, but I don’t need that high accuracy and it’s a good learning experience anyway.
Our Ladyada (Limor Fried) was nominated for Red Hat’s Women in Open Source Award! Please vote for her! Visit: https://www.redhat.com/en/about/women-in-open-source
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, or even use Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for MakeCode, CircuitPython, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Have an amazing project to share? Join the SHOW-AND-TELL every Wednesday night at 7:30pm ET on Google+ Hangouts.
Join us every Wednesday night at 8pm ET for Ask an Engineer!
Maker Business — The strange world of low-margin online returns
Wearables — Liquid magic
Electronics — Diamonds may be forever… but components? Not so much.
Biohacking — Raspberry Pi Health Dashboard
Python for Microcontrollers — Python on hardware, a portal to a world of fun! #Python #Adafruit #CircuitPython @circuitpython @micropython @ThePSF @Adafruit
No comments yet.
Sorry, the comment form is closed at this time.


How can I know when the user wants to continue scrolling, but reaches the end of the scroll.
I have already tried this extension and apparently it has video driver problems, the error occurs when you register an arrage and use two fingers to zoom and the app simply does not respond and closes, unless this link that you share with me is the update of that version with errors…
I used this extension for my projects… And hope the updated version has bug .
You tell me that you have a version of this extension that does not have errors?
You could try ScrollHandler: Handle the scroll of scroll views
I currently use that extension, but it doesn’t have an event as such to identify when the maximum scroll is, however I think it has to be done but I don’t know how.


mobile - desktop
Available Now at RodentPro.com!
News & Events:
Posted by troy h on September 11, 2002 at 09:47:31:
In Reply to: Actually this is becoming extremely sad... posted by Kenny Wray on September 10, 2002 at 12:27:31:
let me first say that i'm not "for" either Carl's show or the Arnold's show. fact is, i have my reservations about both operations. but the pros and cons of each competing group is not what i'm here to discuss - the relationship that a herp society has with a particular a show is.
my herp society experience spans 3 dallas area societies: the DHS, NTHS, and (to a lesser degree) the DFWHS. i also have a longstanding membership in the Texas Herp Society and the ETHS (Houston). what that experience tells me is that when a society focuses too narrowly, that society will not last.
1) DHS began to focus almost exclusively on legal matters, contesting TPWD anti-herping regulations
2) NTHS allowed its focus (and its draw to the public) to become the live animals that were offered for sale at meetings by various members and vendors. when the herp market (and thus sales) declined, the vendors quit coming. without "for sale" snakes to look at, membership declined.
On the opposite extreme is the Texas Herp Society (THS) which is purely oriented towards academics and field herpers, with its fall symposium and spring field trip. This society has never had a huge membership (perhaps 200, at most) but it has surived since 1939.
the ETHS falls somewhere in the middle. it has field trips (occassionally), does not allow the sale of herps at its meetings (due mostly to the fact that the zoo, where meetings are held, does not allow it), but does host an annual conference and breeder's expo. The conference is usually very successful, although (to my eye, i don't have numbers) it seems that attendance, while still high, has declined the past few years. i think their success, while still holding an expo is largely due to the fact that they control it. Further credit must be given to their core of officers, who seem to accept the fact that they will be some sort of officer "for life" rather than hand off the chores to others (part of the problem with NTHS).
I disagree with Kenny that a society that sponsors a show will die off. obviously, it isn't happening in houston. however, i think a society should be very careful about linking thier fortune to the fortunes of the herp trade (which is currently in a "down" cycle). I think houston (ETHS) survives largely because it isn't driven by the herp trade, but rather by education - and that they allow an annual outlet for trade (or keep the trading in the parking lot instead of the meeting room).
how does this discussion pertain to the DFWHS? i think you guys should be very careful about your association with herp shows. i thought that severing your ties with the Texas Reptile Expo was a good move, because your society's stated goals of conservation did not align themselves well with the commericialism or sale of wild-caught herps present at those expos.
at the same time, however, it now APPEARS that you have allied yourselves with Carl's show. while i wasn't there, and can't make any grounded statements about the adherence of the vendors to Carl's "cb only" policy, what i'm hearing (3rd hand) suggests that there were wc or captive-born from wc animals available there.
furthermore, i'm given to understand that it was Carl, as a board member of the DFWHS who made the motion that the DFWHS sever its ties with the Texas Reptile Expo, seconded by Steve Hammack. now it is these same members of the society that have organized a competing expo. Please don't misunderstand - I don't have a particular problem with either of these individuals organizing a new expo. What i'm saying is that it LOOKS LIKE (because the organizers are officers of the DFWHS) is that the DFWHS is associated with and sponsoring the new expo rather than the Arnold's show.
from the outside, i guess the whole affair seems perhaps a little distasteful.
Good luck to you all
(taking a break from local herp societies in general)


2. Intimacy (awareness)
When animals focus on something interesting they see or do there is a priceless expression in their eyes.
My cat Tom was addicted to water. Wherever he heard water he was present. This is a moment I captured while playing with the water hose in the garden.


// Automatically generated file.

#include <assert.h>
#include <stdint.h>

#define byte uint8_t
#define bool _Bool
#define CALLCONV

#define get_prefix(r) (r > 7 && (r -= 8) == r)

#define Reg8 uint8_t
#define Reg8_al 0
#define Reg8_cl 1
#define Reg8_dl 2
#define Reg8_bl 3
#define Reg8_spl 4
#define Reg8_bpl 5
#define Reg8_sil 6
#define Reg8_dil 7
#define Reg8_r8b 8
#define Reg8_r9b 9
#define Reg8_r10b 10
#define Reg8_r11b 11
#define Reg8_r12b 12
#define Reg8_r13b 13
#define Reg8_r14b 14
#define Reg8_r15b 15
#define Reg16 uint8_t
#define Reg16_ax 0
#define Reg16_cx 1
#define Reg16_dx 2
#define Reg16_bx 3
#define Reg16_sp 4
#define Reg16_bp 5
#define Reg16_si 6
#define Reg16_di 7
#define Reg16_r8w 8
#define Reg16_r9w 9
#define Reg16_r10w 10
#define Reg16_r11w 11
#define Reg16_r12w 12
#define Reg16_r13w 13
#define Reg16_r14w 14
#define Reg16_r15w 15
#define Reg32 uint8_t
#define Reg32_eax 0
#define Reg32_ecx 1
#define Reg32_edx 2
#define Reg32_ebx 3
#define Reg32_esp 4
#define Reg32_ebp 5
#define Reg32_esi 6
#define Reg32_edi 7
#define Reg32_r8d 8
#define Reg32_r9d 9
#define Reg32_r10d 10
#define Reg32_r11d 11
#define Reg32_r12d 12
#define Reg32_r13d 13
#define Reg32_r14d 14
#define Reg32_r15d 15
#define Reg64 uint8_t
#define Reg64_rax 0
#define Reg64_rcx 1
#define Reg64_rdx 2
#define Reg64_rbx 3
#define Reg64_rsp 4
#define Reg64_rbp 5
#define Reg64_rsi 6
#define Reg64_rdi 7
#define Reg64_r8 8
#define Reg64_r9 9
#define Reg64_r10 10
#define Reg64_r11 11
#define Reg64_r12 12
#define Reg64_r13 13
#define Reg64_r14 14
#define Reg64_r15 15
#define Reg128 uint8_t

void CALLCONV pushf(void** buf) {
    *(uint8_t*)(*buf) = 156;
    *(byte*)buf += 1;
}

void CALLCONV popf(void** buf) {
    *(uint8_t*)(*buf) = 157;
    *(byte*)buf += 1;
}

void CALLCONV ret(void** buf) {
    *(uint8_t*)(*buf) = 195;
    *(byte*)buf += 1;
}

void CALLCONV clc(void** buf) {
    *(uint8_t*)(*buf) = 248;
    *(byte*)buf += 1;
}

void CALLCONV stc(void** buf) {
    *(uint8_t*)(*buf) = 249;
    *(byte*)buf += 1;
}

void CALLCONV cli(void** buf) {
    *(uint8_t*)(*buf) = 250;
    *(byte*)buf += 1;
}

void CALLCONV sti(void** buf) {
    *(uint8_t*)(*buf) = 251;
    *(byte*)buf += 1;
}

void CALLCONV cld(void** buf) {
    *(uint8_t*)(*buf) = 252;
    *(byte*)buf += 1;
}

void CALLCONV std(void** buf) {
    *(uint8_t*)(*buf) = 253;
    *(byte*)buf += 1;
}

void CALLCONV jo_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 112;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jno_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 113;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jb_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 114;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnae_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 114;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jc_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 114;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnb_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 115;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jae_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 115;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnc_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 115;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jz_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 116;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV je_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 116;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnz_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 117;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jne_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 117;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jbe_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 118;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jna_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 118;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnbe_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 119;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV ja_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 119;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV js_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 120;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jns_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 121;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jp_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 122;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jpe_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 122;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnp_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 123;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jpo_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 123;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jl_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 124;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnge_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 124;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnl_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 125;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jge_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 125;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jle_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 126;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jng_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 126;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jnle_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 127;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV jg_imm8(void** buf, int8_t operand) {
    *(uint8_t*)(*buf) = 127;
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = operand;
    *(byte*)buf += 1;
}

void CALLCONV inc_r16(void** buf, Reg16 operand) {
    *(uint8_t*)(*buf) = (102 + get_prefix(operand));
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = (64 + operand);
    *(byte*)buf += 1;
}

void CALLCONV inc_r32(void** buf, Reg32 operand) {
    if ((operand > 7))
    {
        *(uint8_t*)(*buf) = 65;
        *(byte*)buf += 1;
    }
    *(uint8_t*)(*buf) = (64 + operand);
    *(byte*)buf += 1;
}

void CALLCONV dec_r16(void** buf, Reg16 operand) {
    *(uint8_t*)(*buf) = (102 + get_prefix(operand));
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = (72 + operand);
    *(byte*)buf += 1;
}

void CALLCONV dec_r32(void** buf, Reg32 operand) {
    if ((operand > 7))
    {
        *(uint8_t*)(*buf) = 65;
        *(byte*)buf += 1;
    }
    *(uint8_t*)(*buf) = (72 + operand);
    *(byte*)buf += 1;
}

void CALLCONV push_r16(void** buf, Reg16 operand) {
    *(uint8_t*)(*buf) = (102 + get_prefix(operand));
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = (80 + operand);
    *(byte*)buf += 1;
}

void CALLCONV push_r32(void** buf, Reg32 operand) {
    if ((operand > 7))
    {
        *(uint8_t*)(*buf) = 65;
        *(byte*)buf += 1;
    }
    *(uint8_t*)(*buf) = (80 + operand);
    *(byte*)buf += 1;
}

void CALLCONV pop_r16(void** buf, Reg16 operand) {
    *(uint8_t*)(*buf) = (102 + get_prefix(operand));
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = (88 + operand);
    *(byte*)buf += 1;
}

void CALLCONV pop_r32(void** buf, Reg32 operand) {
    if ((operand > 7))
    {
        *(uint8_t*)(*buf) = 65;
        *(byte*)buf += 1;
    }
    *(uint8_t*)(*buf) = (88 + operand);
    *(byte*)buf += 1;
}

void CALLCONV pop_r64(void** buf, Reg64 operand) {
    *(uint8_t*)(*buf) = (72 + get_prefix(operand));
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = (88 + operand);
    *(byte*)buf += 1;
}

void CALLCONV add_rm8_imm8(void** buf, Reg8 reg, int8_t value) {
    *(uint8_t*)(*buf) = 128;
    *(byte*)buf += 1;
    *(Reg8*)(*buf) = (reg + 0);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV or_rm8_imm8(void** buf, Reg8 reg, int8_t value) {
    *(uint8_t*)(*buf) = 128;
    *(byte*)buf += 1;
    *(Reg8*)(*buf) = (reg + 1);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV adc_rm8_imm8(void** buf, Reg8 reg, int8_t value) {
    *(uint8_t*)(*buf) = 128;
    *(byte*)buf += 1;
    *(Reg8*)(*buf) = (reg + 2);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV sbb_rm8_imm8(void** buf, Reg8 reg, int8_t value) {
    *(uint8_t*)(*buf) = 128;
    *(byte*)buf += 1;
    *(Reg8*)(*buf) = (reg + 3);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV and_rm8_imm8(void** buf, Reg8 reg, int8_t value) {
    *(uint8_t*)(*buf) = 128;
    *(byte*)buf += 1;
    *(Reg8*)(*buf) = (reg + 4);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV sub_rm8_imm8(void** buf, Reg8 reg, int8_t value) {
    *(uint8_t*)(*buf) = 128;
    *(byte*)buf += 1;
    *(Reg8*)(*buf) = (reg + 5);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV xor_rm8_imm8(void** buf, Reg8 reg, int8_t value) {
    *(uint8_t*)(*buf) = 128;
    *(byte*)buf += 1;
    *(Reg8*)(*buf) = (reg + 6);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV cmp_rm8_imm8(void** buf, Reg8 reg, int8_t value) {
    *(uint8_t*)(*buf) = 128;
    *(byte*)buf += 1;
    *(Reg8*)(*buf) = (reg + 7);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV add_rm16_imm16(void** buf, Reg16 reg, int16_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 0);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV add_rm16_imm32(void** buf, Reg16 reg, int32_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 0);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV add_rm32_imm16(void** buf, Reg32 reg, int16_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 0);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV add_rm32_imm32(void** buf, Reg32 reg, int32_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 0);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV or_rm16_imm16(void** buf, Reg16 reg, int16_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 1);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV or_rm16_imm32(void** buf, Reg16 reg, int32_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 1);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV or_rm32_imm16(void** buf, Reg32 reg, int16_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 1);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV or_rm32_imm32(void** buf, Reg32 reg, int32_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 1);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV adc_rm16_imm16(void** buf, Reg16 reg, int16_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 2);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV adc_rm16_imm32(void** buf, Reg16 reg, int32_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 2);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV adc_rm32_imm16(void** buf, Reg32 reg, int16_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 2);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV adc_rm32_imm32(void** buf, Reg32 reg, int32_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 2);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV sbb_rm16_imm16(void** buf, Reg16 reg, int16_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 3);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV sbb_rm16_imm32(void** buf, Reg16 reg, int32_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 3);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV sbb_rm32_imm16(void** buf, Reg32 reg, int16_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 3);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV sbb_rm32_imm32(void** buf, Reg32 reg, int32_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 3);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV and_rm16_imm16(void** buf, Reg16 reg, int16_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 4);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV and_rm16_imm32(void** buf, Reg16 reg, int32_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 4);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV and_rm32_imm16(void** buf, Reg32 reg, int16_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 4);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV and_rm32_imm32(void** buf, Reg32 reg, int32_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 4);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV sub_rm16_imm16(void** buf, Reg16 reg, int16_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 5);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV sub_rm16_imm32(void** buf, Reg16 reg, int32_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 5);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV sub_rm32_imm16(void** buf, Reg32 reg, int16_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 5);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV sub_rm32_imm32(void** buf, Reg32 reg, int32_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 5);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV xor_rm16_imm16(void** buf, Reg16 reg, int16_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 6);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV xor_rm16_imm32(void** buf, Reg16 reg, int32_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 6);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV xor_rm32_imm16(void** buf, Reg32 reg, int16_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 6);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV xor_rm32_imm32(void** buf, Reg32 reg, int32_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 6);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV cmp_rm16_imm16(void** buf, Reg16 reg, int16_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 7);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV cmp_rm16_imm32(void** buf, Reg16 reg, int32_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 7);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV cmp_rm32_imm16(void** buf, Reg32 reg, int16_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 7);
    *(byte*)buf += 1;
    *(int16_t*)(*buf) = value;
    *(byte*)buf += 2;
}

void CALLCONV cmp_rm32_imm32(void** buf, Reg32 reg, int32_t value) {
    *(uint8_t*)(*buf) = 129;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 7);
    *(byte*)buf += 1;
    *(int32_t*)(*buf) = value;
    *(byte*)buf += 4;
}

void CALLCONV add_rm16_imm8(void** buf, Reg16 reg, int8_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 0);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV add_rm32_imm8(void** buf, Reg32 reg, int8_t value) {
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 0);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV or_rm16_imm8(void** buf, Reg16 reg, int8_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 1);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV or_rm32_imm8(void** buf, Reg32 reg, int8_t value) {
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 1);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV adc_rm16_imm8(void** buf, Reg16 reg, int8_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 2);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV adc_rm32_imm8(void** buf, Reg32 reg, int8_t value) {
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 2);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV sbb_rm16_imm8(void** buf, Reg16 reg, int8_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 3);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV sbb_rm32_imm8(void** buf, Reg32 reg, int8_t value) {
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 3);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV and_rm16_imm8(void** buf, Reg16 reg, int8_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 4);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV and_rm32_imm8(void** buf, Reg32 reg, int8_t value) {
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 4);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV sub_rm16_imm8(void** buf, Reg16 reg, int8_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 5);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV sub_rm32_imm8(void** buf, Reg32 reg, int8_t value) {
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 5);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV xor_rm16_imm8(void** buf, Reg16 reg, int8_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 6);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV xor_rm32_imm8(void** buf, Reg32 reg, int8_t value) {
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 6);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV cmp_rm16_imm8(void** buf, Reg16 reg, int8_t value) {
    *(uint8_t*)(*buf) = 102;
    *(byte*)buf += 1;
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg16*)(*buf) = (reg + 7);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}

void CALLCONV cmp_rm32_imm8(void** buf, Reg32 reg, int8_t value) {
    *(uint8_t*)(*buf) = 131;
    *(byte*)buf += 1;
    *(Reg32*)(*buf) = (reg + 7);
    *(byte*)buf += 1;
    *(int8_t*)(*buf) = value;
    *(byte*)buf += 1;
}


A permutation is a sequence of integers from 1 to n of length n containing each number exactly once. For example, (1), (4, 3, 5, 1, 2), (3, 2, 1) are permutations, and (1, 1), (4, 3, 1), (2, 3, 4) are not.

There are many tasks on permutations. Today you are going to solve one of them. Let’s imagine that somebody took several permutations (perhaps, with a different number of elements), wrote them down consecutively as one array and then shuffled the resulting array. The task is to restore the initial permutations if it is possible.


There are millions (if not billions) of lines of VB6 code out there. For many businesses, they need this code moved to .NET but they can’t just throw the baby out with the bathwater and start from scratch. They might not be able to afford this, or maybe they couldn’t rebuild it if they tried….
Ever wonder how the Healthcare Industry could harness the full power of Silverlight to create State-of-the-Art, Game-Changing applications to lower Healthcare costs? In this episode of ARCast.TV, Jeff Barnes sits down with David Darnell from MDI Holdings and Henry Lee from New Age Solution to discuss their innovative use of Silverlight, Windows Communication Foundation, and…
The latest ARCast episode has been published. In this talk, Cameron Skinner, Product Unit Manager for Visual Studio Team System, and Zhiming Xue discuss the challenges architects often face and how they may benefit from using Visual Studio 2010. Cast: https://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Enabling-Architects-with-Microsoft-Visual-Studio-2010/
Brian H. Prince meets with Stephen Griffin and John Hannah about their new open source project called MVC4WPF. It is a new framework and guidance package that helps you quickly build enterprise WPF applications. They have seen a dramatic improvement in productivity, ability to leverage entry level developers, and a massive reduction in development costs….
A new episode is available featuring Rocky Lhotka on Development Frameworks. It is difficult to strike a balance between the optimal architecture and over architecting a solution. Joe Shirey sits down with Rocky Lhotka , the creator of the CSLA.NET framework, to discuss how he balances what should and should not be in his framework….


In the Reopen Review Queue, add functionality for "leave closed" so that it may become "leave closed and change close reason."
One of the things that is not uncommon at all in the reopen review queue is someone changing a question from say... 'unclear' to 'clear, but completely off topic', or one off topic reason to another.
While the OP thinks that they've fixed the problem (I've added the necessary code to reopen it from unclear), they've added 500 lines of code and there's no way anyone is going to reopen that.
So, it's a leave closed review action. And the question remains "closed as unclear" which is really a rather unfortunate thing for the OP who tried to fix it.
Thus the request. In the Reopen Review Queue, have the option for a leave closed vote to change the close reason for the question. If all three leave close votes are in agreement (not a majority - a unanimous vote), change the close vote reason for the question to the new reason.
This will give clear indication for the OP and people who come by later about what needs to be fixed for the question to be reopened. It also allows new users who see the closed questions to better set their expectations about what the content of a question should be.
This is more important in sites where the FGITW is in play or where drive by up votes may make closed questions stay around for an inordinately long time leading to misleading and misunderstood close reasons on questions after they have been edited but still remain closed (but not deleted).