Skip to content

Latest commit

 

History

History
821 lines (547 loc) · 113 KB

2021-08-31.md

File metadata and controls

821 lines (547 loc) · 113 KB

< 2021-08-31 >

3,360,218 events, 1,559,653 push events, 2,475,723 commit messages, 206,100,665 characters

Tuesday 2021-08-31 00:01:20 by ms-mirror-bot

[MIRROR] Basic Mobs: the cooler simple mobs that run on datum AI. (With reworked cockroach AI as proof of concept) (#431)

  • Basic Mobs: the cooler simple mobs that run on datum AI. (With reworked cockroach AI as proof of concept) (#60694)

Simple_animals / mobs are the biggest lie in this code-base. They're far from simple and have an extreme god-object problem. Especially when you get to /hostile, where there is so many procs, vars, and what not, that you can't make any interesting additions without snowflaking the hell out of the code.

This PR hopes to help kill this problem by introducing a new /living subtype, /living/basic. The idea of this refactor is to slowly start moving all old simple_animals to this new system, moving over behaviors like charging and more extravagant mobs like megafauna over bit by bit similar to how newfood was implemented.

One of the other big goals of this refactor is to move many of the fringe simple animal behaviors into either AI datums, or components/elements. (Some of which still needs to be done in this PR).

As a proof of concept, I created the base mob/living/basic, and moved cockroaches over to the system. Since cockroaches have both a passive, melee and ranged mob.

This PR does slightly affect balance as the behavior isn't 1-on-1 due to it no longer running on the janky /hostile behavior, but I tried to keep the effects to a minimum, and the glockroach and hauberoach are not spawnable through many means as far as I know.

  • Basic Mobs: the cooler simple mobs that run on datum AI. (With reworked cockroach AI as proof of concept)

Co-authored-by: AMonkeyThatCodes 20987591+AMonkeyThatCodes@users.noreply.github.com


Tuesday 2021-08-31 02:06:48 by Kirill A. Shutemov

x86/traps: Add #VE support for TDX guest

Virtualization Exceptions (#VE) are delivered to TDX guests due to specific guest actions which may happen in either user space or the kernel:

 * Specific instructions (WBINVD, for example)  * Specific MSR accesses  * Specific CPUID leaf accesses  * Access to TD-shared memory, which includes MMIO

In the settings that Linux will run in, virtual exceptions are never generated on accesses to normal, TD-private memory that has been accepted.

The entry paths do not access TD-shared memory, MMIO regions or use those specific MSRs, instructions, CPUID leaves that might generate #VE. In addition, all interrupts including NMIs are blocked by the hardware starting with #VE delivery until TDGETVEINFO is called.  This eliminates the chance of a #VE during the syscall gap or paranoid entry paths and simplifies #VE handling.

After TDGETVEINFO #VE could happen in theory (e.g. through an NMI), but it is expected not to happen because TDX expects NMIs not to trigger #VEs. Another case where they could happen is if the #VE exception panics, but in this case there are no guarantees on anything anyways.

If a guest kernel action which would normally cause a #VE occurs in the interrupt-disabled region before TDGETVEINFO, a #DF is delivered to the guest which will result in an oops (and should eventually be a panic, as we would like to set panic_on_oops to 1 for TDX guests).

Add basic infrastructure to handle any #VE which occurs in the kernel or userspace.  Later patches will add handling for specific #VE scenarios.

Convert unhandled #VE's (everything, until later in this series) so that they appear just like a #GP by calling ve_raise_fault() directly. ve_raise_fault() is similar to #GP handler and is responsible for sending SIGSEGV to userspace and cpu die and notifying debuggers and other die chain users.  

Co-developed-by: Sean Christopherson sean.j.christopherson@intel.com Signed-off-by: Sean Christopherson sean.j.christopherson@intel.com Signed-off-by: Kirill A. Shutemov kirill.shutemov@linux.intel.com Reviewed-by: Andi Kleen ak@linux.intel.com Reviewed-by: Tony Luck tony.luck@intel.com Signed-off-by: Kuppuswamy Sathyanarayanan sathyanarayanan.kuppuswamy@linux.intel.com


Tuesday 2021-08-31 05:21:18 by nbarudi

Please Kill Me Now!

Minecraft reflection is about as annoying as it gets!

But that being said, I have done a solid job at atleast knowing how to make it function at all.. It doesn't function great, but it still works!!!!!

So things to keep in mind for anyone wanting to read this over: DONT!!! You will probably have a stroke, lets be honest.. I was having a stroke while writing it. But it works! so its staying, its probably the worse possible way I could have made it, but that doesn't matter since it is currently 1:20 AM and I am not in the mood to try and clean up the code (not that it would be too hard).

So here is what was added: The 'XRay' System now only shows for the player who will use the item! It will not show for any other players. This means people cant cause others to crash by spamming their xray ability.. The only people they will crash, is themself!

Something else.. Made a ReflectionUtility class to allow for some future reflection systems should I need them.. Hopefully I wont, because god this was a living hell to get functioning!


Tuesday 2021-08-31 09:20:14 by TwinkleInstituteAB

Create MBBS In Russia After NEET Exam

Studying Medicine in Russia: Is it a Good Idea?

Study mbbs abroad in russia is sort of a dream for each medical student. MBBS Russia has been additional well-liked amongst students from India. Since 1996 Indian students UN agency square measure fervent to become a doctor and to complete their dream Indian students started travel there.

How Medical college in Russia are Different Over the years, more and more Indians have been considering studying Medicine In Russia. An aspirant will be able to get admission to 8 faculties of Medicine with good experience. Amongst 8 faculties, 5 faculties are offered by the Federal State Medical University “Sumy”, 6 faculties are offered by the Medical Research Institute of the Academy of Sciences of the Republic of Mordovia, and 1 faculty is offered by the Novosibirsk State Medical University. Frequently asked questions: What kinds of classes are offered by the various faculties? MBBS specialisation can be obtained in the following programmes: Anatomy, Pharmacology, Physiology, Psychology, Forensic medicine, Pathology, Microbiology, Clinical Medicine, General Surgery and Psychiatry.

Why MBBS Russia is so Popular? The Reason for the popularity of MBBS in Russia is that it is given to the top of ranking students. According to the requirements set by the education ministry, those students who have scored high in the NEET exam have a chance to enter into one of the top medical colleges in the country. But more than that, the most interesting part is that students of Russian origin get the chance to study in Russian educational institutions at a relatively cheaper cost. Another beautiful thing about this choice is that the terms of study abroad for Russian students are much better than the terms of study abroad for Indian students. Their studies are not dependent on the students of other nationalities and they are able to stay there during the whole year.

What to Expect When study mbbs abroad inrussia Obviously, you would have a lot of questions about your future in Russia. While a huge majority would ask why would you want to go to Russia, here are the main reasons: It is a Good Idea for Medical Students to studyMBBS in russia Russia offers very low-cost education for you to study Medicine. In some cases, students might be able to get free education. It may also depend on the high demand from the universities for their MBBS graduates. The cost of accommodation and food is very low. Just be careful about choosing the best hostel. It may be very expensive. It is important to know the cost of food and accommodation in your cities before you travel to Russia. You will have to work in shifts too. If you have a solid plan, you can survive the rigorous schedule of a student.

Conclusion There are many benefits for students to study medicine in Russia. This country is one of the most modern medical facilities which can be called an oasis of scientific development and medical education. The quality of education and the educational system in this country is very high. Students can perform their studies comfortably there in terms of safety, security and comfort. Find more detail here about MBBS Russia, India, for people who are trying to apply for MBBS.


Tuesday 2021-08-31 10:24:18 by yujun.xu

fix bug for jpa,because i forget jdbc and dataSource,but fuck you


Tuesday 2021-08-31 10:25:43 by Adam Johnson

Clearly deliniate the circles of hell.

If we've unleashed Satan on a material, he will perform his dark magick on the material colors. Therefore, we need to prefix the satanic materials with something other than "RTLit_" lest the plain old runtime lit materials be infected by the prince of darkness.


Tuesday 2021-08-31 11:34:05 by Matt Hillsdon

Add diagnostics and autocomplete.

Adds support for the Pyright language server based on a fork with browser support. This PR uses a build from https://github.com/microbit-matt-hillsdon/pyright/tree/background-worker as of 03d67527beb5c8e9ede2e9baa7bab83ed481237f.

Key limitations:

  • The type stubs are incorrect causing user confusion. We cannot ship these proof-of-concept stubs.
  • We might consider some more student focussed error messages for common scenarios.
  • We might like to add hover, signature help, documentation for completions and other features that require more language server integration.

See #240, #239

Not sure about this but matches iframe version.

CM 0.19 stacks these now.

Looks way better like this than split between above/below. The error even goes first.

Ugly but functional workaround.

There isn't much by way of well maintained alternatives.

The VS code one is vscode-jsonrpc maintained in https://github.com/microsoft/vscode-languageserver-node Unlike the rest of that project, it doesn't look to depend on vscode itself. It's a little bigger but not my much. Maybe we should try that.

Use the Microsoft RPC implementation.

It's a little larger but much more promising. Next I'll strip this back to the connection and rebuild it bit by bit. A key question is connection lifetime. I think we want it to last for the entire session but be used my multiple CM instances. So we need to be able to deal with those differing lifetimes.

Start of a new client.

This class just does the text document sync operations and initialization. This will live longer than any given CodeMirror editor.

Baby steps to new client.

Unused for now.

Attempt at custom jest env.

Integrate new client.

We'll pull the point that documents get opened up, and integrate with the app file system in a bit. First we need to debug what we have :)

Diagnostics work. Typeshed is broken though.

Add clean-up of subscriptions.

Fix typings.

Roughly the right shape for multi-file support.

Not working as expected though. It is definitely aware of other files but only seems to update them when I open them in the editor.

Pull out the URI munging.

Not looked at escaping etc. just centralising for future consideration before I make a mess.

Split out the listener. Test the diff.

Unintended debug.

Fix initial diff. Tidying.

Behaviour still not as expected but pretty convinced that I'm sending the notifications I intend to.

Rename.

Pull out method.

Baby steps toward supporting background analysis.

Doesn't work yet but that's down to changes on the Pyright end.

More background thread progress.

Fixes bug in diagnostics. It seems you can only listen for each notification once so the per-editor version was overwriting the global version. Now we redispatch the notification in our client.

Version with working invalidation.

Bump to version with less crazy debug.

Autocomplete.

Might need to review how we deal with isIncomplete on the completition. I think what this needs most is some practical feedback from using it though.

Tidy autocomplete.

Version without debug.

Don't access capabilities before init.

We could do with making this impossible.

Ensure we're initialized.

As a bonus check we have completion support.

Add boost rules.

Tidy up.


Tuesday 2021-08-31 12:51:31 by Marko Grdinić

"9am. Yesterday I was nervous about the meeting, but for some reason after it was done is when I began to really begin to feel stressed. I had a hard night. Do I have any mail? Nope.

Let me fill out the Intel prescreening form to start the day.

9:20am. That was easy. They are asking me some easy questions they could have gotten from the resume.

9:30am. Some Reddit posting in that closure thread.

Now let me read the Satanophany raw and Tog.

Right, I realized that I wrote two entries ago I would lie on the resume if nothing happens by the end of the month. I really meant by the end of next month. This ideas floats to the top of my head occasionally. Let me just say that I won't do it, simply because it wouldn't work for me. I'd definitely get busted trying to talk my way through during the interview. It would be a huge difference if I had only a month or two experience working for some company and then presented myself as working for years, but right now my hand is too poor to even bluff with it.

I won't talk about this again.

10:10am. Ok, let me chill just for a bit more and then I'll do the Green Hills tech challenge. After that I'll get back to work on Spiral.

10:30am. Ok, enough messing around. Let me try that Green Hills challenge.

It is a multiple choice exam. I have absolutely no idea what it is going to be about. If is about obscure C++ mechanisms, I still do not know bunch of them. I did not really pay attention to the second lecture on move semantics so I am not sure what std::forward does exactly. Nor do I know how template var args work. Sigh.

Well, let me just go forward.

///

Instructions Time: 90 minutes

25 Questions

DIRECTIONS: This multiple-choice test contains questions designed to test your general programming aptitude. Each of the questions in the test is followed by six suggested answers. For each question, select the best answer by selecting the corresponding circle. When you are done, you can submit the exam by clicking the “Back to questions list” button in the top left corner (just above the question mark button), and then clicking the “I am done with the test' button at the bottom of the page. Alternatively, clicking the “Continue” button at the end of the exam will also take you back to question list, where you can click the “I am done with the test' button. You will be timed out of the test after 90 minutes. You will not be able to log back in to your test after completion.

SCORING: Each correct answer scores 4 points; each incorrect answer costs 1 point. Unanswered questions do not affect your score. It is generally to your advantage to guess at an answer if you can eliminate three or more answers.

CODE SAMPLE: Please upload a sample of code you individually authored in either C or C++. A couple hundred lines would be sufficient as long as it shows your programming experience with a complicated project. Please provide code for the entire project and not just an excerpt. Include a short description of what the code does in a file called README.txt. If the sample is from a group effort, please indicate which portions or files you wrote in README.txt. Please do not send confidential information or Intellectual Property belonging to another company. If you want to provide a link to your code sample, you can simply upload README.txt and place the link inside the file.​ Otherwise, a zip file containing your files is fine as long as you limit it to 25MB.

///

Oh, the code sample part would be trouble for me right now. The only to get through this is to go back to v0.09 and compile some of the old Cuda projects and send that.

Let me do that before I start the test.

let poker3 =
    "poker3",[cuda_modules;loops;poker;poker_players;timer],"The iterative test for NN MC based players.",
    """
inb s = CudaModules (1024*1024*1024)
Struct.iter (inl i ->
    inl learning_rate = 2f32 ** to float32 i |> dyn
    Console.printfn "The learning_rate is 2 ** {0}" i
    Loops.for {from=0; near_to=1; body=inl {i} ->
        inl num_players = 2
        inl stack_size = 10
        inl max_stack_size = num_players * stack_size
        open Poker {max_stack_size num_players}
        open PokerPlayers {basic_methods State Action}

        s.refresh
        inb s = s.RegionMem.create'
        s.CudaRandom.set_pseudorandom_seed (to uint64 i)

        Console.writeline "------"
        Console.printfn "The CudaRandom pseudorandom seed is {0}" i

        inl rate = {weight=learning_rate; covariance=learning_rate ** 0.85f32}
        inl a =
            open (Learning float32)
            inl network = RNN.rnn 128
            player_ac {rate network name="One"; discount=1f32} s
        inl b = player_rules {name="Two"}

        met f game (!dyn near_to) (!dyn near_to_inner) =
            Loops.for {from=0; near_to body=inl {i} ->
                Timer.time_it (string_format "iteration {0}" i)
                <| inl _ ->
                    inl a = a.data_add {win=ref 0}
                    inl b = b.data_add {win=ref 0}
                    Loops.for {from=0; near_to=near_to_inner; body=inl {i} ->
                        s.refresh
                        inb _ = a.data.player.region_create'
                        game stack_size (a, b)
                        }
                    inl a = a.data.win ()
                    inl b = b.data.win ()
                    Console.printfn "Winrate is {0} and {1} out of {2}." (a,b,a+b)
                }

        f game 30 1000
        //open Poker {max_stack_size num_players log=Console.printfn}
        //f game 10 1
        }
    ) (-11)
    """

output_test_to_temp cfg (Path.Combine(__SOURCE_DIRECTORY__, @"..\Temporary\output.fs")) poker3
|> printfn "%s"
|> ignore

I never thought I would find a use for this. But in fact, pasting the compiled output.

10:45am. Ok, I have it. It is 10k of compiled code. The first 2k lines are Cuda code.

10:45am. Let me start the test.

There are 25 multiple choice questions and I have 90 minutes for them. If they merely test general programming aptitude I won't have trouble with them.

https://github.com/mrakgr/The-Spiral-Language/blob/fc11b96a810fdaa6753b3e2805fda8f9c079edb2/Games/GamesTests.fs#L216

Let me write the readme for the code submission.

///

This is the compiled output of: https://github.com/mrakgr/The-Spiral-Language/blob/fc11b96a810fdaa6753b3e2805fda8f9c079edb2/Games/GamesTests.fs#L216

You can get the same result yourself by running the F# project. The C++ part is the first 2.4k lines.

What that link is pointing to is Spiral code written in an F# string which then gets compiled to a combination of Cuda C++ and F#. The Cuda code itself gets placed inside a string at the start of the output. The poker3 project itself is made up of a ML library, a poker game, and a neural agent it is trained on vs a handcrafted static bot. Running output.fs itself would compile the Cuda kernels to .ptx after which the ML library would be able to call them.

Link (Cuda kernels): https://github.com/mrakgr/The-Spiral-Language/blob/fc11b96a810fdaa6753b3e2805fda8f9c079edb2/Cuda/CudaModule.fs#L1270

Like everything else, I’ve written all the Cuda kernels by myself, though in some of them I’ve called out to the Cub library where applicable. It is not a pure C++ project, but hopefully having created a language that compiles to it in part would be satisfactory for a compilers position.

If it is not, currently I am working on a ref counting C backend for the v2 version of the Spiral language. I’ll be done in a few weeks and will be able to demonstrate the project that I did in it easily enough.

///

Show off. But it is good. Let me zip it and then I'll send it.

11:25am. Ok, now I can start the test. Instead of that, let me take a short break here. In fact, I should have breakfast first.

12:30pm. Adjusted the readme a bit and reuploaded it. At any rate I am done with both breakfast and Higurashi Gou. I've really been liking the second half. I should have it earlier instead of just lurking the threads.

12:35pm. Nevermind that. Let me do the multiple choice question quiz. It says it will take 90m, so that is what I will be doing.

It is time to do this.

12:40pm. Ok, let me take some time to do the first question.

2:15pm. Ok, this multiple choice exam was very hard. I had to skip several questions and in the end I was still pressed for time. If I got half right I'd be happy.

Seriously, how the hell does !A B look like in a venn diagram?

Basically I understand and, or, not and not much else.

https://youtu.be/m4shN9iCJOM?t=823

Ah, right right.

...Ok, I think I got that question right then. My intuition guided me to the correct answer.

2:20pm. In summary, the test had various questions from low level assembly, to finding bugs in C code, to high level concurrent logic in some kind of Prolog like language. It had me trace the execution of finite state machines and what else.

If I had an extra hour or half, I might have been able to do all the questions, but I just couldn't make it in time.

2:30pm. Ok, if I fail this one, I am happy that the job would go to somebody who can take it.

That one concurrent question bugs me.

main() {generate(3,list)}
generate(n,list)
{? x == 0 -> list = []
   x >= 0 -> [x,xs] = list
             generate(n-1,xs)
             x = n*n - 2*n
    default -> list = [0,1]

}

It was this kind of Prolog like concurrent language. The problem is that x == 0 and x >= 0 are interlapping and the question said in the previous problem that when multiple conditionals are true that the result is undefined. I think what should happen is that branching should happen on both. But that also flies in the face of unification being done here.

In the end I had to guess between 3 of the choices at random. I went with {3,0,-1,0,0,1}.

I must have misread something.

I wish I could have done one of the state machine question, but it said that it starts from an unknown state, and asks me to pick the shortest from the list of possible inputs which one guarantees that the machine will end up in state B. One mistake I made in that problem is not mentally filtering out the irrelevant outputs sitting next to the state transitions.

If it gave me a starting state instead of leaving it undefined, things would have been a lot easier.

Well, I'll see how it goes.

2:45pm. Sigh, the software world is harsh. I think I should go over the halfway mark on this kind of test, but you never know. I can't imagine there being that many people in the world who can ace it.

Let me do the chores.

I'll admit, if every place I applied to just sent me this kind of test, we'd be living in a just place."


Tuesday 2021-08-31 12:52:05 by Kevin Buzzard

chore(deprecated/*): Make deprecated classes into structures (#8178)

I make the deprecated classes is_group_hom, is_subgroup, ... into structures, and delete some deprecated constructions which become inconvenient or essentially unusable after these changes. I do not completely remove all deprecated imports in undeprecated files, however I push these imports much further towards the edges of the hierarchy.

More detailed comments about what is going on here:

In the src/deprecated/ directory, classes such as is_ring_hom and is_subring are defined (and the same for groups, fields, monoids...). These are predicate classes on functions and sets respectively, formerly used to handle ring morphisms and subrings before both were bundled. Amongst other things, this PR changes all the relevant definitions from classes to structures and then picks up the pieces (I will say more about what this means later). Before I started on this refactor, my opinion was that these classes should be turned into structures, but should be left in mathlib. After this refactor, I am now moving towards the opinion that it would be no great loss if these structures were removed completely -- I do not see any time when we really need them.

The situation I previously had in mind where the substructures could be useful is if one is (in the middle of a long tactic proof) defining an explicit subring of a ring by first defining it as a subset, or add_subgroup or whatever, and then doing some mathematics to prove that this subset is closed under multiplication, and hence proving that it was a subring after all. With the old approach this just involves some S : set R with more and more properties being proved of it and added to the type class search as the proof progresses. With the bundled set-up, we might have S : set R and then later on we get S_subring : subring R whose underlying subset equals S, and then all our hypotheses about S built up during the proof can no longer be used as rewrites, we need to keep rewriting or changeing x \in S_subring to x \in S and back again. This issue showed up only once in the refactor, in src/ring_theory/integral_closure.lean, around line 230, where I refactored a proof to avoid the deprecated structures and it seemed to get a bit longer. I can definitely live with this.

One could imagine a similar situation with morphisms (define f as a map between rings, and only later on prove that it's a ring homomorphism) but actually I did not see this situation arise at all. In fact the main issue I ran into with morphism classes was the following (which showed up 10 or so times): there are many constructions in mathlib which actually turn out to be, or (even worse) turn out under some extra assumptions to be, maps which preserve some structure. For example multiset.map (f : X -> Y) : multiset X -> multiset Y (which was in mathlib since it was born IIRC) turns out to be an add_group_hom, once the add_group structure is defined on multisets. So here I had a big choice to make: should I actually rename multiset.map to be private multiset.map_aux and then redefine multiset.map to be the add_monoid_hom? In retrospect I think that there's a case for this. In fact data.multiset.basic is the biggest source of these issues -- map and sum and countp and count are all add_monoid_homs. I did not feel confident about ripping out these fundamental definitions so I made four new ones, map_add_monoid_hom, sum_add_monoid_hom etc. The disadvantage with this approach is that again rewrites get a bit more painful: some lemma which involves map may need to be rewritten so that it involves map_add_monoid_hom so that one can apply add_monoid_hom.map_add, and then perhaps rewritten back so that one can apply other rewrites. Random example: line 43 of linear_algebra.lagrange, where I have to rewrite coe_eval_ring_hom in both directions. Let me say that I am most definitely open to the idea of renaming multiset.map_add_monoid_hom to multiset.map and just nuking our current multiset.map or making it private or map_aux or whatever but we're already at 92 files changed so it might be best to get this over with and come up with a TODO list for future tidy-ups. Another example: should the fields of complex be re' and im', and complex.re be redefined as the R-linear map? Right now in mathlib we only use the fact that it's an add_group_hom, and I define re_add_group_hom for this. Note however one can not always get away with this renaming trick, for example there are instances when a certain fundamental construction only preserves some structure under additional conditions -- for example has_inv.inv on groups is only a group homomorphism when the underlying group is abelian (and the same for pow and gpow). In the past this was dealt with by a typeclass is_group_hom on inv which fired in the presence of a comm_group but not otherwise; now this has to be dealt with by a second definition inv_monoid_hom whose underlying function is inv. You can't just get away with applying the proof of inv (a * b) = inv a * inv b when you need it, because sometimes you want to apply things like monoid_hom.map_prod which needs a monoid_hom as input, so won't work with inv: you need to rewrite one way, apply monoid_hom.map_prod and then rewrite back the other way now :-/ I would say that this was ultimately the main disadvantage of this approach, but it seems minor really and only shows up a few times, and if we go ahead with the renaming plan it will happen even fewer times.

I had initially played with the idea of just completely removing all deprecated imports in non-deprecated files, but there were times near the end when I just didn't feel like it (I just wanted it to be over, I was scared to mess around in control or test), so I removed most of them but added some deprecated imports higher up the tree (or lower down the tree, I never understand which way up this tree is, I mean nearer the leaves -- am I right in that computer scientists for some reason think the root of a tree is at the top?). It will not be too hard for an expert to remove those last few deprecated imports in src outside the deprecated directory in subsequent PR's, indeed I could do it myself but I might I might need some Zulip help. Note: it used to be the case that subring imported deprecated.subring; this is now the other way around, which is much more sensible (and matches with submonoid). Outside the deprecated directory, there are only a few deprecated imports: control.fold (which I don't really want to mess with),group_theory.free_abelian_group (there is a bunch of seq stuff which I am not sure is ever used but I just couldn't be bothered, it might be the sort of refactor which someone finds interesting or fun though), ring_theory.free_comm_ring (this file involves some definitional abuse which either needs to be redone "mathematically" or rewritten to work with bundled morphisms) and topology.algebra.uniform_group (which I think Patrick is refactoring?) and a test file.

If you look at the diffs you see that various things are deleted (lots of is_add_monoid_hom foo proofs), but many of these deletions come with corresponding additions (e.g. a new foo_group_hom definition if it was not there already, plus corresponding simp lemma, which is randomly either a coe or an apply depending on what mood I was in; this could all be done with @[simps] trickery apparently but I didn't read the thread carefully yet). Once nice achievement was that I refactored a bunch of basic ring and field theory to avoid the is_ classes completely, which I think is a step in the right direction (people were occasionally being forced to use deprecated stuff when doing stuff like Galois theory because some fundamental things used to use them; this is no longer the case -- in particular I think Abel-Ruffini might now be deprecated-free, or very nearly so).

finset.sum_hom and finset.prod_hom are gone. It is very funny to do a search for these files in mathlib current master as I write -- 98% of the time they're used, they're used backwards (with .symm or \l with a rewrite). The bundled versions (monoid_hom.map_prod etc) are written the other way around. I could have just left them and not bothered, but it seemed easier just to get rid of them if we're moving to bundled morphisms. One funny observation was that unary - seemed to be a special case: we seem to prefer -\sum i, f i to \sum i, -(f i) . For almost every other function, we want it to go the other way.


Tuesday 2021-08-31 13:00:47 by Luke Shumaker

subtree: don't fuss with PATH

Scripts needing to fuss with with adding $(git --exec-prefix) PATH before loading git-sh-setup is a thing of the past. As far as I can tell, it's been a thing of the past since since Git v1.2.0 (2006-02-12), or more specifically, since 77cb17e940 (Exec git programs without using PATH, 2006-01-10). However, it stuck around in contrib scripts and in third-party scripts for long enough that it wasn't unusual to see.

Originally git subtree didn't fuss with PATH, but when people (including the original subtree author) had problems, because it was a common thing to see, it seemed that having subtree fuss with PATH was a reasonable solution.

Here is an abridged history of fussing with PATH in subtree:

2987e6add3 (Add explicit path of git installation by 'git --exec-path', Gianluca Pacchiella, 2009-08-20)

As pointed out by documentation, the correct use of 'git-sh-setup' is
using $(git --exec-path) to avoid problems with not standard
installations.

-. git-sh-setup
+. $(git --exec-path)/git-sh-setup

33aaa697a2 (Improve patch to use git --exec-path: add to PATH instead, Avery Pennarun, 2009-08-26)

If you (like me) are using a modified git straight out of its source
directory (ie. without installing), then --exec-path isn't actually correct.
Add it to the PATH instead, so if it is correct, it'll work, but if it's
not, we fall back to the previous behaviour.

-. $(git --exec-path)/git-sh-setup
+PATH=$(git --exec-path):$PATH
+. git-sh-setup

9c632ea29c ((Hopefully) fix PATH setting for msysgit, Avery Pennarun, 2010-06-24)

Reported by Evan Shaw.  The problem is that $(git --exec-path) includes a
'git' binary which is incompatible with the one in /usr/bin; if you run it,
it gives you an error about libiconv2.dll.

+OPATH=$PATH
 PATH=$(git --exec-path):$PATH
 . git-sh-setup
+PATH=$OPATH  # apparently needed for some versions of msysgit

df2302d774 (Another fix for PATH and msysgit, Avery Pennarun, 2010-06-24)

Evan Shaw tells me the previous fix didn't work.  Let's use this one
instead, which he says does work.

This fix is kind of wrong because it will run the "correct" git-sh-setup
*after* the one in /usr/bin, if there is one, which could be weird if you
have multiple versions of git installed.  But it works on my Linux and his
msysgit, so it's obviously better than what we had before.

-OPATH=$PATH
-PATH=$(git --exec-path):$PATH
+PATH=$PATH:$(git --exec-path)
 . git-sh-setup
-PATH=$OPATH  # apparently needed for some versions of msysgit

First of all, I disagree with Gianluca's reading of the documentation:

  • I haven't gone back to read what the documentation said in 2009, but in my reading of the 2021 documentation is that it includes "$(git --exec-path)/" in the synopsis for illustrative purposes, not to say it's the proper way.
  • After being executed by git, the git exec path should be the very first entry in PATH, so it shouldn't matter.
  • None of the scripts that are part of git do it that way.

But secondly, the root reason for fussing with PATH seems to be that Avery didn't know that he needs to set GIT_EXEC_PATH if he's going to use git from the source directory without installing.

And finally, Evan's issue is clearly just a bug in msysgit. I assume that msysgit has since fixed the issue, and also msysgit has been deprecated for 6 years now, so let's drop the workaround for it.

So, remove the line fussing with PATH. However, since subtree is in 'contrib/' and it might get installed in funny ways by users after-the-fact, add a sanity check to the top of the script, checking that it is installed correctly.

Signed-off-by: Luke Shumaker lukeshu@datawire.io Signed-off-by: Junio C Hamano gitster@pobox.com


Tuesday 2021-08-31 13:12:37 by Angelo G. Del Regno

Merge: Performance improvements.

This patchset brings some performance improvements and the addition of the LZO-RLE algorithm to the kernel, also usable in zram (yup, tested, works but LZ4 is still ok for us).

The main performance improvement is for SWAP space: the locking has changed and the swap cache is now split in 64MB trunks. This gives us a reduction of the median page fault latency of 375%, from 15uS to 4uS, and an improvement of 192% on the swap throughput (this includes "virtual" swap devices, like zRAM!). The real world user experience improvement of this on a mobile device is seen after a day or two of usage, where it usually starts losing just a little performance due to the large amount of apps kept open in background: now I cannot notice any more performance loss and the user experience is now basically the same as if the phone was in its first 2 hours of boot life.

Other performance improvements include, in short:

UDP v4/v6: 10% more performance on single RX queue
Userspace applications will be faster when checking running time of threads
2-5% improvements on heavy multipliers (yeah, not a lot, but was totally free...)
Improvements on rare conditions during sparsetruncate of about 0.3% to a
way more rare around 20% improvement (that's never gonna happen, but there
is no performance drop anywhere).

Tested on SoMC Tama Akatsuki RoW

This was taken from Repo: https://github.com/sonyxperiadev/kernel PR: 2039 ([2.3.2.r1.4] Performance improvements)


Tuesday 2021-08-31 13:19:09 by Kathrine Hermansen

Rename README.md to dat250-expass1.md

#DAT250 Assignment 1 - Short Report

##Technical This assignment went fairly well, except for the last few downloads. Downloading IntelliJ, JDK and Maven went fine, however I am uncertain whether I downloaded Maven correctly... The Heroku tutorial was very descriptive and nice so I think that went fine too, however when I came to mvn clean install it didnt work. So I had to use .mvnw clean install, and had to use it everytime I wanted to push local changes. Problems also occured when I came to the database part. I haven't used postgresql in such a long time so when I downloaded it I couldn't find it and Heroku couldnt find postgresql downloaded on my computer. After much googling, I figured I should rather use Postgre.app instead of postgresql because its more user friendly and has all important packages. So I did that and then changed the path to find Postgre.app, then the database worked! Then another really frustrating problem occured. I wanted to push my code to github, but since I already wrote many git commits in the getting ready with Heroku guide it didnt want to push my code, since it was already pushed I think. So I tried to deploy using Heroku Git but it didnt work, I dont know why.

##Validation I checked that the software development is working with getting the results the getting-started tutorial said we should.

Here is the link to my app https://agile-fortress-80563.herokuapp.com


Tuesday 2021-08-31 13:41:08 by Francis Yan

BACKPORT: tcp: instrument tcp sender limits chronographs

This patch implements the skeleton of the TCP chronograph instrumentation on sender side limits:

1) idle (unspec)
2) busy sending data other than 3-4 below
3) rwnd-limited
4) sndbuf-limited

The limits are enumerated 'tcp_chrono'. Since a connection in theory can idle forever, we do not track the actual length of this uninteresting idle period. For the rest we track how long the sender spends in each limit. At any point during the life time of a connection, the sender must be in one of the four states.

If there are multiple conditions worthy of tracking in a chronograph then the highest priority enum takes precedence over the other conditions. So that if something "more interesting" starts happening, stop the previous chrono and start a new one.

The time unit is jiffy(u32) in order to save space in tcp_sock. This implies application must sample the stats no longer than every 49 days of 1ms jiffy.

saalim :- Drop rate_app_limited from tcp header (already present) original :- https://github.com/danascape/kernel-msm-4.14/commit/05b055e89121394058c75dc354e9a46e1e765579#diff-4ddfd98f3453244962e17ac121bea6162887af47d0531ba6e2cf49a941edf2c9

Signed-off-by: Francis Yan francisyyan@gmail.com Signed-off-by: Yuchung Cheng ycheng@google.com Signed-off-by: Soheil Hassas Yeganeh soheil@google.com Acked-by: Neal Cardwell ncardwell@google.com Signed-off-by: David S. Miller davem@davemloft.net Signed-off-by: danascape saalimquadri1@gmail.com Signed-off-by: PainKiller3 ninadpatil100@gmail.com Signed-off-by: Dakkshesh dakkshesh5@gmail.com


Tuesday 2021-08-31 14:07:30 by soddokayo

Merge pull request #3 from soddokayo/master2

fuck you jekyll


Tuesday 2021-08-31 14:19:37 by ctech9

the fuck you want me to say, i fucking updated the readme file


Tuesday 2021-08-31 14:22:46 by crackerjackmack1

Updated to version 1.55c

Added 6 songs to list: Came to My Rescue Change My Heart Oh God Draw Me Close To You Holy Spirit You Are Welcome Here Humble Thyself / Awesome God Open Up The Heavens


Tuesday 2021-08-31 14:55:43 by terrynmuse

the following debuffs can NEVER be reapplied to you while you already have them (except by auras) berserked hexed lovestruck purified stunned cursed silenced frozen webbed stoned distorted fixed life champ spawn anim mp desync


Tuesday 2021-08-31 14:56:19 by AakashSharma7269

Fixed the hostname so it says root@linkOSs on boot and edited passwd file to make the new user, idk if this is alright and might break the build but i'm too lazy to test it so fuck you


Tuesday 2021-08-31 15:14:54 by Martin Middel

[minor] Add a new ResultType.ALL_RESULTS that does no magic

The ANY result type is annoying. It returns a single node, empty arrays, filled arrays, objects, etcetera.

This was a mistake from the beginning on. While it is very cool to have an XPath 'just work', it causes bugs and the ugly pattern if (!Array.isArray(result)) {result = [result]). Also, attribute nodes are atomized.

No longer! Just use the ALL_RESULTS type that does what you expect. This also deprecates the ANY result type. FontoXPath 4.0 will drop support for ANY!


Tuesday 2021-08-31 15:29:14 by Eevee

this is legit fucking impossible i fuckjing hate myself


Tuesday 2021-08-31 16:05:00 by cheese

Holy shit a lot

Updated all Breakable prefabs for some reason (i think explosion velocity) Added a valuable fork Item Got rid of some unecessary prefabs Added a light to the player for the dark Added a roof and a den to the environment Also a window Baked lighting, but now the scene kinda ugly doe Main scene in general got a huge change to fit the MVP Forgive the massive lighting bake data :(


Tuesday 2021-08-31 16:19:49 by Kiraaa

Update sakurastand.lua

_8kDQJ4nrzkGBk2Gv, Protected_by_MoonSecV2, Discord = 'discord.gg/gQEH2uZxUk'

,nil,nil;(function() msec=(function(,l,__)local ll=_l[(0x2522/194)];local l_ll=[[(-#{",",'nil';'nil',{},97}+691)]][[(-#{(function()return{','}end)();27,'nil',(function()return#{('fFoFhm'):find("\111")}>0 and 1 or 0 end),27,173,{}}+749)]];local l_l=((8890/0x7f)+-#[[This file has been enchanted with uncrackable V, fuck the fuck off]])/(0x22-(178-((0x1a3-(0x172+-116))+-#'Federal was here...')))local l=((0x72-(148+-0x4c))/21)-((90+-0x17)+-#'This file has been enchanted with uncrackable V, fuck the fuck off')local ll=[[(-#"hi paster"+(0xc2+-18))]][[(23030/0x62)]];local lll=(-#'moonsec > telecrypter'+((-#[[balls in ur jawz]]+((761-0x19e)-0xeb))-74))+(0x53+-81)local ll=[[(-#':)))))))'+(27685/0x31))]][[(837+-#{'nil';'nil';(function()return#{('MKlLPP'):find("\108")}>0 and 1 or 0 end),{},'}'})]]local =((132-0x77)+-#"dm me +stfu")-((((((511276-0x3e6ae)+-#"This file has been disenchanted with grindstone, fuck the fuck off")/116)+-103)/0x8c)+-#"fortnite balls")local lll=((0x9c-((-#{{};'nil';{},'nil',(function()return{','}end)(),'}',(function()return{','}end)()}+12547)/0x6e))+-#'You have deobuscated the code well done')local l_l=((-0x10+(-#'heres a hint: repeat until nil'+(0x6e-(-#[[MoonSec V3 cracked download not clickbait]]+(0xb2+-21)))))+55)local l=((((4283+(-70-0x4))+-0x39)/173)+-#'boy what the hell boy')local l=(9+-#{106,1,'nil';69;",";{}})local _l=((60+-#{(function()return#{('LkKFhh'):find("\75")}>0 and 1 or 0 end);'nil';33;(function()return#{('LkKFhh'):find("\75")}>0 and 1 or 0 end)})-53)local l=(0x76-(-0x4c+(-#[[I have enchanted this script with uncrackable V, your only option is to fuck the fuck off.]]+((-2278/0x22)+0x15c))))local l__l=(-#[[FREE LUA OBFUSCATOR DOWNLOAD REAL NO FAKE 2024]]+(162+(-133-((-795/(-0x45+228))+-#"win+L = solution"))))local l_ll=(0x170/(-#"This file has been enchanted with uncrackable V, fuck the fuck off"+((0x90a0-((0x9143-18637)+-#'sussy amogus'))/0x75)))local ll_l=(0x7b-((-0x49+(-#'federal u suck let me do fucking emojis in here asshole'+(0x3f9-(1193-0x285))))-0xde))local ll=((0x137-(0x1ee-(310+-#{'nil';1,","})))+-120)local lll=(-#{78;",";{},",";54}+9)local l=((-#'c0ck'+((((-66624+0x81ec)+0x4108)+-#[[troll the teibal]])/0xbc))+97)local __=(90-(-0x66+(-#"This file has been enchanted with uncrackable V, fuck the fuck off"+((78455-0x9977)/0x99))))local l=(-#{",",'}';'}','nil'}+6)local ___=(-105+(-84+(((597+-0x3c)-0x146)+-#"control c, control v")))local l_l=(-#'v3 has it'+(((-0x32+((160566-0x139ae)/158))+-#'Federal shackled his children')/0x27))local ll=((0x5b+(((-#[[This code was obfuscated using PSU, which stands for Penis Sucking Utilities]]+(-0x19d5+-80))+-31)/0x88))+-#"<@!847154787934011462> shut the fuck up")local ll=(296/(-#[[Bu ruqen kim amk her yerde goruyorum]]+(399-(-#[[Me when moonsec:]]+(0x1f0-(0x237-302))))))local __l=[(1335+-#{{};'nil';(function()return#{('mblfkM'):find("\108")}>0 and 1 or 0 end);7;(function()return#{('mblfkM'):find("\108")}>0 and 1 or 0 end)})];local ll_l=[[((-0x5a+366)+-#"<@761654159095103499> <@761654159095103499> <@761654159095103499> <@761654159095103499> <@761654159095103499>")]][[(967-0x219)]];local l_l=[(function()return type():sub(1,1)..'\101\116'end)('^+,}*%,#')..'\109\101'..('\116\97'or'}!,.//+$')..[(54586/0x62)]];local lll=[[(0x24b+-30)]][[(-#"go ahead. replace loadstring with dump. do it."+((0x101a-2097)-0x417))]];local l=(-#{'}','}',",",53;1}+7)-(((170+(-91+0xd))+-#"I have 0x in my nickname and I am cool.")-0x33)local =(-#"protected by Federal Scripting Utilities"+(0x1c0e/(-#'Federal likes femboys'+(0x1cb-((0x260-313)+-#'Yeah this is getting cringe-')))))-((0x92+-125)+-#[[Jeff Bezos approved]])local ll=[[((0x1c2-257)+-#'MoonSec V7 coming out soon')]][[(-#[[c0ck]]+(0x104ac/166))]];local l=function(,)return .. end local l=(16/0x4)*(0xf0/(((513-0x119)+-#'This script has been obfuscated using your mom')+-0x7e))local l__l=[[((-#"A table equals to b which equals to size difference between my testicles"+(201331-0x18967))/84)]];local l=(69-0x43)*(-#"Day 2 of telling federal that he spilled out his milk"+((0x34b3+((-103+0x13)+-#'sleep is nice'))/0x4a))local l_l=(43008/0x2a)((-#[[PSU Deobfuscation Speedrun AnyPrecent WR]]+((0x3564c/36)/0x51))+-0x21)local _lll=(-104+((-0x29f2/118)+247))local _llll=((0x1221/(0xd0-(-#[[Roblox is written in assembly you dingus]]+(3454/((0xd6-169)+-#"PSU and MoonSec winning")))))+-#'fuck uncrackable V all my homies use unmethable V')(0xe8/116)local ll=[[(-#{68;{};31}+1018)]]or __[[(-#'starmcommunity.ru/scamlink'+(0x4f0-681))]][[(-#{68;{};31}+1018)]];local _ll=(-66+((7-0x3d)+376))local _=[[(1274+-0x40)]];local l=(function(l)local ll,l=1,0x10 local ={j={},v={}}local l=- local =l+l while true do __[__l:sub(,(function()=ll+ return -l end)())]=(function()l=l+ return l end)()if l==(l-)then l=""l=l break end end local l=#__l while <l+l do __.v[l]=__l:sub(,(function()=ll+ return -l end)())l=l+_ if l%l_l==l then l=_____ lll_(.j,(ll(([.v[]]*l)+[.v[]])))end end return ll(.j)end)("..:::MoonSec::..!%&/+^,;.:_#$}=!;:$^/$&;./!=,:}^+#$&.=/=;:=%$%$/;/%&=.$+;%=++^$%+:;,&==.:;+,_&+#&$,;}/+^%#$#;^/#=}^!#$/.!/$=+_.^&%;}!}:$}./;==!/#}./!$++&!!_,^}^#/!,.$^^%:}+;=/!=.&}!.,!%,&+!/}^}%$}*;./%=%:!#,%%.%!##%,/%#$#;$/#!,+&!^$,/:%/&!%#/}/#},+%#}&}%#^,+%!}/.#/$==:/,;%=},}/^!}#,/$#+,;%=}^!/+,;%,.!&.},.}++/=%$:&/.!%#:,%&^}&.}.:!+,+}&$$:#/=&#^;$/,$&/}}.};/!}&:;/=!;#;,+%.}$::^!:+^!%#.;!:,/=!}#};^:,;;&;}=:^#/,.&=}..}+}$+**_##;&&:&.!.#$,:&.}.,=%:.^!,#};+&#=&#^};#=;^.^&%!#+;**.=+%+:}#;;$/+=^&==^:$^/$%.;!$/_.^+#$&$^!+*!$%^$/!}#+}%%,$}$+;#/&=:_+;+}!,;$//=#/$^%!$,;}+/=#&^:%=&;=/^=$+^%/$.!#=}+^#%&$:.;/;%+&#^$%/$.;/.!,,!%+}!,/:!;,+%^$}.//=;^.,!%,!}.+/$!&##$}%;$=.^+!/,%&/.,/=!+#^,&%:};/=!^},/%#}%.}+!*.},+%=}&:!+!;=,^%$}/.#+%!##!,.%}!+.#+&!#,.%==&.$+/!#%,:&!}..}++!##&,:&*};.=+^!$#^,&^}.:!+,!}=%,#&/}:##$!=#,$&;}:^+.&^!%,}&:}#$!+:%#;;=&^=%;+_%#.:$&,}=:+,#.#:;^&;=&:^+}/$$!&.=,:,,!*+##;&&:!:;^/^$/;/&$=%:=:+,$&;++/=&:^**.#=;:#*=/:^%&$!;;&}=.&!^&:$_+&==,:$,^;;$%;}/!=::}^+#$&.,/=}:=^:$$/;+/=.!^}}$=;#/&=:$^;*=$$;$/_=}^./!$,;}/#=#_:^:&+$;:=/^=$^%.$../,}+^#%:$:.;/;!;^,=%/$.:/.**,^}%+$#.&/:!^;,,%^$}./+$!%.,+%,}^.+/#!&##,%;}+.^^!!/,%%.}!.,+&!+},&%}::/=!^#%,/%}}%..+!!,_},+&%}&.}+!;=;;%$}/:%+%&#!,,%}!+.#+&**#,=%==%.$,/!#%;!&!}}.}^.!#}&,:&}=.=+$!$#=,+%}.:!+}!}##,#&#}:&+;!=#},$/.}_:%+.!#,,}&:}#:+:*%#;;+:}}$:/+%#.;&,=!:+^!.,#:;&;=}:^+}/#=!^&.=!:,+}+#$;&&:;%:;+=^#};/&=%:.^,#};+#*=;::^;/%=^.}^.^^.$!;,+!^%:#^&:$%;;&==^:=:$$&;./!=,:}^+#=:;:/=;^^}$/;$&=.!^,=$+;#/&=:_^;*=$^.&//=%;!%$,;}/+/;%%#$;%//$=%+}%$$!./=!.//,=}+$&;//,=^:*!;^^$%/}=:::,%;$../!+,,!:;^=%^&/=+,^$!#}!;#/&=.$!:_:,%;%=!%:},$%!}/.#!$.=/}!+_#.=/}=.$,+%^$;&%}%..+!.!!,+%$}&.#+!;=.^%$}/.#+%!:#!,#%}!+.#+&!#*,.%=},.$,/!#%,:&!};.}+;!#}&,:&}..=+,!$#:,_/%}.:!+;!}#.,#&&}::+;!=#^,$&+}:%+.**#,,}&+}#:+:#;}}&$}$:/+^%&+}*!+&,#=:}$/;&;}=}$#%;;}},:_^^!#,:#$;,&:=:;$^,,&^=;::=$:.^!,:=/.=+/^_;/&!==:%^^:^;.$!;,;^/:#;.&=;./;=^:$^/+}&:}:%+;$.;/+#$/+=;:=^^;/&+=;:,::_;^,}$+#$:^^}*:$};!/:=%+&=%^.&%//;}/+=#^^:%$;;=^=$/^%&$..%/,!/!$^#%&$:.=/;!!^^$%/$=^/.!!,,#%+$$.&+#^};^=%^}/.//!%$.;/%,$}.+/#!&#,&:$=.^/=!/#,%%.}!.,/}!+#,&%#}*.:/=%^$,/%}%..+!!}.+%#}&.:+!;=,#%$!/.+%!.#!,,%}}:.#,&!:#,;%=}^.$+#!#%,.&!},.}+,!##/,:&+};.=+^!$#/,&&}.:!};!}#+,#&/}::+;!=#^,$&/}_:,+.!#,$,/!}#:&+:,%&$=&:++&.},$=::+,:#+#&#:};.$^&!$#%;%/!,&}=!:,+};+&}}#:;^++.^,*^#$;/;^++##,;/&=,.$/#:}^**;#==:^^!,^}.$!;,+!+::#^/:$&;;&==^:$^/$&;./*=,!^+%#$&;:/%=;&^^*$$/.$/%=.^,%$+;#/&!#_^;%$^;}//=%^.%!$,./+=#_&^:%$;;=/^=}/^}%%$:.!/$=}+^#%&}+./.==^^$%;+=.%/.!!#%^}%^$#:+,!.^=%$$.//!%=%,!%;$}.^/#!/:,*_.$=.^/$!+,%%.}.,/}!+_#.^%:}.;_$.;#%#!!;%&._#,$+,=%#}&.:.;^$&&#..%+^**^#%+=%}}+.#+&!:#*/;^}%;$+$:!:%+._+;+}&%/#&,:,##%,,./$/.;&%}.:!.:,$&}_:+$%+!/!}#+&#=#%:&..#$$,}&+}#+_#;.%.=%:.+%;#/,^!&:=^^%!$;#/,=$^;%^$=#/,=}+^#%&$:**+/}&;_&:=:;:,;&:}+:.^**%#/%}/;+&#=&##&.!&!=._!+.=#,$!:^^$%,}!./+%!/=,!%}/.!+,/,.=#,:&/#$+;./=;:=;;%//=,:+#**$;&&.$=,^.%&#.;^&#=#&=:.:;}=#,%!/&}$$}/!$,}%.,},&.,%%$..!/,=}+^#^&,.,/;==^!^:/$=&^^+!,,%+$#.&:,!%:$:../$=+:}^,.$;%^$$$/%^!+}%&!.,}&.^/$!/%%$&.^/+/,/}!+#,&%:#*!,;==.#/,/%}%}=+^:&%}/.}*^$$+$!;=,^;!/+!^#,,%.,,%+:!.#!;&}$,;%=:#&/.,^}}!.%,:/=:,+$:*.:,,#^!!$#/,,;+%%_#^%:}}:./=&._+#^,$&/%=!&#^,%}}&}+::+&,:$=^}%+:#$+}%#.;!:++&#=^;!&.%/,;!=:==$&,.%;%$;^^/.#}!#%_};}/#,**,#;%:#&&^=^!,#};+&#=&.::!.#/#,,#&&,^+^}!=&,^&=:#%%&:}.#!_,=&:$^/}///!=,:},.#$&;:^=;:=^^$$/;//=.#%^,*}$,;#++=:^;=$^;$//=/^.%%$,:}/+=#&^:%$;:^/^$/^%%$..!/,!;+,}%&$:.%/;!^^$%/=.%/.!,^=%+=..&+#!*;,%^!!.//!%#,!%,}.+/$!&:,&:$=.^+!/=,%%.}!:./}!+#,&/&}.;/=;_$,/&}%;+!!,};,%#}&:+%;=,^%$=^.+%**#!;^%}}+.#^+!:#;%=!/.$+/!$/,.&!=.},!##&,:/&};.=^*!$$%,&%}.%+,!}$,#&=}::+;%#^,$/}#/+.!#,,}&+}#:/+:}#;;&^==:/+_/#..;&,}}:+^}&#:;/&;=%:^+$/$$;%&.=/:,,/+##;&+:=:;^&^$;/+;=%^!,$&;+/&=&::^%:#=;^/&=/}^%*.$!..&}=+&^&=$;;&==^:$^/=$%.!/!=.:},,#$&;=/!&:=^^$}^;/%==!,!}$+;#++=:_^==$#;$//=$%^.%!$};}/#=#$!^:&&$;;=/}=$#.^%%$.:%/,=}_}^#&;$:./;**^^$%}$:,/.!!_,^}%+$#.:/:!;,%^}=.//!:.,;%,$}.++}!&:,:%;!!.^/$!/#$,%%.}:.,+}!+#,&&#}.;+:!^$,/%}%.+!!,#.,+&,}&.#+**:_=,^&:}/:;+%!.#!,,%}}+:,+&,#,:%=!^.$+/^#%;/&!!%.},+!##&;^&=&.=,!!$#/,_&%=,:!+,!}#+,#&&}::^,!=#,,$&/}:%+.*!$,,}&,}#:&+:**#;,=/,}$:,+%#.;!&,}}_,+#,#:;&;}=:^+$%,#_;,&.=!:,+}+##.,&:=,:;+=^#$;/&_!,:.^,,#};+&#=&::,,;$,;^&$=/:_^%.},;,/,=+:#^&:$;;+,=^,^/*$%;./!=,:^+&/$&;/=;:=^^$$/;#/%=.!^,*=$+;#/&=:^;==&;$//=!:^.%!$,;}/+$#%%::#}!;=/^=$=#}!;=&:=}^^,.&&%:$:./;^^*}*;/!!!=^=^}%+$#==^;$%!%$$$.//_+;}$&./$!,,==+},///#:,;;&}=:}&/}!.,/}+*%$^;/$};^,&^$..$}&.=+!!,}.;$+!=;^$%},=%$}/..+,%}.;=/;*!;,#&!;.%=}^.$:^,!&%}+../:==#.,%,#$:++,**_,,/%.:;&#}.:!+,++%:=!;^/=&#},;%.}%%,!:%+.!&.}!:$/$^#$,^&#};.:%,$&;://=$_^=%$#;$/;!/;/&}=:^+$+&!=^,#+;!#:,.&}};:;}&:;+=^#$;/*^,}.#=:#};+&#&#$:%.$$+;^&$=/=#},:/.}#!#^&:$=;:!+==$,;:$^;./!=,%+#^;+/,,+,=;:=^^;=&^!&:&^#%&##.%&}=!,$%.}!.:++!^#*,,%}%:!+.,%.;/+=#&!;:/:=/..^%%^};,/==/=}+^#.!&!+!$##^$%/$_$+;=,%;$;:*=./:!;:;=/.!!:#,,%_$:=$=.^/=!&_:,*.^//!$,.!/,%%.}!.,/}!+;&,:%:}.;.=,%}}$.!+/!#$+!$},+%#%^!.$,,&:.!:};.+%!.%,$;./:}#+&!:#;:.#}^.$+/!}#%,.&!},.++!##&,&*}:.=,^;%#/,_&%}.:!^}!}},&&}:::,!=#,,$/#}_:^$$!#,,};/}#:/+:%&&+,=&^}$++%#..%.!}}:^+#&!#:;&;!=:^+$+#;&&.!:,,}+##;/&:=%:;^#^#$;/&_=&:.^%,#};+&#=&::^**;#=;^&==/:=^%.$!;,;:=+:$^&&:+.;;//=^_^/%:$%.==,_+^+%#$&;:/*=;#.^^%%$/.%/%=!^$^&$+./&!#_^.=$,;$/;,=%^.%!}.;}/^=#,}}%$;;=.%=$+^&//^.!/#=}$%^#%&$:*$==^$%.$:$/.%!%#^}%:$#.;/:!;;,+;;$$.;/*:.,%,}&.++!;,_:,%;=,.^/}!/==^%.}!.,.:!+$,&/:+^.;+/!^#,/&/}%_..:!,#/,+&}&.#+:=,^&/}/*+%!.#!.,%}}+:&+&#.%==;.$+/&#%.&&!},.}^,!##&;&&!%.=+^!$$^,_&%=&:!,!}#+,#&&}::+=!=$!,$&^}/+.!#=,}/&}#:&+:%&#;,=&=}$.+%#.:!&,}}:}+###:;+&;!:^+$}#_;,&.=!:,,}+##;$&:=:;,;*^$=;/&=$:.,:,#};+/}=&::^$;}.;^&$=/$^%.$$;,+;=+:#^&:$*;;/.=^:^/$$%./!=,.^+%;$&;:/!::=^^%.$/:!/%=.!;,*}$+.;/&!^^#=};;$//!;%;+%!$,;}^+=#&,,%}+;=+==$#^^%%},.!/;=}+^#&+$:.+,==,^$%/$://.!!#,^}%^$#.&/:!;^=&&$$://!/_.;%%,$}:&/#^_:,%;=.^/$*&;,%.}!.,^}!+#;%%:=!.;+&!^#=,/%=%..^+!,},+/#}&.:^!;#=,^&}/:$+%!.$*,,/}+.#+&%:#,;/!}^:}+/^#%;&!},++^#&,:&};.=+^}#/;}&%}:!,,!}#+;$&&=:^!!=}^,$&/=$:%^:!$,}&+}#:&^}**#},=&^}$:/+%$};!&}}}:++#&#:;/}}=:}+$/#;%&.=!}+}}##;&&:=:;+=%}#$;}&=%:.^!*,#}.}&#=}::^**;#=;^&$!}:^}.$!;,&}=+:#,}:$};;&==^:$^/_}};./}=,:}^+#$&;:+}=;}^^*$$/;/%=.#}^,%}$+;#/&=:^;&$^://=#%,%!$,:!/+!}&^:%}:;=/^!/,%%$..!/,=}_+,}%&$#./.==#}+%/$.%++!!;^}%,$#.,#}!*;^=&%$$.+/!^&$,!%,$}.+/#!/:,*_.$=.^/$!+,%%.}!.;/}!+#}%%=}*.;/=,.%$$+:%+!.$+!!,};,..}&.:+!._=,^%$}^}/+%!:#!,,%}}+.#+&&#,;%=};.$++!_#%!:&!},.}+^!##&,:&};.=+^!$#},&%}.:+}!}#+,#;&+^!%$,/&;=!:&=/:%+.!!=}$:++#!;##+&&}$%.=&:/+%**}:/+!:#}:}#};*&;}=!$};&!,+/!=!:,+}+,&+=;}^:;#/_$!;/&=%,#+;}#=.!&#=&:::$;,&%},:.//,#&.%&+=.*=$:#^&::=^%^:!}$%,}&,}%/;=,:}^++}&/}$:#^;*!#.;;/&.!/%=.!::;://=::;!$_^;=};:}//=%,%!$,;}^+=#_&^:%$;;=/#=$#^^%%$:.!/.=}+^#&+$:.*/:==_:^$%/$%/.!!.^}%,$#.//:%*;^=%;$$.^/!...!%,$}.,/#!+_:,:%;$=.^/$!/,/%.}%.,^!!+#,/%:}..;/=!^$$,/%}&..+!,#/,+&}}&.:+&!;#,^%$}/:$+%!.#&,,&%}+.#+&%:#,;&%}^:!+/!##%..&!},:++!=#&;&!;.=+^!#/,}&%=%:!+,!}#+,$&&}$:+:!==^,$&/}:%+}!$,}^+}#:&+**#$,=&.}$:/+%#.;!&;}}:++#&#:;&;}=:}+$/##+&$=!:,+},#%$=!.=#}:=+=^#$$/:,+&%%#+;.//#/,=&::^+=&/=:;!+#/#},$/%}#:##,^&:$$/:}+.!}$!^&}}:.+#%!$/%%$&;://;!$;;%/%====}_!^,}/+}$:#^#%/}$%;$^;$//&}:#:.%&;=.^%+&%.$;;=/^&=+#};$/.=::^.#^^#%&$::&.;==^^$%:$.%/.*%,^}%^$#.//:!*;;=%^$$.+/!&.,%%,=}.+/#!/:,%%;}&.^^$!/,&%.}.,+^!+$#,&%:}%.;+!!^#!,/%_}%..+!,#!,+%#}&.:+!;=,^%$}/.$+%!$#!,,%}}+::+&!#;:.#}^:%+/!##%,.&!!,&++**#&,=&}:.=,^;%#/;!&%}}:!+!}}+=&&}=:+$!=#$,$//++:%+$*!##,}&:}#:.$%**#;,=&=}$:++*/#.;/}}:++###:;%&;}=&,+$/#;&&.=!:,+}+##;&&:=^:;+=^./;&=%:.#,,#/%}#:^%!^%%&#=;^&$++%!$^;;&^=#:*^!}!.$&::};=&==^:$;;%^=;;^&:^^%$&;:/^;%*#=;/;!//=.!^,.%/+.;/&=:,:;/$^;}//=#%^.%!$,;}/+=$&^%*$:;=+^=$/^#%%$#.!/,=}#,^#%&$.*/#==^^$&^$.%/!!_.^}%+$#.&/:!*^=%^$$.//!%.,!%;$}.;/#!/_:,,%;$=.^/$!=,&%.}!.,+%;.#,&%:}#.;+!!^#=}*%}&..++!,},+%#*#.:+%!;#!,^%}}/.}&!.#!,,%=}+.#+&!#*,;%=}^:++/!#%+^&,},.}+++#%=$::/$**#.&:##,&%}.}_:;%%}=%./+}!^$$&#^,$&/^%!&#%;/!:;.&+}#:&:^;!%}!:%&$*!#;%}=%^/=;:++#*&**}^:#/%!#=;:&/}+.}+=:+}*+##}:.+}!$#}=#$;/&_&=%#};!}}##:+=!},;%#=;^&$&,&#&;&}:_%+:},%:$;;+^&:$^/$+;./!=,:};!*#$&;:/%=;^^%&%#;/%=.}^,=$+;#/&=}&+^;=$^.//=#%,;$$,;}/+!%&^:%=;:&/^=$/^%%$}.!+.=}+^}%&$./;==^^$%/$.%/!!.^}/+$#.&/:!;^=%:$$//!%.,!%,$}.$/#%&:,*%;$=.^/$!.%%.}!.,/}!+#,+%:}.;/=!^$,^%}&..+/!,},+%#}&.:+%!;=!,%$}/.+&!.#!,,%}}+.#+&!:#.,;%=}^.!+=!#%,.,#+^!^,;&}^.%^!/#;&:#$,&%}.}&=^=&,$$.^+}!^#:!%#:,$&/}}.#;,#%$,&.}#:&+:;;%.};::/:;+*%#.},.;+!:/=:#:;&;&=%_};$&!=/:#$+}+###:.=^+=#/;;/&}$.}+,::^;,#};+,$+^}#:;}&!=::%!&:^%.}%=/&}=+:#^,:$;;&=**:$^/$&;./%=,/$#$&;:/==;_!^^$$/;=#^=.!^,%#$+;$/&!#}^;=$^.%//=__%;.&/$,;}/+=#&,%}:;=/^==/,*%%$..!/,=}+^#%&$#./:==$^^$%/$.%/.!!;^}/+$#.&/:!;^=%;$$//!%.,!%,$}.;/#%&:,*%;$=.^/$!#__,%%.}!.,/}!,#,/%:}+.;/=!^$,/%}&..+!.;},+%#}/.:+*!;=,,%$}/.+%!.#!,,/&}+.#+&}^#*,;%=}^.$+/!#%=}&,},.}++^!&&#}:!%.!#%}:#;,&%}.,;,,&..^&&.:+;!=#^#/..+==+};%&$},.;+=#^#;,=;^+.!+$/,,&=&#=%:++#&&}%:++/:,^$/#;%;^+/=;&&}#.}/&,#};:$}+:$^^%}^,,#};+:&+;}#;,$&$=#+/=$:^%.&}=.=^,!$#^;}&^=:^.!/^=$/^%%}.&^+=^=*#$&;:;;+$%&^;.&+!/:,^%&^=.#.!/&=:_^;!/&=%!!_%^.%!==&:^^;%,$%:^$;=/^=$%%$!..##.^/,=}+:=^./#=%+^/.&,%%/$.%.^*%!}!.;$$./:!;,./:=+.,%%$/,=$}.+/#!&:,/!.=!++;!/__,%,+/==::=,!#$=;+:=$#//$,/%=/!^+!!,_},}%#}&.:+%&=,^%$}+.+/!.}!}#%}}+.#+&!:#&,;++%.$+/!_==,.&},:++!/,,:&};$#+^!}#/;$.=}.:!+,%!#+,#&&=#!%+;*!#^;/&/}:%,.!#,,=&+}$:&+=$:,=&^=!:/^%#.;!&,}}:++$&#$;&:}=#^+$/##;%&:=!&+}*+##;&&=::+=^#$;/&=%:.^!*,#};,&#=,::^**;#=#!&$=+:;%;}$!;#&}=.:#,:}&%&==#:$^_$%;.^!=,:}^#$.;:/^=;#^^$$#;/;=.!^,}$+;#/.=:.^;%$^:$//=__;^.%^$,:&/+#&^:%,$;.+/^!/,%%$..+/,^+^$%&}!.*/#;&^^$%/=&.%/:!!=%%+$#.&;/!.^=&;/:./+!!%#,!%,$}:,;/!&#!,&&$=.^/$!/__,%%}}!../}!^#;+%:}*.$/=!$$,/%!%..+!!#},:%#};.:^&!;=,$%$}:.+%!.#!,,%}}:.#+:!:#&,;/=}^.$+.!#,,./+},}++!##;,:&^};:.+^%$#/,&,}.:++,^#+.#&&}::,+;&#^;,&/!:%+.*^#,;/&+=/:&,:#;;+&^=&:/^#%$_;!&,=+:+^$&#:;+;}=:^^//$%;%/.=!.+}*+$/;&&=:;+=%;#$;///=%_$^!,#}.,&#=&/^**.#=;^&$=/:^%%!$!.&}=,:#^&:$;}&==#:$^_}%;./!=#:},^#$.;:^=;:=^$$;;_/#=.$!^,}$:;#/;=:#/^;&=$^;$/.=,^.%=$,//+=#;^:+/$;.!/^=}/^=:^$..!/,&*+^$%&$}+/;==^;+%/$#.%+^$_,,&%+}+.&/:!_;;:%^}%.//#!%,!/,+&.++!&_=,%:$=#$&!/#!,%^%}!.;/}!.#,,:}}.;/=&=$,+%}^$+!!,}:=%#}/.:++;#=,^%$}/.+&!.#^}=%}}+.#^!:#%,;&}^:*$;!#%,.&}},.=++!/,,:&};.=+^!}#/,#&}.:!+,!=#+,#&&}::%+;!=#^#!&.}:%+.;&&,$=:#+::,+:#;.:&}$:/+_&#.;!&,=!}}+#/#:;&;}=:^+$&#;%&.=%:,+=+##/&:=:;^!^#$;/&=&:.^!*,#};+&#=&&^;#=/$/;=/:^%+#&;};:#+#**^;}&%=#:/^+^^/*$%##:;+;%!#^,=/,}=&$+^^^$$/$:}+:%.##.!/;}+/=:_^;^,/=::+^.%*$%;/&!../+=#&^.!&=!%/$%!##.&}!%=;&+^#%&%!=:^^&=#$^.^/}!^;#^;%!$:;.%_=.;$^$.}%..:.;/!%.$,;;/=::+!::,*%;%.!__:,/%/}!.!,:/}!+#:;=++}__/,;&&$$;}/,::+!!,_},+:.}&.:+!;=,^%$}:}!+%!.#!,%}}^.#+/!:#+=#%=}^.$+;!#&,.&/^.}++!#$&,:&%};*#&!$#/,&.}.:!+,%}=,#&&}::+;;#^;=&/}:/+.&#,,}&+}#:&+:**#;;&^}=:/,%#.;!&,}}:+^**&}:;&;}=:^+$/#$;%+.=!:,+}+##;&/!=*:+=^#=;/&==%:.^!,#};+&#=&:#^:#=:^&$=/:^%.$!;;&}!,:#^&#$.!&==^:$^/$%;./!=.:}^^#$&/=;:=^,$$/;/%=}!^,*}%.&/&=:*#;}//=:.+}%^#%%$,;}/+/^%;$,.%:=/_,,%.$}.^;:.//,=}+$&;//,=^&!.^^$%/%%=,$+&#}!./+=^:=;^#;^=%^$$}.}^,%__..+/}!:#!+^=}&.}/;=.%!=__,%%.}!./}!+#,/%:}.;^!^$,+%}+..+!!,$},+%#}/.:+%!;#&,^&=}/.++!.#+,,%}}+.#+&!:#%,;&%}^.=+/%_#%,.&},.=++!}#&.:&};:!+^!}#/,#&%}=$!+,#+,#&&}:*+.!=#^$&/}:%+.*!#,,}&+=$:&+#,=&,}$:/}#%#.;!&;}}:++#&#:;*&;}=:+$/#_,+//=!:,+},^/=,:.+,$#%;==}+}+:}^!,#}=+:}+#;$+$=$&;^&$=/#,#&!#/^=+:#^&+/^=#:}^^^#,;^;&.!/!=,:}##;/,=:^^^%+,%$$/;+/+}!^;}$:;#/&=:^;=$,;$/+=__/^.&!$,;}/^=#,^:%$;:/^=$+^%/$..!/,!+^#%+$:.%/;==^^$%/$.+/.!!,^}%+$#.&/:!%_;,%%^$}./+!%.,!%,}..+/$!&:,%#^&.^/$!/#^,%%:}!:.__!+_$,&%$}.;/=!^=^,/%#}%.:+!!;},+$}&.:+!.=,^%$}+.+%!.#!;;%}}+.##%;#,;%=%#!^#%^=!;}%:%+:%.;,/%#}^.+:=:&+^!$#/}%.&+^!+^}%#+,#&&&;!%#+,/!.;,&/}:%:!,+&$.:+}.#&,/%$/^/^}$:/+_+:&}}$.;+#/#+,,#=!:,^&=^};^&=;&/%=!:,+}^#&=+:+^/;#!,.&%./;=%:.^!^&$=:.=+=&#=;#&/=;:%^,=__$$!;,&}^#!$##;}%:.^&==^:$:;!/^#$:+^:#:;:&,}:=^#%%$+%&$/;/%/$+;%/=&^!&_^;=.=+:+^$&##./&#!!&;!$_&^:%&}=;;^%%;$:.,&#=;!^#%.$.+&=!/##+^^$%/$.%/.!!,!.%#$#.&/:+%/$!.=/%!^};,},!%,$}!+:$^#%#}/$;$=.^/$!/,%.=!^+.!+_#,&,^+!=!,%!$}!;#+=}#%&!},+%#=+&+!;=;+%$}/.^/!.#!,;%}},.#+&!:},;%=},.$++!_#^,./%},.}+;!##.,:&};.=+^!$#+,&+}.:%+,%}#+,#&/}::%+;*;#^,$&/}:&+.%#,,}&+}#:&+:**#;,=&^}=:/+=%#.;!&,/:++$&}:=^&;=/:^^/#};%+=%:,^&*+=%;&&=_%+=:+;/&_=%#=^!;#}:+#/=&:=^##=;,&$!^%:^%%!$!;}&}=+:#^&&/$;$&==$:$^^$;}*/!=#:};#$/;:/=;&}:*$$/;^;=.*^,&!/%;#/;=:$^;=$^;$+=;^.%/$,;}/+!}&^:%;$;.*/^=$/;%%$..,/,!++,:%&=:./;!^^,/%/}#.%^.!!,,+%+}&.&++!$;^=%^}/./+%!%},!&.$}.++/!&#,,%;$=.^/$!/#!,%&}!.;/}*,#,&%=}:!/=!^$;^%}%.=+!/},+%#}&.:+*!$=,;%$}+.^/!.#!,#%}=.#+&!:#,;%=}#.$+;!#%,./%},.}+#!##+,:&};=+^!$#,&.}.:}+,%}#+,#&:}::;+;%!#^.$&/}:.+.,#,;.&+!#:&+:;#;;^&^=%:/^$%#.;;&,=}:++#&#:;&;=/:^^+/##;%&=^;:,+}+$+;&&=::+=:+*;/&=%%^!;#};+#$=&::^**.#=;^&$=/:}^%.$!;,&}=+:#^.:$;;;%=::$^/*&.}::$+#!,^=#$&;:;/=}_/^&.}}+$+^;%^$+;#/&^#*^#.;&&#=^!^!,.,/%!$,;};$,!%,$:,/&$!_#^^,$!/=}&.!/,=}=#$.,%$=^_:,+=$!;.!;:+/.!!,#./+!}^:^}*$#%;/=!:!,/%#.}.+!/:!}_:,%;=%&/$!/,&%.}!.,^}!+#,&%:}*.;+/!^#=,/%}/..+/!,},+%#}&.:+!;#,^%=}/__+%!.#!,,%}}+.}+&##,;&*}^:!+/!#%;&!},:++%#&,:&};.=+^!=#/,}&%}.:!+,!}#+,#&&}::+:!=#^,$&/}:%+.!#,,}&+}#:&+:**#.,=&^}$:/+#%#.;!&,}}:++#+#:;&;+}!+$*/#$^;./%!#$%;:&}=.=^&}_+=^#$;///=%:.^!%.&;+&#=&:^;#=;^,^=/:^%:$!;;&}=+%.^&:$;;&==^:$;:+^$%;./!=$:}^^#$+;:/+,#:=^^*$$:;/&=./}}$+;#/=:%^;&/&;$//=&^.%!$,;},}=#&^:%%$;.!/^=$/+^%%$../,=}_+^#%+$:./;/%^$%/$!%:#^%&$:,}}!.&/:!%=$!;=+*.}/!%.;%./$}.+/#!+:,%;$=_/$!/__,&%.}%.,+/+$#,&%:}:.;+!!^$,/%=^^..+!!,#,,+%$}&:#}!;=,^%}}/.+%!==!,,%=}+.#+&!#,.%=}^!+/!#%,.&!},.}++&&#&,:&}:.=+,!$#;==&%}.:!+,!}#^,#&&,:*+;!=#,,$&/}:%+!#,,}&+}#:&+:+#;,=&^#::.+*%#.=/.;+!#+^$!;&;}=!=#;,&!=/:$,+:+}+##$:.^+=#!;&&%$,:!^/=#+;./&:^^^.#=.$^;^&$=/!=#,;+&^=!::+:,^&:$.:+^=^:$^/=$%;./!!.:}^+$$&;$/=;:=^^$$/;/%=!^;}$+;#/&=:_^;*=$^;$//=%^.%!$,;}/+=##+^:%$;;=/,=$/^/%$..!/,=}_+^#%+$:./;==,^$%/$.%/.!!,^}%,$#.//:!*;^=%^$$.//!/.,%,$}.+/#!&:,%%;$=.^/$!/__,%%.}.,/}!+_$,$%:}.;..+.!##%,!+!=#=^%&=:&!}&.:+^=%!}&.%.+:^+%!.#!_=:%+.!#:^^=&&}}.;/.!%/,^#%,.&!&&!$;^$%=#:.$/.;__,=/.,=&%}.:!#}^=%}=!}/=.:+;!=:}%:!+!%#;;%&$.:+}.#&,/%$.^&=}$:/+;.&}.:+&!#+,=%=;%/=}=:^+$^;&!}}.}^!^$!;.%!=%;:+$!.#%,_^=%:}^^!:#},:&&#;/&=&::^^;&},^+.$$+/^$:;,&}=+=&#;;}%/}$^#^#,;!*+.#/!=,:}&;/,$$:%^+*/.;%/^!:,^%&.+;;/;=__**%^;=};$}//=__%,!%!$,;}+,=#&^%}&;=/^=$#^^%%$.!/.=}+^#/&$:.*/:==;^$%}$://.!!__^}%;$#.&/:!*;^=%;$$.;/!/..!%,$}.,/#!+:,%%;$=.^/$!;__,%%.}!.,/}!+#,+%:}+.;/=!^$,/%}%..+!!,=,+&}}&.:+*!;#/,^%$}/.+%!.#!,,%=}+.$+&##,;%=}^.=+/!#%..&!},.}++!##&;/&=:.=+^!=#/;&%}.:!+,!}#+,#&&}#:*+:!=}^,$&/}:%+.!#=,}&+}#:&+#**#.,=&^}$:/+_%##;!&.}}:++#%+#:;&#}=:;+$/#:%&.=!:+}.##;#&:**:;+=:#$;;&=^:.^!,#};+&#=,::^%;#=;^&$=/:^&.$!;,&}!=:#^&:/!;$&==^:$$;,#&/=+:+$/:}^+#$&&:/=;:=^^$$/;/%}=}#%^$+;#/&^}%!$.&/;=^%^%&^$%!$,;}&,=$^,:}&;=/^=$=#$=.^/.}&:#,!%$+;^&=+;/===^^$^#/=!^./,#}%::!&.&/:!},}%;/=!:!,/%#.=,,+&=,;^#$!./}!;#+&%$$^;}+%$/;=,;=...^/:!+;,:=::++%&&+!!,_},+%#}&::.^#,,^%$}/!=#,,&+}/.!/:!}$;%##,;%=/}#;,&+&+=^!+^,.%;}$+=+:!};,.&&=&^!/#!=#/&$&_:$^%+!%#+,/&.:#=!:%+.!&,$=.}+}^;,&#;,=&^+^!;=^##.;!&,&;=;:^*!}}^.+}!:#%:=#=;%&.=!!}_=;%&;/&==:;+=;^&!}+:,+};^/,#};+:!+/}#%#.$$;^&$=/.#,.*//$,.=+#:^;=/&=:}^;=!^$%;.!^&!=$};+/=+;=#:=^^$/}#:^$,,.^}$+;#,%^$^$:.+&==,%:!%$};%/&=,:;&%^$..&/#$};^.$$+=:!&::%/%$+.!/&amp;!+;+&amp;!}^.$/:&}!,,&%^}!^%&/.&/:!*;^=%^#$$&&}!;.,!%,/,!&_=^;%#}+;%=^:!/$!/$=;:+;},:^^&+$;.#+/!/=!^$,/:;}%.:+!!,},+%#!.%!+!.=,:%$}+.+/!.#/=%}}+.#+,!:#%,;&&^:.$+/!$&,.&},!#%!##/,:/*};.=+^%$/%,&&}.:+,+#+.#&&}::%+;!#^;#&/=$:%+.&#,;}&+}#:&,:#;;%&^=!:/^&%$_;!&,=&:+^;&#:;&;}=:^^&/##;%&.=!.+}+$&;&/&=:;+=^#$;//!=%:}^!}#};+&#=&:$^**$#=;^&$=/:^%:$!;,&}=,:#^&:$;;&==,:$^/$^;./!=,:};&#$/;:+&^+:=^,$}/;/%=.$!;&}$^;#//=:;^;&=$^;$/+=__&^.%=$,:!/+=#^^:&$;;=/^$/^%+$..&/,!^+,}%&$:.^/;!__^^$%/$.%/.!^_,^=%+$#.&+#!;,^%^=&.//!%.,!%,}^.+/#!&:,%;$=.^+%!/#!,%&}!.,/}!+=,&%=}*.;/=!^$,/%#}%..+!!.},+%#}&.:+*!.=,^%$=^:+%!:#!,.%}}+.#,&,=#,:%=}^.$^,!#;}&!}..},;!##/,:&%};:&$:!$#/,++}.:+,%/.,#&&}:#}+;*!#^.$:.}:/+.!#,.&+%$}+:&#;:^&^}}:/^%#$!/&,}}:+;&&#_;&#,&:^+$/=;;%&:=!#,$&+#};&&:=__+=&#!;;/&$=%$/^!;#}.}&#=,%}^;#=*&$=+:^^.$$!;,&}%%:#^/:==$&==;:$^/_}+;./!=}:}^,#$&;:/=;#}+$$^;/+=.!^,&!/%;#/^=:_}^;=$^:$.=__^^.%!$,:!/+=#&=^:%/$;.*/^!%/^=:^$..!/,^}+^$%&$:}&/;!,^^}%/$.%+%},,,%+}.&/:!$;^=%^},./+%!%#,,!%,$}.+++!&#,%:$=.^/$!/_#,%&%}!.,/},#,&&&}*:&/=!^$./%}%:&+!!}};=%#}&.:+=,;%$}^.^/!.#!;%}=!.#+&!:},;%==.$+!$^,.&amp;!},.}+=!##+,:&amp;&amp;};:++^!$#},:%}.:+,,#+;!,}::+;,=#^,}&/=$!=+..#,;&+}#:&+:;}#;;.&^}=:/+%#.!#&,=,:++}&$+;&#,&:^+$/%,;%&:=!#$..+#};&;!=:.+=.#$;;==%:.^!+$#};^&#=,%}^**;#=$&&$=+:,/;^$!.+&}=::#^&:$=;&=!+:$,**_$%;./!+::},&#$+;:/&=;+#;*$$+;.$=.*^,%#$+.!#,=:^;,:$^;}//=!/^.%;$,;}/+=#&^}:+$;;=/^+;/^#%%}=$/,!#_+,,%&$:./;!&^,#%/$}.%/.!!,^}%+}:.&/#!_:^=&;$$./+:!%#/,!%,$}.+/#!&#:,&+$=.^/$!/,%&;}!../}!,#,.%:}*:^/=+#$,+%_=*..+/;},+%#&..:+%!;#&=:%$}/.:$!.#,,/!+%.#^!:$%,;%=}^:&;/!$,.&!},.=++!}#&,://};.=+^!=#/,&%}.&+,!}#+,=&&}::+;,%#^;&/}$:%+!},;/&+}}:&+#**$=,=&#^+:/^/%!#;!&;}}:,+#,/};&;}=}.+$+#:;,/=!:=+};+##;/&:=+:;^&.:#$;/&^%:.^**,}!=%&#=#::^%;#=;^+$^+:^.$.;,+^=+:#^&:$;;/=^:$^/$%;./=,:=^+#$&;:/=;;^^%;$/;#/%!!^,%,$+:/&=:_^;=$^.^//=#%^:%!}.;}/+!+&,_%$;;=/#%$/,+%%$:.!/;=};^#%&}$./;==;^$%/$.%+#!!_,^}%^$#.&/:!=;^=%^$$.+/!%.,!/}$}.}/#!+_:,%%;=*!&/$!$;,%.}!.,^!;/#,$%:}.;/=!^$.%}..+%!,=,+&%+.:+/!;=,^%}}/.$+%!$//,,%}}+#}+&!_#,;#!}^.$+/!##%,.&!},:=++!##&%&,};.=+^,^&%}}.,+/+;!#+,#&&+./+./#^,$&/+=!&,#%#$,&.}#:&+:,.&,=/:;::}+_%#.#:;:&$=&:;%$=!.#+/$+$*/#;%!!!&:,+}+:=%:}//!.##,%!}.:$^;!}$%;:=#}=:=^%;}^##=;^&$+!##=,}.,;}&}=+:#&;^&%}:/&=:,%!$%;./!^,#^;;&=+/_=;:=^^^/&.==.++}%%$$;,&;=.#!/^;=%:$$.^^!%^$}.%/+=&,#&^:%$;}&:_^..$.*/!/;:!,+^#%&+*!&,&$&;$/,=,;!/,^}%+/!=/}^^%,,:%^$$./.&,^%$}!,:/&!,#%^#$$^%.}%.^/$!/$#.#.$!#.,/}!+#}:!%:}.;+,!^$,//}%..+!!,},+&+}&.:+*!;#!,^%$}/.+%_#!,,&!}+:%+&!:#;:%=}^:!+/!$#%,.&!!,.}++!=#&,$&=,.=^;!$#/,=&%=::!+,!}#+,#&&}$:+:!=#;,$+/}:%+#*!#:,}&.}#:&+:**##,=&^}$:/+%/#.;!&#}}:=+#&#:;,^;}=:#+$/#;&&.=:,+}++##;&&:=%:;+=^#$},&=,:.^%,$!;+/%/_::^^;}!;^&}=/:^%*$+/;,&}=+$^&_$;##&=^:$^/&$%;:/!!.*^+%%$&;$/=;:=;^%%$/./%==!^;}$+;#/&!^.=$^;$//=%,%!$:;}/+=#_&^:%$};=/}=$+^&/$..!/$=}#&^#%&$::&/;==$^$%$.%/.*%,^}%$$#./:!*;;=%^$$.#/!:.,%,=!.+/#!$:;*%;$=.^/$!/,:%.}:.,+!!+$#,&%:}..;+,!^#%,/%}%..+:!,=,+%#}&.:+!;#,,^&,}/.+%!.#!,,&/}+.#+&!#,}+=}^:&+/!$#%,:&!}.}++/##&,:&}:.=+^!$#/__&%}.:!+,!}#+,#&&%::+;!=#,,$&/}:%..!#,,}&;}#:&+:%&&&,=&#}$!+%#.;^^,}}:+#*/#:;%&;=!:^+$+/#;%&.=%:,+}+$}}}&:=,:;^#^#$;//$+=:.^^,$_;+&#=&::.:;$+;^&}=/:#^%.^;,&}=+:$^&:$;;&==^:$^/%&$%;./!/=:}^+#$&;:/^;}=!%!$/;_/%^#%+#.**};#/&=:!.$$;$/#}&:}+&=$/^^&$/%%!!&^:%*&=,:,^=^/^%%$..!/,=}:+:!!$}./;==;}^.;/!.&/.!!,^}&#}%.&/:!*%}&.;/^!%%%/.,!%,=!!%/#!^:,/%;$=.^/$!#__,+%.}&.,/=!+#%;%:}/.;+/!^},/%#}%.$$/!,},+&}&._+!#/&,^%$}/:&+%!:#!;..}+.=+&!$#,;%=}^:++/!}#%,#&!};.}+++.#&,$&}:.=+^!$$^=:&%}#:!+#!}#+,#/+/::+#!=#$,$&/}__/+.!##,}&:}#:&+:**#;,=&#}$:/+%#..%&,}}:#+#;#:;&;=&:^+$.#:!&.=:,+};+##;#&:=+:;+=^$=;}&=#:.^;,#};++#=&::^_;$.;^/=/#_^%.$;,&}=+:}^&:$;;/#=^+^/$%;./!=,#^+%/$&;:/=;:=^^%;$/../%=!;,}$+.,/&!+_^}=$^;$//!^%^%!$.;}/+=#_&,+%}&;=/.=$$/^%%}/.!+%=}^^#%&$:.*+%==;^$%^$.%/.!!^}%}$#.$/:!;^=%=$$.,/!/..!%,$}.;/#!#:,%%;}&$&/$!.__;!%.}.,^!,%#,;%:}/.;/=!^$}:%},..+!,#%,+%#&!.:++!;#,^%$}/.}&!.#!,,%=}+.#+&!$#%,;%=}^.$+/!#%,.&!},.}+#!##&,:&*+/.=+^!$#+,&%}.:!+,!}#+,#&&}::+;!=#^,$&/}_:%+.!#,,}&+}#:&+:/#;,=&^}$:/+_%#.;!&,}}:++#&#:;&;=:^+$/#;%&.=!:,+=+##;&&:=&:;+=^+*;/&=%:.^!,#};+$,=;::^**;&=}..}^!,;!.$!;,+!,/:#^+:$%;;&==^=}&*$+;./=,:}^+%}/!;:/+=;_^^$$/.,%=.+^,*}$+;$/&=}^;+=$^;$//=$%^.%!$,#}/+=#&^:%$;;=/^&amp;$/^%%$#.!/,=}+:#%&$:.*/.==^^$%/!%.%/$!!.^}%^$#..:+!*;^=&%$$.+/!&.,/:$}.+/#!=:,%%;}&:/$!/__;#%.}.,+/^,#,&%:=.;+!!^},/%=^^..+!!,$;,+%$}&:!:#!;#!,^&}}/.#+%!.#!,__%}+.#+&*#,.%=}:%+/!#%.&&!};.}++%##&,}&*}:.=+.!$#/.&%}}:!+:!}#,,#&./#:+#!=}!,$&+}_:,+.//,}&+}#$+:%#;,=+^}$:;+_/#.;&&,}}#++#;#:;/&;=:^^&,^#;^&.!::,+=+$;&&},+:;+=^},;/&#=%:$}/,#};++,=&:^;%};^/=/:_^%.$!;,.!=+!^&*$;;&==^=:^/=$%;/!=,:}^+:$$&;:/=.:=^^$$^/*/%=.!//%&$+;#/&&$$$,.^//:/#=__%^.^;/!%+/#%%$$.+,&.,/^=$/:$.&$!.;},,%,$:;}+./;==!=,%%,=.+/==;_%^:%!/&/:!;^=%^$&;;,#%,!%,$}$;/^/%#$%;+&=__=+$#+,%%.}!$}&,.!=$;.#+,!*%^*^,}%}%..:+,:%&},.://!,^/%$=#=&}}/.+%+%+},.:/}==/,}%^$#;%+:!##^^#%.$}=,=+.}++!#%:$=:+/!}#/,%.$}:^+%!=#+;=%;^&&}::#/,}%,}:,+=/#%,}%}}$&;}#:&+:+%;#;,.=/:/+_%!#}=:.+&}#$,#,_;,&;}=:^::;&&.}$.}^.}:^&+##;&;$+/,$,&#;#&=%:.:;;#&}^::^%&#+,$;;^&$=/%%#&;+&=::}+:#,=,$#;;&==^}}#;;;&=,.%+#*$/.!&amp;;%+/.=;:=^^^;&amp;$=,:}+:%+$.,=;^.,/&=:$/;/&,=:.^$%+$$;*/!.}!$_&^:%/!%:_,+.#}.^/}==.^%$.^/=!&:$#^=^$%/$}+#%^};$}.;/&:%.##&^=%^$$$;#!,%}#&;;/,!.:$,!&;&$=.^/$+,%!}/.=/+!..^,/%#,/:%}.;/=^}&};._++$&,=&^%%$}.=/^!.#&^#}$$..#+#:&,.%.:^:+/:=}__,.&!}&:%+$+;://=;:.^;:$/;^/%=:^,%$^;^/%=;::;,^&amp;!};$,;.}$^.+,!;=;,&:#!.,/}^:=,.%!#.:%&!;:$,$!}::%+,!;:}^&%__.;+^,=/:_+}%}#$:.%&=!./++/#};//+$..^;$&:.,/.=/$+;%#$;=/!!%.;,$**;:&#=&::^+#&;=&^=/$_&^%.$!:,++}%!#&:=%;%=$:$^/%;}}:&^$$,/=#^.!/=;:=$.;+&+}=_,!#,.;}$+;#^$%/!/$,;#&=#%^!$%:}.;&#=_:,!;#}/&*=}^=$/};+/=.,,%$++.=:}/:.^:%$=;+=}+_$^%+$%/^!^$&$!$;^=%^/!!&.,^*}$}.!!.#+,&*=.}%}$=.^/$+,%,$;$/+!.}.!$#,&%:&/=$#&+.%!}&.$/,*}+&!,},+,&/;!}%}!#=,^%$/=!/},+.,:%}}+.##^=&;;=//}^.$+/^=%}#.&+^*!.&:%:}^!/==!._++=^=!;#^=+#%$+!=,#&&}:!.##;&&^=!^}:$#,&}:#.#++,#%;^%:=/:.+%*^};&,=/.#+#.;:,^&.}}^,&$!,#=;&&}&:+&;!;#*;!&=%,}+^}#};//}.;}+*$#+/^&}^:=^,!=$&/,%/}=^%%^$:};%&%;;/:=+:#^&^&&=}}:;^/^$;;!#=}:$^,,+^=*#$&;:;^}$/^&.}}+$+#!%,$+;#/&/:$#..;&==;,!+#%;$,;}/+,!%%$$.+/:=;/^/#,%%%$..!;=,%%.$#^:&=!+}&!,^^$%/%}=,,,/%!$#;:/;,!/=!*;^=^=/!!_!^^:#,;%,$}.+./,,%}},;/}!.#/,=,%%.}!$=&^^%!_^&+}.;/=,.%%$,:!+/=}:=,&%$$^.!^;:^+!;_=$}:+;!,_%+};:&/:!=#,/$$,;%=}^=}#/,%}}%.&/;*%},&*:..+!}#/.%#$,&%}.=,#^;!&!}=:&/!/$%^##,$&amp;/}}&#^,=&#}#:.+:;+:**#;#.,/=!.#,}=$!;!&,}}=+#;,//&}^::^%}.^!*/#;%,}/&=,+=%$##;&&:^*!.$%;:&%}^:/^!$,#&;^&/:}+/%.!;$:.,/&:*+:,.}$:;,&}=+=&#;;}%/}$^#^#,;!:=.//!=,:};&/}}:^^:**$+,}/^}=!%_!^,}%#}$:=^+!/$;;/&=*&!_%^.%!#==:^+%&:;$//:=:^+.$./%:!+__^$%:$=;;!,.:/;==^}/.&/$=$#,!;$;:=&.:/:!*;$+.;/#!.$/.=$=%$}.+/#/_=$%;#!#:^/$!/#+;#+%!!},.$#$+:&!*}&;,;}$+;#=.$+!!,}#+;$++!}//!$_=,^%$&!:#!^}&.&}&^}+.#+&+,%:}^.;%$!##!^=;.,}&!},.}.$,&$=::#+:&+^!$#/}%.&+^!+/:%#+,#&&+:!%#:;&!.;.&/}:%:.;%&^=%:/&=*!;/&!}/:;,%:,+*%#.=&!+#;%^^&#:;;^/;#&,+%}},;!^+!&_##;&&:/+,#^,$&.}.,}=::.^!,!=/:!^#=$:;:&}$=/&=/:^%^&+=/:$^./%$;;&=/%!#.^%/*=+:/}::^+#$&$&:=^}}$;%%,=!_/^=+$.=$.;#/&=:=.#$;!&:://;=__%^.;,&;=::=$;^:%*$;=;&+}_$!&.$$.!/,=}!!$}./^+;/===^^$^;//!+::^%%&$&$^}/.&/:!*=.}/.:/#!//^+%/=+&;$}.+/#^%=%$#^#&!}!;,%%$}#./%,$._.&,!&}.=}..;/=!^!!$+.,/}=^:%.%^&/}&.:+,=%##..:+#}^.&+^;,;%%}}+.#,^=&/$:/=!$#;,/&},+$=^.}++!#!/$}.+%$*+,&;#&.&+,!/#&,&&,/&,#}::+;,,&:=:/%+$;;;,&}=+^&+}%#,$&,=,^/+!&#;/**$};:#+!,#=/%!=,..^&!,#=/%%#=+:^;}^$^+%=$;^:,%.#/,!%/^&;;$%;/%==.,./&;#;&}//=.:%^^.#&;^&+#/!+=:#^&:/.=;:%+,.$!+}$;./!=,!+#^;;&}=$+$/#:^!$;/%=.*;$.%/+#^,%%./#,/=$^;$;++=^:}.;/!!:^&=*/$$;.,&.+/^=$/;}&:!.:#,!}%,^%&$:..&^;.$;,//,=&#%^+%.=&&/$#.&/:^+%$+/^/^!,^^::}%.//:=:=,^.,,;%;$=.^=^.%#},;}+&!_+!.#,&%:/;=.#^.:,%}%...&,!&%$}:^/;!;^;*&=,^%$&,=}#/,%&!}/}&#=$#+^=/^,}%=}^.$.^,=&*};.#+:!$+!##&,:.^++!*,&,==&%}.:!+,!}#+,#&&$$:++;!=#^=.$+;!,/!#,,}&+}#:&;:+!;^&^}$:/:},&};:#^!.=,,#:;&;^!=#!,#+!.^&.=!:,,:/!$&:#+:+#!;;/^$/.#^/$:&+$/!}^:.+;;,^#;#=;^.!/&=.:&,;#$^,=&.=:,,&$;;&==^=,,^:%!#}:}+:$#.;+;;}/*=;:=$:.^//=!&+!^!^,}&^=#:#%.%;#$;&}=#&^^%+.;,.}&;}/+=#!$=;=/}}+!++==^^;&$$^:!!_+^#%&/&!/:,,%=$=;#+!!/$+=*:$:.//=!;#^^.,&%^$$./__^#$_;!=.+/#!&!#$%.^/&!+:%/!!}:../#!^,,.$##;.$/^!:!!$,/%%:!$#/,,$:.}+.!&/^$+:,%$}/..;,;&%$:.&}^:++&!:#*:.}/:^.:,:&/$#.+%::%++!##&#,.%+!$/.&#/,&%/!!.#+,%&/=&;}#:+;!==!:,&+=:%+.!/}&:.+/%}%;$/,=&^}$*/#!,/%#$=.#^^!:=;;&}}^%=+:^+$/!$=,:$^/^##+;$!;&&:=*=+#;;.&!#,/.=%:.^!^+&&=#!^%;$/;,&+=:;,/,=:_!+#$,;,&}=+&#;;}&;}$:$^#:}^,$%;.+^.:/%%!$&;:/&:}#:.^../%=.!:=.&/%}$^.:##,/+=#;/&$./!/.%/+=#&/.//,=$&.!%/^%%#=;:#,%.+=%}$:.*/;/%+$!;+/,}%+^*&!$&.,/.:/:!;%.;/%=;_/,^%#%&$}.+/#^%.}/;$/%!=^.%!}&+^}/.,/}!+!##%,$&+/.+!^$,/,=+/!%,^}%&},,*+.===,#//;/%$}/..^:%$$#:/:!:#^^==!}!:&+:!$$.^#%,.&!%:!,#.,+&$$=.=+!,=,$#+;&&%}.:!.#,=&:}+:&%!$#/+%#=,$&/}}/#;,//!#/:/+}!^=^:$,=&^}$#!,/&}=:^+.}}:!;%$+;&;}==%##,,%#}};.+#!;$,,:&}#^&$=:;+=^:%}}^.,=%.#^;,#};+;+^$$+,.&$}.:%%_%^%.$!#=:&+^!#;;#//!$/=^:$^/;=/%^^/&=,:}^+,$/&=&!;=#:=^^$%!=!:;^$$$,%}$+;#;#^;%/$#;!//!_/^/+$/},$#;}/+=#!+$&;;/!!&}!%/^%%/$=.__^::;&%}$:./;^%}$%;,/^=+::^#%&$&.,#=.^/:!;#/.;/.}$++!%.,!^$/,!,_+^=}&.}//!;:^!,%%.&&=;.,:%}$//:&/!#!,/%^,&%}%..+!^:%$}&:!/;!;#+_.#^,^%$}/$##,,$%=}#:/:.$+,!:#,;,$/,!:.^/#.,.&!},!%},=%^}.:&/#!}+=!$#/,_.++!#.^=%;=!.;+#./+$!=#^,$://#!#;&/,}&+}#%&$!:%/#!;==:/+%!#}::+^.;^.&#:;;$&;#^=;$}#^.}^^^##;.&$#/%=:;+=^.&!=^:!^!=!$+;!#;#&#=&::+;;%&=+,}^!*,}$!;,&}+;#=;./&.=/*=^:$^/;:/+,#/,=,:}^+^//,=}&=/$:&/$,;/%=.=###;++:;#/&=:.+%;$^;$//^%&$^;+/:=&&^=;%:$;;=/^/:+$%.!/%!/_#^%:..%$:./;+/%.$%,/:!!:},.&#,^%+$#.&},!%^}/.&&==.$$=#&,!%,$}=}=^=$$$.,+%!__=^.+^,:%.}!.,_!^}&!:;#+.!,#/.#,/%}%}#=,+=^:%#}&.:+&+=,^%$=+.+%!.$%$&%}}+.#$#!:#,;%=}^.$+/!_#%,.&!},.}++!##/,:&};.=+^=#/,_&&}.%+,!}#+;}&&}::%+;^/#^,$&/:%+.#,;,&+}$:&,=##!&&^}$:/^/%#:;!&_,%:++#&$/;&.}=:^}}/#;%&:=!:,+},+;&&=_;+=^#$.^#=%::^!^}#};+&#!+::^**.#=%&$=/:,/.$!;.&}==:#^&:}&;;&==.:$:.*$%;.^!=,:}^;#$^;:,,=;#=^^$$,;/+=.&,^,&}$+;#/^=:/^;/#$^;$//=/^.%&$,;}/+=#&^:%%$;;=/^!!/^=%%$..!/,+_+^$%&=:./;!+^,%%/%}.%/.%,,,/%+$}.&/!*}},%^$}./^!!%:,!%.$}..$!!&:,&$$=.,/$^%;,%%:}!;/}!+_#,&/;}../=!,$,^%%..+!!;};;%#,^.:^&!;=,,%$^+.+%!.#!,,%}}^.#+/!:#&,;+=}^.$++!^,.#&},!++!##/,:%};.=+^!$#/,&&}.:+,!#+:#&&}::%+;.#^!&/=$:%+.#,;.&+}#:&^##;;&^&%:/+%}.!;&,=!:++}&=+;/:&,:^^**/=;%&.=!:,+}+#};&&}=:;+=^#$;/&#=%:.^!.#};+&#=&:^**.#=;;&$/:_^%$!;;&}^=:#,+:$;#&=.+:$^/*$%;./!=.:}^.#$+;:^=;:=^.$$^;_$/=.#%^,}$:;##=:^;=$^;$/,=,^.%%$,:}#$=#,^:%&$;%*/^!=!^%;$.&*/,=}+^#%&$:.+/;!+^^=%/=.%/.!+,,!%+^}.&+#!*;,^%^+#.//!%.,!%,}&.++&!&#,*/;$=.^+&!/$,%}!:./}!+#/,&%}*.;/=!^$,/&}%:+!!._}.+%#}&:+!=#!%$=^.+%%#!;:%}}+.#+++&#;%%=}..$+/!#%;:&!}}.}+=!##/,:+,!.=+$!$#,,,#}.%$^!}#},#;,}::+;!=,$&}}:=+.!#,,}/^}#::+:#;;!&^!$%#+.#.;&&,&;:+^}.%#:;:&;..:^+$/#$#&.=::,^^+##;&&:!%:;^^^$,;/&#=%::.,$+;+/=&::^%:&:;^//=/#}^%.$!;.;,=+&^&:$;;&=!;;^/%%$%=$/!=,:}^,^+$&./!&:=^^$}^=^/%!!!=$*}$+;#^&;%^==$.;$#%=#/};%!}!;}$}=#&^:%&%;=+!=$#%^%%$..!+;=}#^#%$$:.%/;=&}^$%$.+/.,},;!:/$#.#/:*;;^=%^$=$$/!#.,/%,$}.+/#/:,;%;}..^/}!/$=:%.},.,+%!+&:,&&#^!.;+;!^/,/%}%._..!,#;,+&&}&.:+!;&,^&/}/:++%!:#!.,%}}+:&+&!}#:$%==;.$+//#%_+&!},.}++!##&;&=.=+,!$}/,&%=!:!+!}/&,#/+}::^!=,;,$&/}_:/:%!$,}&,}#:&+:$.,=&amp;$}$:}+*&#.:!=}}:#+#,#:==&;!%++$$##=&.=!:,^!+}##;$&:=:;+=^#$.+&=.:.^:*,#=;++#,::^;;$&;^__=/_$}**.$.;,;=+:#^&#:;;/.=^^^/*$%;.+=,+^+%^$&;/**;&,^^%/$/.!/%,,_!,..$$+.+/&%^;=$;$^//!+%,;%!$,;}/+!$&,%}%;=/,=$$/=&%%}!.!/#=}&&^#&++..+==*#^$%/$./.%!!#^}%_$#.&/:!#.^=%$$$.}/!&..!:=$}.#/#!;:}=%;=**+/$!$__..%.}!.,+!/}#,$%:}$.;/=!^$#!%}...+:!,=,+/#}&.:+;!;#/,^/$}/:$+%!.#.,,^.}+.#+&##,;&.}^!++/!#%;&!},:.++**#&,:&=:.=+^.#/}+&%}.:!+.+,#+;.&&}:+;!=#^$&/=%:%^^!#;,}++}#:&^#},=^}$^+_%$%;!,,}}:++#&#:;&=}=:=+$+#:%&.=!:}+}*##;&:!&:;+=*=#$%#&=%:.^!%;#};#&#=#::^%;}=&&$=:$+.$!;,//&::#^::+&;;/!=^:}^/=+^;./!=,&!^+$$&;}#+=;:=^^:%$/;#/%!%=^,%+$+=,/&=:^}^/$^.///:}%^:%!$;;}/.;!&^:%;;=/,=$#^$;%%}!.!#/=}+^#%.&%./===/%^$%+$.%/.!/&^}%+$#=/:!%;;*:+$$.//..,!%,}/}$/#!::=$%;}!.^/$!/==^%.}!.,$:!+$,&%}^+.;/=!^,!,/%#}%:__$!,#+,+,/}&.:+*!}!/,^&/}/%+%!:#!,;%}}.%!+&!:#!;%=},.$+;;=#%,.&!,:.}+^!#$+=.&}=.=^#!$#/,&;%}:!+}!},;,#&/}::%+;*&/:,$&/}+++.#,.!:%}#::+:%^#;,=&^=&}.+.#.,&,}=:++$&#}!+&;}=:^=//##;%&$,/:,+}*+^^;&&=_:$}^$/;/:!=%:.^!$&;+/&=&+$^.#=;,&$=;%=^%.$!&:&}=^:#,+;,$;=&=%^:$^/_$;#}/!=}:}!&#$/;:/%=;&}:*$$/;}!=.*^,%%+.;#/&=:+&^;%!$^.=#&=__.^./#$,;}/+!%!^:%;$;&/^=}/^%%$$//,=}+!}%&$./#;&^^$%/;}.%/:!!#.$%+}&.&/}!;^=%#%%./+%!%+=,!%;$}.^/#!,&},*%;$=&#/$!+__,^:$}!.,/}:=#,/%:=&,/=!$$#^%}%..+^+=},#%#;$.:+%!;=,^&^;.+%!.^:,,%=}+:!$,!:#,;}%}^.}+/$%=,.&,},!#++!##&;!,^};:^+^__#/,#&%}::!+.%#+,#&&.;:+.!=#:!&/}:%!!#;,}/,^_:&^,},=&^}$::_&%$!;!}.}}:^+#&#:;+#}=:^+$#^#;&&.=/%+}+##&^&:=%:;,.+#$;&^,:.^!*,}!!/&#=::,:;#=;^&$%+:^.$!;,/!=+$#^&:$:;;$==^+#^/$%;./:=,:=^+#$&;:/=;:^^$$/.!/%%._!^,%.$+%,/&;,:=$^..//!&%^.%!}.;}/+!.&:=%*$;;=^^=$/,;%%}^.!,$=}$+^#%&},.++==&$^$//$_.%+^!!#/^}#,$#:+#.!#^^=/$$.//!%};,!&^$}.#/#!&:;&%;$=:^/$,=__,%%.}!.,/}**_#,=%:=.;+=!^$,=%&:..+#!,}},+%#}}.:#!;%,^&=}/.+}!.,&,,%}}+:}+&!:#},;$+}^.$+/!_#%,.&#},:!++!}#&;:&};::+^;#/;,&%}.:!+,*:#+,#&&}:^:;}#^;:&//+:%+.!$.;}&+=::&;/#;,=/;}$:/^:%!};!&,}}#++#&$.;/,}=$=+$%^#_;%/:=!$$+}+##;&&:=,+=%,#$;^&%:.^!%^#}./&#,:::;;#=.+&$!&:!/.$!;,&}!&:#^+:$&;;&==^:$,**$=;./}=,}^+*#$=;:#&=;#^^%$&};/$=.!*^,%:$+;#.^=:__^;%:$^;}//!#^.%.$,=+/+!^&,#/$$;../^/%/^%%=..!/,!;+,^%&&.+:==_^,.%/+.%/.!!,^}%+}^.&+^!*:^=/^$$./++!%#&,!.^$}.+/#!&#^,&$=.^/$!/,%&&}!:&/}!,#,&%:}*:&/=!^$,+%%..+!%}./%#+.:^&!;_=;%%$+.+%!.#^#%}=.#&}!:#%,;&!}^:$;!#%,.*},.=++}&!,:&$};!+^!$#/;,,}.:#+,=.#+,$&&}_:+#.&#^,$&/$^:%+:!$.}_&+=;:&;;**#;,=&#&%:/^,%/;!&;}}:^+#,/};&;}=.+$+#./:^=!&+}+$##;&&:***$+=%%#$.!&+/:.,%;%#}.&#++::^**;#=:&$!!:^%.$/;,/}=+:#^=:^};;/,=^_$^/$};.#&=,;^+/#$&;:/$=;%^^:,$/./%=.#^,&$+.,/&!#_*^;%#$^}=//=%^.%!$,.#/+!;&^:%*$;;=/^!:/^$%%$:.!/,=}+^#%&$./;==^");local ll_=(0x25a4/132)local l=10 local =;local ={}={[((0x6a-82)+-#'PSU and MoonSec winning')]=function()local ,l,,=ll_(l,,+lll);=_+_llll;_l=(l+(llllll))%ll;return(((+l-(ll)+__l*(llll*__l_l))%_l)((__l_ll_l)^__l_l))+(((+l-(ll__l_l)+__l(__l_l^lll))%ll)(__lll))+(((l+l-(ll*lll)+l_l)%ll)*__l)+((+l-(ll*llll)+l_l)%ll);end,[(0x53-81)]=function(,,)local =ll(l,,);=+l;l=(l+(ll))%ll;return((+l-(ll)+l_l)%l);end,[(-#'im gonna shit yourself'+(0x6c+(-68-0xf)))]=function()local ,=ll(l,,+l_l);_l=(l+(ll*l_l))%_ll;=+l_l;return(((+l-(ll)+__l*(l_l*llll))%l)*ll)+((+l-(ll__l_l)+_ll(__l_l^lll))%l);end,[((195-((-22+0xba)+-#"my memestring kicks ass"))+-#[[im giving 50k to the one who solves this challenge]])]=function(,,_l)if _l then local _=(/__l_l^(-))%l_l^((l-l)-(-)+l_);return -%;else local =__l_l^(-l);return(%(+)>=)and ___ or ;end;end,[(-0x19+30)]=function()local __=(0x72/114);local l=(-100+0x65);local =;local l=(((-39+0x6d)+-#'This file has been enchanted with uncrackable V, fuck the fuck off')(_l_l^(ll_l)))+;local __=(0x2fc/191);local =((-)^(((-79+0xe2)-121)+-#'what the fuck is sleep'));if(==)then if(l==l)then return *;else _=l;=l___;end;elseif(==(l*(l_l^lll))-l)then return(l==)and((l_/l___))or(_(/l));end;return l_ll(,-((ll*(llll))-))*(+(l/(__l_l^_lll)));end,[(-#[[staymad]]+(845/(-#[[<@!847154787934011462> shut the fuck up]]+(-20+0x7c))))]=function(l,,)local ;if(not l)then l=(-0x2e+47);if(l==)then return'';end;end;=ll_l(l,,+l-);=+l;local =''for =l,# do =l(,ll((ll(ll_l(,,))+l)%ll))l=(l+ll)%__l end return ;end}local function (...)return{...},l__l('#',...)end local function l()local _l_l={};local l={};local ={};local ____={_l_l,l,nil,};local l={}local ll=(186-0x85)local l={[(856/0xd6)]=(function()return not(#==((-#"porn"+(1800/0x32))+-0x1e))end),[(((0x23b2-4630)/0xc4)+-#'i still hate noobmaster')]=(function()return _(57-0x34)end),[(0x6e-109)]=(function()return _((0x86+-124)+-#'c0ck')end),[((0xc4-153)+-#"no she is 7000 y.o with huuuuuge milkers")]=(function()local =(0x85-127)local _=''local =1 for l=1,# do =(+ll)%ll =l(,ll((ll(:sub(_l,_l))+)%__l))end return _ end)};for =l,(0x43+-66)do l[-l]=l();end;local __=((289-0xb9)-103)for =1, do local =((182-0x69)+-#"How to deobfuscate: function deobfuscate() while true do end; deobfuscate()");local ;local =__l[%(1254/0x39)];_l[]= and ({});end;for __l=1,(0x65-100)do local __=(72+-0x46);if((0x56-82)==l)then local ll=((0x81+-77)+-#"alt + f4 to open up the deobfuscated source code");local l=(0x238/142);local ={(68-0x41),(-#"mom shot dad"+((-138+0x14)+0x85)),nil,nil};local ____={[(-0x48+((19092/0xac)+-#[[I have 0x in my nickname and I am cool.]]))]=function()[l]=_(0x2dc/244);[l_ll]=(69-0x42);end,[(32-0x1f)]=function()[l]=(0x14+(-2888/0x98));end,[(0x71+-111)]=function()[l]=_(-#"federal is an asshole"+(5214/0xed))-(l_l^l)end,[(0x120/96)]=function()[l]=((159-0x88)+-#"im gonna shit yourself")-(l_l^l)[ll_l]=(219/0x49);end};___ll;if((348/0x57)==l)then []=_l[[ll]]end if((89-0x55)==)then [_lll]=_l[[lll]]end if((-65+0x45)==l)then [_ll_l]=_l[[lll]]end l_l[l]=;end end;[3]=(94-0x5c);return ;end;local function l(,llll,ll)local __l=[l_l];local l=[lll];local =[];return(function(...)local =;local ll_=l;local l=;local ll=l;local l_l=l__l('#',...)-l;local ll={};local l={...};local l={};local = *=-1 local lll=;local = local l={};for =0,l_l do if(>=ll)then ll[-ll]=l[+l];else l[]=l[+];end;end;local =l_l-ll+__ local ;local ll;while true do =l[];ll=[(83+(-0x616/19))];l=(8928582)while(0xff-183)>=ll do l-= l l=(11123060)while((113+-0x41)+-#"chrome sex me")>=ll do l-= l l=(2398110)while(0x9c3/147)>=ll do l-= l l=(273760)while(-#"This file has been enchanted with uncrackable V, fuck the fuck off"+(0xc8-126))>=ll do l-= l l=(259798)while ll<=(-#'Oh, so you know what banging is? Bang every single woman in your location.'+(176+-0x63))do l-= l l=(8039504)while(-#'This file has been enchanted with uncrackable V, fuck the fuck off'+(252-0xb9))>=ll do l-= l l=(7078349)while ll>(0/0xaf)do l-= l if l[[ll]]then =+;else __=[lll];end;break end while 3643==(l)/((3928-0x7c1))do __=[l];break end;break;end while(l)/((-#"Federal spilled out the milk"+(0xc26+-90)))==2687 do l=(3066186)while(0x160/176)<ll do l-= l l[[__ll]][[l_l]]=l[[l]];break end while 786==(l)/((-#"paster haha paster"+(0x44e38/72)))do local =[]l_break end;break;end break;end while 2651==(l)/((-#"Jeff Bezos approved"+(209+-0x5c)))do l=(3267702)while ll<=(47-0x2a)do l-= l l=(10279152)while(-41+0x2d)<ll do l-= l local l;local ____l,ll;local ll;local l;l[[l]]=l[[l]][[_ll_l]];=+;=l[];l[[]]=l[[l]];=+;=l[];l[[]]=l[[lll]];=+;=l[];l=[ll]ll=+;=l[];l[[ll]]=ll[[l]];=+;=l[];l[[]]=[lll];=+;=l[];l[[____]]=ll[[l]];=+;=l[];l=[];ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[ll]];=+;=l[];l[[]]=_[l];=+;=l[];l=[]l[l]=ll=+;=l[];l=[l_l];ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[_ll_l]];=+;=l[];l[[l__]]=l[[l]];=+;=l[];l=[]l,ll=(ll)lll=ll+l-1 l=0;for =l,lll do l=l+;l[]=____l[l];end;=+;=l[];l=[ll]_llbreak end while(l)/((7044-0xdf8))==2964 do local l;l[[ll]]=llll[[l]];=+;=l[];l=[ll]_l[l]=_ll=+;=l[];l[[]]=ll_[[l]];=+;=l[];l[[]]=l[[l]];=+;=l[];l=[ll]l[l]=ll=+;=l[];if(l[[l_l]]==l[[ll]])then =+l;else __=[l_l];end;break end;break;end while 2631==(l)/((0x9e4-1290))do l=(24378)while(522/0x57)>=ll do l-= l local ={,l};[__l_l][[l][]]=[__l_l][[][l_l]]+[l][ll];break;end while 717==(l)/((177-0x8f))do l=(4256909)while(-44+0x33)<ll do l-= l l[[]]=l[[l_l]][l[[l__l]]];break end while 3137==(l)/((0xae3-(-0x4e+1508)))do llll[[lll]]=l[[_ll]];break end;break;end break;end break;end break;end while 232==(l)/((2433-0x4e5))do l=(4946998)while(768/0x40)>=ll do l-= l l=(5572350)while ll<=(0x90-134)do l-= l l=(1134799)while ll>(0x369/97)do l-= l local l;local ll;local ll;local l;l[[]]=ll[[l]];=+;=l[];l[[]]=l[[lll]][[ll]];=+;=l[];l=[l_l];ll=l[[l_l]];l[l+1]=ll;l[l]=ll[[l__l]];=+;=l[];l[[]]=l[[l]];=+;=l[];l[[l_l]]=l[[l]];=+;=l[];l=[]_l[l]=_ll=+;=l[];l=[l__];ll=l[[l]];_l[l+1]=ll;l[l]=ll[[____l]];=+;=l[];l=[l__]l[l]=ll=+;=l[];ll={l,};ll[l][ll[l_l][l]]=ll[][ll[_l_l][l__l]]+ll[l][ll[l_l][l]];=+;=l[];l[[ll]]=l[[l]]%[_l_ll];=+;=l[];l=[]l[l]=ll=+;=l[];ll=[l];l=l[ll]for =ll+1,[ll]do l=l..l[];end;l[[ll]]=l;=+;=l[];ll={l,};ll[l][ll[l_l][]]=ll[][ll[l_l][ll]]+ll[l][_ll[l_l][_lll]];=+;=l[];l[[ll]]=l[[lll]]%[l];break end while 3161==(l)/((822-0x1cf))do if(l[[l]]~=[_lll])then =+l;else __=[_lll];end;break end;break;end while(l)/((0x4c4f4/122))==2175 do l=(1705546)while(-#[[you have failed the script logging speedrun]]+(-85+0x8b))<ll do l-= l local l=[_]local l={_ll};local =0;for =l,[_l]do =+;l[]=l[];end break end while 1094==(l)/((((351284/0x6a)-1698)+-#[[Oh so you know C++? What does sizeof(int) equal to? (gcc)]]))do l[[]]=l[[l]]%[ll];break end;break;end break;end while 2302==(l)/((4320-0x87b))do l=(1339510)while ll<=((231-0xa6)+-#"You know lua? name every metamethod - skids of v3rm")do l-= l l=(8475026)while(3315/0xff)<ll do l-= l if(l[[]]<l[[l_ll]])then =+l;else __=[l];end;break end while 4009==(l)/(((-#[[constant dumB]]+(433200/0x64))-2205))do local l;l[[]]=l[[l]];=+;=l[];l[[l_]]=ll_[[l]];=+;=l[];l[[ll]]=l[[l]][[ll_l]];=+;=l[];l[[_l_l]]=l[[lll]][[____l]];=+;=l[];l[[ll]]=l[[l]][[_l__l]];=+;=l[];l[[l_]]=l[[l]][_[_ll_l]];=+;=l[];l[[__ll]]=[l];=+;=l[];l=[ll]ll=+;=l[];l[[l_]]=ll_[[l]];=+;=l[];l[[]]=[l];=+;=l[];l=[ll]_ll=+;=l[];l[[ll]]=ll[_[l]];=+;=l[];l[[]]=l[[l_l]];=+;=l[];l[[l_l]]=ll[[l]];=+;=l[];l[[ll]]=l[[l]][[_ll_l]];=+;=l[];l[[ll]]=l[[l]][[_l_ll]];=+;=l[];l[[l_]]=l[[l]][[____l]];=+;=l[];l[[l__]]=l[[l]][[_l__l]];=+;=l[];l[[l_l]]=[l];=+;=l[];l=[]llbreak end;break;end while 1798==(l)/((1599-0x356))do l=(5726950)while ll<=((0x76+-82)+-#'Perths Scripting Shit')do l-= l l[[ll]][[lll]]=[l__l];break;end while 2350==(l)/((0x1320-2459))do l=(8184400)while(-104+0x78)<ll do l-= l local __=[]l__break end while(l)/(((0xfb5+-27)+-#"fed why copy ms priv bot and make it psu bot"))==2072 do local ll;local ll;local l;l[[l_l]]=ll[[l]];=+;=l[];l[[]]=ll_[[l]];=+;=l[];l=[l_l];ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[_l_ll]];=+;=l[];l[[ll]]=[l];=+;=l[];l=[]_l[l]=_ll=+;=l[];l[[]]=l[[_l]][[l_ll]];=+;=l[];l[[ll]]=l[[lll]][[ll]];=+;=l[];l=[]_l[l]=_ll=+;=l[];ll=[l];__ll=l[ll]for =ll+1,[l__l]do ll=ll..l[];end;l[[_l_l]]=ll;=+;=l[];l[[ll]][[l]]=l[[ll]];break end;break;end break;end break;end break;end break;end while 3354==(l)/((-41+0x2f4))do l=(14527840)while ll<=(87-0x3d)do l-= l l=(4259952)while ll<=((240-0xb2)+-#"Penis Sucking Utilities source leak lol!!")do l-= l l=(680064)while ll<=((5824/(0x1a6-240))+-#'unban fiusen?')do l-= l l=(744660)while(-0x7f+145)<ll do l-= l l[[ll]]=llll[[l_l]];break end while 252==(l)/((0x46b36/98))do l[[ll]]=l(ll[[l_l]],nil,ll);break end;break;end while 2024==(l)/((-#[[im a bigger]]+(0xdcf1/163)))do l=(4747627)while ll>(0xed8/190)do l-= l local ={,l};[__l_l][[l][l]]=[__l_l][[][l_l]]+[l_][l__l];break end while 1229==(l)/(((-146+0x40)+0xf69))do local ll;local l;l=[];ll=l[[l_l]];l[l+1]=ll;l[l]=ll[[l__l]];=+;=l[];l[[l_l]]=[l_l];=+;=l[];l=[ll]l[l]=ll=+;=l[];l[[]]=l[[l]][[_l_ll]];=+;=l[];l[[l_l]]=l[[_l]][[l_ll]];=+;=l[];l[[ll]]=l[[l]][_[_l__l]];=+;=l[];l=[ll];ll=l[[lll]];l[l+1]=ll;l[l]=ll[[ll_l]];=+;=l[];l=[ll]ll=+;=l[];=_[l];break end;break;end break;end while 1539==(l)/((0x506b0/119))do l=(2336448)while _ll<=(1771/(0x3c75/201))do l-= l l=(1737298)while ll>(2068/0x5e)do l-= l local l;l[[_ll]]=ll[[l]];=+;=l[];l[[l_l]]=[l];=+;=l[];l=[l_l]ll=+;=l[];l[[l_l]]={};=+;=l[];llll[[l_l]]=l[[l__]];=+;=l[];l[[ll]]=ll[[l]];=+;=l[];l[[ll]]=l[[l]][[_l_ll]];=+;=l[];l[[ll]]=llll[[l]];=+;=l[];l[[ll]]=llll[[l_l]];=+;=l[];l=[ll]_ll=+;=l[];do return end;break end while(l)/((2846+-0x54))==629 do local =[]local l,=(l_)lll=__+-___ local =0;for =,lll do =+;l[]=l[];end;break end;break;end while 2264==(l)/((2114-0x43a))do l=(2919330)while(127+-0x67)>=_ll do l-= l local =[ll]local l,=(_l_)lll=+-_ local =0;for =,lll do =+;l[]=l[];end;break;end while 1194==(l)/((-#'dang nice obfuskator drags ball across screen'+(346388/0x8b)))do l=(1409280)while((0x42+-19)+-#"Telecrypter buggin bro")<ll do l-= l local __=[ll]_l[]=l__break end while(l)/((0x549+-73))==1101 do local l=[ll];local ll=[____l];local l=l+2 local l={ll};for =1,ll do l[__l+]=l[];end;local l=l[1]if l then l[__l]=l __=[l];else =+;end;break end;break;end break;end break;end break;end while 4040==(l)/((3702+-0x6a))do l=(2691293)while ll<=(0xa3-133)do l-= l l=(4848101)while(0x55+-57)>=ll do l-= l l=(2840052)while(0x5b+-64)<ll do l-= l local l;local l,____l;local l;local _ll;local l;l[[]]=l[[l]][[_l__l]];=+;=l[];l=[ll];_ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[_l_ll]];=+;=l[];l[[]]=ll[_[l]];=+;=l[];l=[ll];_ll=l[[_lll]];_l[l+1]=_ll;_l[l]=ll[[ll]];=+;=l[];l[[]]=_[l];=+;=l[];l[[ll]]=llll[[l]];=+;=l[];l[[]]=[l];=+;=l[];l[[]]=llll[[l_l]];=+;=l[];ll=[l];l=_l[_ll]for _=ll+1,[_l__l]do l=l..l[];end;l[[_l_l]]=l;=+;=l[];l=[ll]l,l=(ll)lll=l+l-1 l=0;for =l,lll do l=l+;l[]=l_[l_];end;=+;=l[];l=[ll]_l[l]=_ll=+;=l[];l[[ll]]=l[[l]];break end while 1866==(l)/(((-30+0x652)+-#[[This file has been enchanted with uncrackable V, fuck the fuck off]]))do local =[ll]l[]=l_break end;break;end while(l)/((0x10c5-2206))==2323 do l=(3751646)while ll>((205+-0x46)-0x6a)do l-= l local l;l=[]_l[l]=_ll=+;=l[];l[[__ll]][[l]]=_[____l];=+;=l[];l[[ll]]=ll[[l]];=+;=l[];l=[ll]l[l]=ll=+;=l[];l[[ll]][[l]]=[l];=+;=l[];l[[____]]=ll[[lll]];=+;=l[];l=[l_l]l[l]=ll=+;=l[];l[[_____]][[l]]=_[_l_ll];=+;=l[];l[[]]=ll[_[_lll]];=+;=l[];l[[l_l]]=ll[[l]];break end while 2906==(l)/((0x55bb/17))do l[[l_l]]=([l]~=0);=+l_;break end;break;end break;end while 1501==(l)/((-#[[how to opcode]]+(0xe38-1834)))do l=(201550)while ll<=(110-0x4e)do l-= l l=(97500)while ll>(0x744/60)do l-= l l[[ll]]=l[[lll]]-l[[l__l]];break end while 390==(l)/((272+-0x16))do local =[l_l];local =l[]for =+1,[ll_l]do =..l[];end;l[[]]=;break end;break;end while 4031==(l)/((-#'Fun and games until a = (function() a() end) a()'+(0x10f-173)))do l=(377625)while(0xbe-157)>=ll do l-= l local l;l[[___]]=ll[_[l]];=+;=l[];l[[]]=l[[l]][[ll_l]];=+;=l[];l[[l_l]]=[lll];=+;=l[];l[[ll]]=ll[[l]];=+;=l[];l[[ll]]=l[[l]][[lll]];=+;=l[];l[[l__]]=l[[l]][[ll]];=+;=l[];l[[ll]]=l[[l_l]][[lll]];=+;=l[];l=[]l[l]=ll=+;=l[];l[[____]]=ll[[l_l]];=+;=l[];l[[]]=l[[lll]][[ll]];=+;=l[];l[[]]=[l];=+;=l[];l[[ll]]=ll[_[l_l]];=+;=l[];l[[l_]]=l[[l]][[_l_ll]];=+;=l[];l[[ll]]=l[[l]][[lll]];=+;=l[];l[[l_l]]=l[[l]][[ll]];=+;=l[];l=[l_l]l[l]=ll=+;=l[];l[[__ll]][[l]]=_[_l__l];=+;=l[];l[[l_l]][[l_l]]=[ll_l];=+;=l[];do return end;break;end while 125==(l)/((((0x1871+-116)-3116)+-#'real'))do l=(542976)while(0x57+(-#"what the fuck is sleep"+(48-0x4f)))<_ll do l-= l l[[_l_l]]=l[[l]]-l[[_l__l]];break end while 448==(l)/((267852/0xdd))do local ll;local l;l[[ll]]=([l]~=0);=+;=l[];l[[l]]=ll_[[l]];=+;=l[];l=[l__];ll=l[[lll]];l[l+1]=ll;l[l]=ll[[l]];=+;=l[];l[[l_l]]=[l_l];=+;=l[];l=[l__]l[l]=ll=+;=l[];l[[l__]]=l[[l]][[l]];=+;=l[];l=[];ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[_l_ll]];break end;break;end break;end break;end break;end break;end break;end while(l)/((0x1c4d-(-#"Nigh"+(0x1d0f-3770))))==3107 do l=(3681964)while _ll<=(211-0x9e)do l-= l l=(8166536)while _ll<=(-#'Federal is godly'+(179-0x77))do l-= l l=(7014384)while((147+-0x4a)+-#"Nice constant dumper you got there")>=_ll do l-= l l=(576793)while(107-0x46)>=_ll do l-= l l=(3217354)while _ll>(138-0x66)do l-= l local ll;local l;l=[_l_l]_ll=+;=l[];l=[ll];ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[_ll_l]];=+;=l[];l[[l_]]=[l];=+;=l[];l=[ll]ll=+;=l[];l=[l_l];ll=l[[lll]];l[l+1]=ll;l[l]=ll[[ll_l]];=+;=l[];l[[l_l]]=[l];=+;=l[];l=[]_ll=+;=l[];l[[ll]]=ll[_[l]];=+;=l[];if not l[[l__]]then =+l_;else =[l];end;break end while 2909==(l)/((-73+0x49b))do l[[l]]={};break end;break;end while(l)/((1336-0x2c3))==917 do l=(10393777)while _ll>(-0x49+111)do l-= l local =[]_l_break end while 2927==(l)/((-#"free_lua_deobfuscator.hacker.com"+(0x1c47-3656)))do local =[]_l_break end;break;end break;end while(l)/(((0x8474e/143)+-#[[dang nice obfuskator drags ball across screen]]))==1872 do l=(1432354)while ll<=(4756/0x74)do l-= l l=(488268)while ll>(3680/0x5c)do l-= l l[l_];break end while 3014==(l)/((37746/0xe9))do if(l[[l]]<l[[l__l]])then =+l;else __=[l];end;break end;break;end while 781==(l)/((119210/(0x1cb1/113)))do l=(1179500)while((8580/0x9c)+-#[[Gav is shitty]])>=_ll do l-= l local =[]l[]=l_break;end while(l)/(((-65+0x3bd)+-#"Use a condom kids"))==1348 do l=(3625237)while ll>(75+-0x20)do l-= l local ll;local l;l[[_ll]]=ll[[l_l]];=+;=l[];l=[l_l];ll=l[[l]];l[l+1]=ll;l[l]=ll[[l_ll]];=+;=l[];l[[]]=[l];=+;=l[];l=[ll]_l[l]=_ll=+;=l[];l=[];_ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[_ll_l]];=+;=l[];l[[ll]]=l[[l]];=+;=l[];l=[l_l]l[l]=ll=+;=l[];l[[]]={};=+;=l[];l[[]][[l]]=[ll];=+;=l[];l[[ll]]=ll[[l]];break end while 979==(l)/((0x1d52-3803))do local ll;local l;l[[l]]=ll[[l]];=+;=l[];l=[];ll=l[[lll]];l[l+1]=ll;l[l]=ll[[l__l]];=+;=l[];l[[l_l]]=[l];=+;=l[];l=[ll]_l[l]=_ll=+;=l[];l[[ll]]=l[[l_l]][_[____l]];=+;=l[];l[[ll]]=l[[l]][[lll]];=+;=l[];l[[l_]]=ll_[[l]];=+;=l[];l[[]]=l[[l]][[ll]];=+;=l[];l[[l_l]]=[lll];=+;=l[];l[[]]=[l_l];=+;=l[];l[[ll]]=[l];=+;=l[];l[[]]=_[_lll];=+;=l[];l[[l_l]]=[l_l];=+;=l[];l[[ll]]=[l_l];=+;=l[];l[[]]=_[l];=+;=l[];l[[l_]]=[l];=+;=l[];l[[ll]]=_[l];=+;=l[];l[[__ll]]=[l_l];=+;=l[];l[[]]=_[l];=+;=l[];l[[]]=_[_lll];=+;=l[];l=[ll]l[l]=ll=+;=l[];l[[]]=[l_l];=+;=l[];l[[l_l]]=[l];=+;=l[];l[[]]=ll[_[l]];=+;=l[];l[[_l_l]]=l[[lll]][[_ll_l]];=+;=l[];l[[ll]]=[l];=+;=l[];l[[l_l]]=[l];=+;=l[];l[[]]=[l_l];=+;=l[];l=[]l[l]=ll=+;=l[];l[[ll]]=[l];=+;=l[];l[[]]=[l];=+;=l[];l[[____]]=ll[[l]];=+;=l[];l[[ll]]=l[[l]][[l]];=+;=l[];l[[]]=[l];=+;=l[];l[[]]=[lll];=+;=l[];l[[l__]]=[lll];=+;=l[];l=[l_l]l[l]=ll=+;=l[];l[[l__]]=[l];=+;=l[];l[[ll]]=[l];=+;=l[];l[[l_]]=[l];=+;=l[];l[[]]=ll_[[l]];=+;=l[];l=[l_l];ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[ll]];=+;=l[];l[[l_l]]=[l];=+;=l[];l=[l__]l[l]=ll=+;=l[];l[[]]=l[[l]][[____l]];=+;=l[];l=[_];_ll=l[[l]];_l[l+1]=_ll;_l[l]=ll[[lll]];=+;=l[];l[[]]=l[[_lll]];=+;=l[];l[[]]=l[[l_l]];=+;=l[];l[[]]=l[[l]];=+;=l[];l[[l__]]=l[[l]];=+;=l[];l[[ll]]=l[[l_l]];=+;=l[];l[[_l_l]]=l[[l]];=+;=l[];l[[ll]]=l[[l]];=+;=l[];l[[_l_l]]=l[[l]];=+;=l[];l[[]]=l[[l_l]];=+;=l[];l[[ll]]=l[[_lll]];=+;=l[];l[[ll]]=l[[_lll]];=+;=l[];l=[l_l]ll=+;=l[];do return end;break end;break;end break;end break;end break;end while(l)/((0x1572a/25))==2324 do l=(147423)while ll<=(-#[[real]]+(178-0x7e))do l-= l l=(1342890)while ll<=(-#"someone play roblox with mer please hes lonely"+(-0x46+162))do l-= l l=(485550)while(4455/0x63)<ll do l-= l local l;l[[l]]=ll[[l]];=+;=l[];l[[ll]]=l[[l]][[lll]];=+;=l[];l=[l__]l[l]=ll=+;=l[];l[[]]=l[[l]];=+;=l[];l[[l_l]]=ll[[lll]];=+;=l[];l[[l_]]=l[[l]][[l]];=+;=l[];l=[]l[l]=ll=+;=l[];l[[_ll]]=ll[[l_l]];=+;=l[];l[[l_]]=l[[l]][[_ll_l]];=+;=l[];l=[ll]l[l]=ll=+;=l[];if(l[[l_l]]<l[[_lll]])then =+l;else __=[lll];end;break end while(l)/((0x34c-454))==1245 do local l;l[[]]=ll_[[l]];=+;=l[];l[[ll]]=l[[l]][_[_l__l]];=+;=l[];l[[_l_l]]={};=+;=l[];l[[l_l]]=[l];=+;=l[];l[[ll]]=ll[_[l]];=+;=l[];l[[]]=l[[l]][[_ll_l]];=+;=l[];l[[__ll]]=[l];=+;=l[];l=[l_l]l[l]=ll=+;=l[];l[[ll]]=l[[l]][_[_l__l]];=+;=l[];l[[l__]]=([l_l]~=0);=+;=l[];l[[l_]]=ll_[[l]];break end;break;end while 387==(l)/((-#'Federal was here...'+(-24+0xdb9)))do l=(2735300)while ll>(0xa77/57)do l-= l local =ll[[l]];local ll;local ={};ll=_l_l({},{index=function(,)local =[];return [1][[2]];end,newindex=function(l,,)local =[][1][[2]]=_;end;});for l=1,[lll]do =+l;local =l[];if [(0x5f+-94)]==64 then [l-1]={l,[l]};else [l-1]={llll,[lll]};end;l[#l+1]=;end;l[[ll]]=l(,ll,ll);break end while 1700==(l)/((((81147960/0xd8)/227)+-#'someone play roblox with mer please hes lonely'))do local l;local ll;local l_l;l[[l]]=l[[l]];=+;=l[];l[[]]=_[l];=+;=l[];l_l=[l];_ll=_l[l_l]for =l_l+1,[lll]do _ll=_ll..l[];end;l[[_l_l]]=_ll;=+;=l[];l[[]][[lll]]=l[[ll]];=+;=l[];l[[l_l]][[l]]=[_ll_l];=+;=l[];l[[ll]]=ll_[[l]];=+;=l[];l[[]]=[l];=+;=l[];l=[ll]_l[l]=_ll=+;=l[];l[[l_l]][[l]]=l[[ll]];=+;=l[];l[[]]={};break end;break;end break;end while 939==(l)/(((31416/0x9a)+-#'KFC tried to justify urls as fake constants LOL'))do l=(1759824)while ll<=(-#[[win+L = solution]]+(12870/0xc3))do l-= l l=(14691096)while ll>(-0x49+122)do l-= l local ll=ll[[l]];local l;local ={};l=_l_l({},{index=function(,)local =[];return [1][[2]];end,newindex=function(l,,)local =[][1][_[2]]=;end;});for l=1,[ll_l]do =+l;local =l[];if [(0x37/55)]==64 then [l-1]={l,[l]};else [l-1]={llll,[l]};end;l[#l+1]=;end;l[[ll]]=l(ll,l,ll);break end while 3962==(l)/(((7552-0xef6)+-#[[Bye bye 👋]]))do l[[ll]]={};=+;=l[];l[[ll]][_[l]]=[_l__l];=+;=l[];l[[]]={};=+;=l[];l[[ll]]={};=+;=l[];l[[l__]][[l_l]]=[ll_l];=+;=l[];l[[]]=_[l];=+;=l[];l[[_ll]]=ll[[l]];=+;=l[];l[[]]=l[[l]][_[lll]];=+;=l[];l[[]]=l[[l_l]][[lll]];=+;=l[];l[[]]=l[[lll]][[ll]];break end;break;end while(l)/((1085+-0x75))==1818 do l=(13726698)while ll<=((-0x3c+169)+-#"this meme string was brought to you by raid shadow legends")do l-= l local ={l,};[l][[__l_l][]]=[][[_l_l][l__l]]+[l][[l_l][l]];break;end while(l)/(((7665-0xf21)+-#"Consume the Cum Chalice"))==3642 do l=(9080912)while ll>(0xe6c/71)do l-= l local =[l];local l=l[]local l=l[+2];if(l>0)then if(l>l[+1])then =[l];else l[+3]=l;end elseif(l<l[+1])then =[l];else l[+3]=l;end break end while 2881==(l)/((0xc70+-32))do local l;l[[____]]={};=+;=l[];l[[]][_[l]]=l[[____l]];=+;=l[];l[[]][[l]]=l[[____l]];=+;=l[];l[[]][[_l]]=[l__l];=+;=l[];l[[l_]][[l]]=l[[____l]];=+;=l[];l[[ll]]=ll[_[l]];=+;=l[];l[[]]=l[[lll]];=+;=l[];l=[ll]_ll=+;_=l[];do return end;break end;break;end break;end break;end break;end break;end while 1727==(l)/((2217+-0x55))do l=(2202556)while(-0x62+160)>=_ll do l-= l l=(9079872)while _ll<=(178-0x79)do l-= l l=(13996566)…


Tuesday 2021-08-31 17:52:52 by Andrew Kerr

silly stupidly overcomplicated friend list decomplicated and now almost done. too much detail? not enough? life story next


Tuesday 2021-08-31 18:01:06 by Marko Grdinić

"5:35pm. There was thunder so I just went to bed instead of risking my electronics. In fact there is still some outside.

5:40pm. I got up wanting to do some work on the new Spiral backend, but who is going to start at this time.

I got your CV from our recruiters and I'd like to schedule an interview with you. Would you be available someday this week, afternoon CEST?

This is from Intel's compiler engineering manager. So far, I've applied to 3 compiler places, and 2 of them gave me bites, 3 if we count Zenna. I guess I do have some appeal from people in such a field. Maybe Forward Nets would have gone better if I hadn't spazzed it.

Well, I only need one job.

Ok, let me think.

Yeah, let me reply asking him to do it tomorrow. It is best that I get this out of the way quickly. Zenna said he would get back to me soon, and I am on the track with Green Hills. I do not want to be free and on the job market for long. The sooner I get these interviews out of the way, the better.

6:15pm. Done with lunch.

7:15pm. The interview with Viktor is scheduled for 2:30pm tomorrow. It is over Microsoft Teams.

Let me install the thing and I'll call it a day here.

7:45pm. Ok, I get it. I had to reset my MS account password due to stupidity, but ultimately I just click a link and join. I can even do it from Google Calendar. That should make things easy.

Yes...

The only bit of real work that I've done today is that quiz, and doing some emailing and yet I feel exhausted.

7:50pm. What will happen, who knows? My mind is in overdrive and needs to cool down. I'll take a bath here.

Tomorrow, I'll do the Intel interview. Eventually I'll get an offer, commit to it and get off the job hunt. I should be doing programming rather than this. If I do not get any emails, I might time to work on the backend."


Tuesday 2021-08-31 19:51:21 by Dominik Krížo

fuck you javascript and react and next and vue and idk who else


< 2021-08-31 >