Perception is reality. Whether you're creating a new company or revamping the existing one – it's all about the branding. Let me design your success by creating your unique brand.
Out with the old and mundane. Cutting-edge and fantastic user experience are what I create for multipurpose websites. All you need to do is – contact me for creatives and business.
You have the perfect site. You want to be seen. SEO optimization will ensure your name gets out there! To help you connect with your target audience – I offer cross-platform designs.
There are three responses to a piece of design – yes, no, and WOW!
Call me your technologist with a heavy dose of creativity and over 10 years of designing digital experience.
Since childhood, I've been inclined towards art and colour. My passion led me on to take formal art lessons for over 15 years. But, I had a passion for academics as well and that led me to complete my engineering qualification. I always wanted to merge both my skills and abilities and walking the path of a creative career in the digital world was a natural choice.
The design aspect fulfils my creative needs. The content organisation, the website features blended in with and design elements bring out my technological best. The satisfaction of seeing my creations on the world wide web, interactions with people, and watching their delight when I enable them to see their passion translated into digital designs, keeps me motivated and curious to learn more about what UI and designing have to offer.
My work reflects a distinct play of shades and tints. Keeping in line with a high degree of organisation and sense of style, I enjoy turning complex problems into simple, beautiful and intuitive interface designs.
I consider myself to be extremely fortunate, because my 'job', entails doing what I love. I call myself a designer. It's a nice umbrella term for the web design/print design/illustration/branding work that I do. I offer end-to-end designing and development solutions for websites and web applications for large and small businesses and manage my recently co-founded online magazine, Namaste Switzerland.
When I am not pushing pixels around my screen, I love to experiment with a variety of paint mediums in the real world. I also teach singing and perform along with my local band.
Blending the power of elegant creativity and a penchant for perfection with the right amount of technical know-how can lead to the making of powerful websites, virtual platforms that mean business and are efficient and effective for the purposes that define their very creation.
Your needs are addressed – my team and I believe in open communication to ensure that we understand your business and its requirements – so as to best meet your demands.
Your brand. Your logo. Your website. Your brochures and visiting cards. Each designed to your satisfaction. Efficiency and effectiveness are of utmost significance in making your success, our goal.
If you're looking for long term, well-thought-out solutions, you've at the right place. Perfection reflects long after the project has been delivered. Post deliverables, my team and I can help maintain and update your website as and when desired.
You can count on us for everything that strengthens your brand – from designing your print and virtual brand connected assets to developing your site in terms of content, translations and social media management and ensuring its relevance and SEO optimization.
All positive relationships start with a chat. Online or over a coffee, we meet to learn more about each other professionally and align expectations. I listen to your ideas, offer advice and present solutions to meet and exceed your expectations.
Strategize. Plan. Execute. I create concepts in line with your ideas. You might feel challenged or reassured. In both cases, it's a step forward. I will then refine or recreate the task at hand to precisely reflect your business.
From beautiful brands to exciting websites with interesting user faces that create unique user experiences, I design with flair, care and great attention to detail.
Needless to say, I will keep you posted at every stage to ensure we are aligned with the business and the brand. I assure you that your projects will be delivered on time, every time.
Are you ready with your concept? Get in touch with me and let's make magic together! Fill in your requirements and details in this form below, and I will get in touch with you.
For work enquiries or if you want to just say 'hello', email me at contact@manasam.ch.
Copyright © Manasa M. All rights reserved.


text:
package org.xtuml.bp.ui.text.test.i589Test;

import junit.framework.TestSuite;

public class I589TestSuite extends TestSuite {

	public I589TestSuite() {

		addTest(new TestSuite(AllEditorsDirtyTest.class));
		addTest(new TestSuite(ElementDeleteTest.class));
	}

}

redpajama_set_name: RedPajamaGithub


text:
Kristove roky, v češtině někdy jako Kristova léta, je název dlouhometrážního hraného debutu slovenského režiséra Juraje Jakubiska s premiérou v roce 1967. Jakubiskův námět počítal s natočením filmu ve stylu filmů Michelangela Antonioniho, ale po upravení scénáře Dohnalem byl film natočen spíše ve stylu Federica Felliniho. Výsledný film je také ovlivněn, tím, že původně zamýšlený herec hlavní postavy měl být Josef Abrhám, který z pracovních důvodů odmítl.

Film nese prvky autobiografičnosti. Film se zaměřuje na slovenského malíře Juraje, který žije v Praze a dosáhl Kristových let, tedy pomyslného středu života a je před ním rozhodnutí jak bude pokračovat. Seznává, že doposud se mu dařilo vyhýbat se veškerým závazkům, nicméně to se nezdá jako dobrá strategie do budoucna. V rozhodování mu může pomoct smrt bratra Andreje. Film také zachycuje nesnášenlivost mezi Slováky a Čechy.

Technické zpracování se vyznačuje živou barvou , čehož je docíleno vysokými kontrasty záběrů. Také obsahuje některé experimentální prvky, jako barevné záběry vkládané do jinak černobílého filmu, nebo prohazování objektivu.

Hrají
 Jirí Sýkora - Juraj
 Jana Stehnová - Jana
 Vlado Müller - Andrej
 Miriam Kantorková - Marta
 Mária Sýkorová - 	Granny
 Viktor Blaho - Juraj's father
 Zdenek Týle - Pelnár
 Jirí Stehno - Chaplain
 Robert Krásny - Marcel

Externí odkazy
 Kristove roky na jakubiskofilm.com

  Kristove roky na 1. SFD

Filmy z roku 1967
Československé dramatické filmy
Slovenské filmové komedie
Československé černobílé filmy
Filmy Juraje Jakubiska

redpajama_set_name: RedPajamaWikipedia


text:
Klaipėda Chamber Orchestra on Its Way to Italy
Date of the event: 2022 May 5
Start of the event: 6.30 pm
Place of the event: Klaipėda Concert Hall
Klaipėda Chamber Orchestra
Artistic Director and Soloist Mindaugas Bačkus (cello)
Soloists: Giuseppe Nova (flute, Italy), Nijolė Dorotėja Beniušytė (harpsichord)
Programme: Antonio Vivaldi, Roberto Molinelli, Wojciech Kilar, Arvydas Malcys, Justė Janulytė
Tickets 14 Eur
The repertoire of the Klaipėda Concert Hall is being substantially enriched through collaboration between the Klaipėda Chamber Orchestra, Italian flautist Giuseppe Nova and Lithuanian harpsichordist Nijolė Dorotėja Beniušytė who currently lives in Italy. The orchestra has been working in tandem with the two soloists for the second year in a row. Together they will search for ways to combine Italian Baroque music with the new forms of expression found in the work of contemporary composers. The current programme rests on two main pillars – the work of Venetian genius Antonio Vivaldi and that of contemporary composers.
Vivaldi secured his place in history by perfecting the form of what would become the classical three-movement concerto and inventing the ritornello form in music. Some of his instrumental works have programmatic subtitles because he was interested in assigning certain moods and poetic images to changes in music's character.
The second half of this concert will feature Windharfe (2018) for harpsichord and strings by Justė Janulytė, a Lithuanian composer based in Milan and much admired by Italian audiences, as well as Isabella's Dream (2012) for cello and string orchestra by Lithuanian composer Arvydas Malcys, and Cello Concerto Twin Legends (2003) by Italian composer Roberto Mollineli. The programme will close with the symphonic poem for chamber orchestra entitled Orawa. Written in 1986 by Polish avant-garde composer Wojciech Kilar, it vividly represents the "spiritual essence" of the Tatra Mountains, as well as the vigour and spontaneity of highlander band performances.
This concert will become a meeting point for three soloists. Performances of Italian flautist Giuseppe Nova have drawn praise from many critics in various countries: The Washington Post called his performance "charming", Il Giornale eulogized his "enlightened performance" and "an extraordinary musical sense," while Gazzetta del Sud summed up his appearance as "a magic display of virtuosity."
Having completed studies in Lithuania and the Czech Republic, Nijolė Dorotėja Beniušytė embarked on a path of professional career and creative self-actualization in Italy. For fourteen years she has been actively involved in strengthening cultural cooperation between Lithuania and Italy.
The third soloist is a cellist distinguished for his unique artistic vision both as a soloist and artistic director of the Klaipėda Chamber Orchestra. Soon he will lead the orchestra on its Italian tour comprising five performances in the second half of May. His solo appearance with the orchestra is literally "on his way to Italy." Attend this concert to wish the orchestra the best of luck on its international tour!
50% off for schoolchildren, students, senior citizens and people with disabilities (appropriate cards to be shown);
50% off for children under 7 years of age (admitted only to the educational programmes);
Admission free for persons in wheelchairs (appropriate cards to be shown ) and 50% off for one accompanying person;
10% off for group bookings (20 and more tickets for one event);
100% off for schoolchildren and students of the Klaipėda art schools (appropriate ID cards to be shown), which include: Klaipėda Stasys Šimkus Conservatory, Klaipėda Juozas Karosas Music School, Klaipėda Eduardas Balsys Gymnasium of Arts, Klaipėda Jeronimas Kačinskas Music School, Klaipėda Faculty of the Lithuanian Academy of Music and Theatre, Klaipėda Adomas Brakas School of Art. A transaction fee of € 1.20 is applied when purchasing tickets via the BILIETAI ticketing system.
Name, phone, email and message fields are required
Soirées de Vienne
2023-02-01 Wednesday 18:30
Brass + Oboe
2023-02-03 Friday 18:30
Family concert
Concert for kids
Rhythm Games 5
Klaipėda Carillon Guided Tour
Resonant Universes
Let's Talk About Love in French
2023-02-14 Tuesday 18:30
Ukraine–Lithuania–Europe
The Orchestra of Playful Music. Episode 28
2023-02-23 Thursday 12:00
The Seven Last Words of Christ
Music from the Swiss Alps
This, That and the Other
To a Rising Bird

redpajama_set_name: RedPajamaCommonCrawl


A logic model is a visual summary of what your program does. We use a collaborative process to ensure the logic model accurately reflects your program as well as meets the needs of both development and program staff. Traditional logic models include components such as inputs, outputs, outcomes, activities, impact, and so on. We customize the logic model, to ensure the components that are a true reflection of your program are included. We also ensure your model aligns with your brand identity, using the colors and style that align with your brand message.
Do you need a database, but not sure what system and/or how to organize the information? This assessment will dive deeply into your program data management needs. The assessment results will position you to more easily identify what database vendors are the best fit for your organization. Evaluation into Action is also available to work with current database vendors to serve as a bridge between your database needs, and the database vendor's capabilities. We do not endorse any particular database vendor.
A picture is worth a thousand words. We help you define the key points you want to communicate, and develop how to illustrate them. We apply data visualization in the logic model, program design, and reports.
A comprehensive literature review digs deeply into your topic. It is an effective method to learn from others who have developed programs before you. We ensure your questions are answered, so you can use the literature review results as a springboard to launch a new program, expand a current one, and/or supplement development efforts.
Your passion can't be measured.
Chari did a terrific series of meetings with my team.
Chari did a terrific series of meetings with my team. She captured their pride in the work they do and the dedication they have for the Foundation in a logic model that reflects 100% buy in and the organic nature of the work we do. I would bring her back for other work.


Bard Magic 3 Go - 6" Hydrophilic Female Catheter has a self-hydrating coating that does not need to be activated with saline or lubricating jelly prior to use. The Magic 3 catheter is made from three layers of silicone, which increases comfort and ease of use. The ergonomic insertion sleeve allows for touch-free catheterization. The four drainage eyelets drain the bladder quickly. This silicone intermittent catheter is latex free.


text:
How to Be Happy, According to Albert Einstein
A 1922 note containing the undisclosed theory just sold for $1.3 million.
By Diana Bruk
Albert Einstein has a lot of famous quotes, most of which you probably grew up staring at in a classroom poster:
Insanity: doing the same thing over and over again and expecting different results.
Life is like riding a bicycle. To keep your balance you must keep moving.
Try not to become a man of success, but rather try to become a man of value.
But there's one crucial piece of wisdom–the secret to happiness–that he hadn't shared… until it was recently discovered among notes written to a courier in 1922.
According to multiple reports, the physicist was staying at the Imperial Hotel in Tokyo while on a lecture tour of Japan. By then, the 43-year-old was already world famous and respect in his field, having just won the Nobel Prize in Physics the year before. It appears even Nobel Prize winners can make simple mistakes, however, and the scientist found himself without any tip to give his hotel bellboy. So, instead, two notes, on which he wrote the keys to living a happy and unfulfilling life.
"Maybe if you're lucky those notes will become much more valuable than just a regular tip," he reportedly told him.
He was right, as well, since, on Tuesday, the note sold for a whopping $1.3 million at the Winner's auction house in Jerusalem, Israel, to a European who wished to remain anonymous. This far exceeded the estimated price, which was only $5,000-$8,000, the auction house reported.
So, what did the notes say?
One held one of his oft-quoted maxims: Where there's a will, there's a way. This one sold for only $240,ooo, according to the auction house.
But the other one said something that had previously been lost to the annals of history: A quiet and modest life brings more joy than a pursuit of success bound with constant unrest.
OK, so, yes, maybe it's not really that much better than what you would get from a fortune cookie, but it's kind of an interesting thing to hear from a man who became a groundbreaking historical figure due to his tireless pursuit of science. Was Einstein, in a way, indicating that he wished he had lives a simpler, less ambitious life?
"What we're doing here is painting the portrait of Einstein – the man, the scientist, his effect on the world – through his writings," Roni Grosz, an Einstein archivist at Jerusalem's Hebrew University, said of the significance of the memo. "This is a stone in the mosaic."
For more advice on living your best life, follow us on Facebook and sign up for our newsletter now!
Diana Bruk
Diana is a senior editor who writes about sex and relationships, modern dating trends, and health and wellness.	Read more
Feel Good • How-To • Mental Health
The Single Most Effective Way to Boost Your Sex Appeal
Self deprecation is the most lethal weapon in any ladykiller's arsenal.
25 Ways to Transform Yourself into a Sex God
Bonus: You'll also be a much, much healthier man.
The 30 Ways That Exercise Boosts Your Sex Life
As if you needed any further reason to look and feel your best.


text:
Dearman is a surname. Notable people with the surname include:

Glyn Dearman (1939–1997), former child actor whose acting career spanned almost two decades
James Dearman (1808–1854), English professional cricketer
John Dearman, Grammy Award-winning classical guitarist
Louise Dearman, British musical theatre performer


text:
Il Palazzo del Podestà (the Lord's Residence)
Published by Ufficio Turistico at 12 November 2016
lord's residence
medieval viallage
Also known as the Justice Palace or The Magistrate Palace, it overlooks Piazza Garibaldi and was built around the first half of the XIII century, after Massa Marittima became independent (1225). The structure hasn't been architecturally changed but the building has been employed to carry out various functions through the centuries. It was originally created to be the Podesta residence, the highest authority, whose role was to take care of justice affairs. A multitude of crests can be noticed on the façade: they all represent the Lord's families who ruled Massa Marittima through time. Two examples are the black-and-white Balzana and the rampant lion, both symbols of Siena.
The building has also been used as court and more recently as prison until the '70s. It is nowadays the Archaeological Museum of Massa Marittima, organized in two main sections: the prehistorical and the Etruscan one and the Tourist Office.
Something curious…
On the façade, next to the stairs that lead to the entrance, if you pay attention you can notice two elements that you would otherwise ignore. The first is a 1,6mt long horizontal groove, once called "braccio massetano" (braccio=arm): the ancient measurement unit of Massa Marittima. The second is a big iron ring embedded in the travertine: this is the berlina (pillory), where the prisoners sentenced to death used to be tied up to be publicly displayed.
Le Fonti e il Palazzo dell'Abbondanza
Cathedral of San Cerbone
Scrivi all'Ufficio Turistico


text:
Hyundai will soon announce the 2023 Ioniq 6 electric sedan.
The company has published the first real photos of its future electric car.
(Source: insideevs.com)
The photos show smooth surfaces, sporty bumpers, beautifully designed alloy wheels, pixelated LED lights. Instead of conventional side mirrors, side cameras are installed.
Like the Ioniq 5 crossover, the Ioniq 6 sedan uses the Parametric Pixel design feature, including pixel LEDs on the third brake light and vertical reflectors at the rear. The headlights and taillights are also made from pixelated LEDs, but these are not visible in the photos.
Compared to the Ioniq 5, the Ioniq 6 has a lot more kinks in the design, which is fine if the Prophecy Concept hints at the look of a production model. The photo of the C-pillar shows that the Ioniq 6 has a sloping roofline, which is one of many design elements that improve aerodynamics. You can also see retractable door handles.
The Ioniq 6 powertrain is only known to run on the Hyundai Motor Group's E-GMP EV platform, which is shared with the Ioniq 5 and Genesis GV60. The automaker's electric car will offer single-engine and dual-engine configurations with rear-wheel drive and all-wheel drive, respectively.
Rumor has it that the Ioniq 6 will feature a larger 77.4kWh Ioniq 5 battery paired with a 300hp electric motor.
Xpeng unveils the G9 electric SUV
Volkswagen has unveiled a new flagship electric car ID. Aero.


Home > News > A Piece of Cake!
As well as practising skills of designing, co-operating, evaluating, writing and reading, the children had a lot of fun expressing their creative sides through cookery. The results look (and taste!) fantastic. Please check the relevant class blogs for more coverage.


To uninstall tinymce just follow these instructions.
Are you having problems? You can always add tinymceagain by following the instructions at this link.
This will remove just the tinymce package itself.
This will remove the tinymce package and any other dependant packages which are no longer needed.
If you also want to delete your local/config files for tinymce then this will work.
tinymce is not dependent on any other packages.


text:
Maria José Conceição  (Januária, ), mais conhecida por Maninha, é uma médica e política brasileira filiada ao Partido Socialismo e Liberdade (PSOL). Pelo Partido dos Trabalhadores (PT), foi deputada distrital e federal pelo Distrito Federal.

Biografia
Nasceu em Januária, Minas Gerais, Filha de José Martins Vieira e Edelzuite Araújo Conceição. Ingressou no curso de medicina da Universidade de Brasília (UnB) em 1967. No ano seguinte, entrou para o movimento estudantil que fazia oposição à Ditadura Civil-Militar. Em 1968, Quando ocorreu a morte do estudante Edson Luís no restaurante Calabouço da UFRJ, participou dos protestos e mobilizações estudantis na UnB. Esses protestos foram reprimidos pelos militares que invadiram a universidade e prenderam mais de quinhentos estudantes, além de provocar a morte de um deles. Maninha foi perseguida e se tornou prisioneira política da Ditadura Civil-Militar.

Formada em medicina na Universidade de Brasília em 1974, ingressou no serviço público como funcionária da Secretaria de Saúde do Distrito Federal em 1977. Foi fundadora e Presidente do Sindicato dos Médicos do Distrito Federal por 12 anos e entrou para o atual Instituto Nacional do Seguro Social (INSS) em 1979. Após o bipartidarismo esteve no Partido Democrático Trabalhista (PDT) e em 1982 tomou assento no Partido dos Trabalhadores (PT), integrando o diretório distrital do partido durante vinte anos. Presente no congresso de fundação da Central Única dos Trabalhadores (CUT), participou da Associação Médica de Brasília e foi Secretária Geral da Federação Nacional dos Médicos. Ligada à esquerda do PT, fez parte da tendência petista Força Socialista.

Deputada distrital
Nas eleições de 1994, elegeu-se deputada pelo PT. Foi relatora da Comissão Parlamentar de Inquérito (CPI) que investigou a ocupação irregular de terras públicas no Distrito Federal, denominada CPI da Grilagem e também foi relatora da CPI das Drogas no Distrito Federal. Integrou também como membro titular a Comissão de Constituição e Justiça. Afastou-se do mandato legislativo em 1996 para exercer, a convite do então governador Cristovam Buarque (1995–1998), a função de secretária de Saúde. Em sua gestão, a Secretaria de Saúde do Distrito Federal criou o programa Saúde da Família, que mais tarde foi adotado por outros governos.

Deixou secretaria em abril de 1998, a fim de atender às regras de desincompatibilização, e no pleito de outubro foi reeleita deputada distrital. Teve a segunda maior votação ente os deputados distritais, obtendo mais de 24 mil votos. Empossada em fevereiro de 1999, foi primeira-secretária da Câmara Distrital e participou como membro titular da Comissão de Economia, Orçamento e Finanças. Ainda em 1999 tornou-se diretora da União Nacional dos Legislativos Estaduais (Unale).

Deputada federal
No pleito de 2002 foi eleita deputada federal pelo Distrito Federal na legenda do PT. Assumindo o mandato em fevereiro de 2003, participou como primeira-vice-presidente da Comissão de Relações Exteriores e de Defesa Nacional. Foi também relatora da Comissão Especial da Área de Livre Comércio das Américas (Alca) e membro titular da comissão especial que analisou a proposta de emenda constitucional da reforma da previdência (PEC n° 40). Entre 2000 e 2004, Maninha também presidiu a Confederação Parlamentar das Américas, entidade que congrega parlamentares de todo o continente americano.

Em junho de 2003 manifestou-se contra a reforma da previdência, projeto de interesse do governo Lula e que o PT decidira apoiar. Essa oposição levou à sua destituição da comissão especial pelo líder do PT na Câmara dos Deputados, Nelson Pelegrino. Na votação da reforma, em agosto de 2003, absteve-se no primeiro turno e não compareceu à sessão do segundo turno porque se encontrava no Equador. Essa posição resultou em punições, tendo o Palácio do Planalto demitido seu marido, Antônio Carlos de Andrade, do cargo de secretário-executivo da Fundação Nacional de Saúde (Funasa), e a executiva nacional do PT suspendido suas atividades partidárias por 60 dias.

Em 2004 integrou a corrente petista Ação Popular Socialista (APS) com os deputados Ivan Valente e Edmilson Rodrigues, criada a partir da fusão das tendências de esquerda do PT. Em janeiro de 2005, tornou-se vice-líder do PT na Câmara dos Deputados. Em maio desse ano, quando foi divulgada uma fita de vídeo mostrando o ex-funcionário dos Correios Maurício Marinho negociando propina com empresários interessados em participar de uma licitação, manifestou-se a favor da criação de uma Comissão Parlamentar Mista de Inquérito (CPMI) para investigar os casos de corrupção nos Correios, pedida pela oposição. Em agosto de 2005, deixou a vice-liderança do PT.

Em setembro, devido aos resultados do primeiro turno da disputa pelos cargos da executiva nacional do PT, à derrota de Plínio de Arruda Sampaio, candidato à presidência do partido, e à decisão da APS de deixar o PT, desvinculou-se da agremiação e ingressou no Partido Socialismo e Liberdade (PSOL). Ainda assim, não quebrou com o governo Lula, e permaneceu na base de apoio. Em novembro de 2005, Lula concedeu-lhe a Ordem do Mérito da Defesa no grau de Grande-Oficial.

Quebra com o PT
De março a junho de 2006 foi vice-líder do PSOL na Câmara dos Deputados, e a partir de agosto assumiu a liderança do partido. Nessa condição, entrou com uma representação no Tribunal Superior Eleitoral (TSE) pedindo a cassação do registro de candidatura do presidente Lula (PT), que concorria à reeleição, sob a acusação de abuso de poder econômico por usar recursos públicos em sua campanha. O pedido foi indeferido pelo TSE.

Exerceu a liderança do partido até outubro, quando disputou a reeleição nas eleições de 2006 na legenda do PSOL. Sem apoio do PT, não foi reeleita e deixou a Câmara em janeiro de 2007, ao final da legislatura. Em sua nova legenda foi candidata a reeleição e tentou duas vezes voltar ao mandato de deputada distrital, mas não obteve sucesso em nenhuma das tentativas devido ao fato do PSOL do Distrito Federal não ter alcançado o quociente eleitoral em 2010 e em 2014.

Naturais de Januária
Deputados federais do Brasil pelo Distrito Federal
Deputados distritais do Distrito Federal (Brasil)
Membros do Partido Socialismo e Liberdade
Sindicalistas de Minas Gerais
Socialistas do Brasil
Mulheres do Distrito Federal (Brasil) na política
Grandes-Oficiais da Ordem do Mérito da Defesa


What Characters Would You Like To See Return?
Re: What Characters Would You Like To See Return?
If George returns there should be a sequel to Steam Roller. It would also give Sir Handel a staring role.
To be honest I'd actually love to see that.
Honestly I'd like to see the Pack characters again. They would make for some great comedy relief on most episodes, as they seem to make a lot of mistakes, especially Ned. I'd like to see them in a few episodes.
And it might make a few plot points, like instead of having the signalmen fall asleep, maybe the Pack were working on the bridge ahead.
People apparently want Terence back too and I've heard a few say Elizabeth too.
Oh yes, I forgot Terrence; thanks Don.
Stepney is a character that I wouldn't mind returning to the series, as I've always liked him. However, considering that he's a real engine, perhaps they should make that clear if he does return, or just have him visit again.
I'm surprised that Molly is so high. I like how she looks, and I like her overall, and indeed, wouldn't mind seeing her return, but that she was liked more than some other characters (for instance, Elizabeth) is quite surprising!
George, in my opinion, should indeed return. His rivalry with the engines would add quite a lot to the series, and would make for some interesting scenes.
With Alfie, Oliver, Max, and Monty returned in SLOTLT, I don't think it's too much to ask for the rest of them to return! Ned, for one, would work well together with Marion.
Trevor is a classic character – saved from scrap, he has warmed many a heart. Perhaps this could add something for the series; Trevor finds someone about to be scrapped, and saves it...?
Murdoch is one of the best characters from Season 7. He is the strongest engine on the Island, and thus would be quite useful with heavy loads. Perhaps he gets into a rivalry with Spencer?
I was surprised to see how popular Arthur was, but it makes sense – he and Henry could work together quite well when it comes to the Flying Kipper, as Arthur actually likes fish.
Terence is definitely an underdone character. He hasn't appeared very often, even in the Railway Series. If he returned, he would most definitely add something to the show. Perhaps a flashback to "Thomas, Terence and the Snow"?
Duke is a beloved character who only got a spotlight in four episodes. If he returned, it would definitely be nice to hear him talk of 'the old days', as he's one of the oldest – and wisest – engines on Sodor.
Not surprised here! BoCo is one of the most mentioned characters when it comes to returning to the series. He last appeared in Season 5 – not very long for a character, and despite being somewhat bland, it would be nice to show that some diesels aren't bad at all; nay, quite the opposite. I'd definitely like to see him return, and it's nice that he got the top spot here.
The problem with Mighty Mac is, he's pretty much run his course. His initial, starring episode illustrated exactly what the writer intended to show- how two engines of entirely different personalities, yet are stuck together, have to work together in order to be really useful. Case and point- the subsequent episodes Mighty Mac appeared in- about 16 episodes or so between Season 9 and 12, he always appeared in a cameo capacity, either not speaking, or saying something but not really contributing anything to the plot.
In short, while I do like the uniqueness of the double Fairlie, I just can't get past Mighty Mac's one-dimensional character and lack of potential.
Okay, I'm a bit biased here since I grew up pretty much on top of the old PRR, and it's a long shot, but I'd say Hank.
1) We have Connor and Caitlin, both of whom are based off of contemporaries of Hank's basis (and rivals in the NYC-CHI market). Creates potential for some rivalries and is very much reminiscent of the old TRS-based episodes. With the new writers, this could get very interesting.
2) The two surviving locomotives in his class have already been accounted for. This leaves his backstory very much up for grabs. Was he a wreck bought at a knockdown price and operationally restored, for instance?
3) He only appeared in one episode, and that was a pre-CGI episode at that. Characterization is completely up for grabs and putting him into scenarios other than the one bottle episode he was in would help. For instance, apart from a rivalry with Connor and Caitlin, how would he interact with Gordon or Flying Scotsman?
4) His absence helps a complete character retcon or reboot. We already know how he was a flat character in his only appearance, but taking him out of the bottle episode and putting him in a larger cast would only help character development. Remember that TRS was originally created as a way to entertain a kid when he was sick with the measles with secondary moral characteristics. His sole appearance in a "pride goeth before the fall" episode did not fulfill any character development beyond "big American loco".
Yeah I don't really see how any characters introduced between Seasons 9-12 who haven't appeared in the CGI series yet would return.
GeorgeCarlin wrote: Okay, I'm a bit biased here since I grew up pretty much on top of the old PRR, and it's a long shot, but I'd say Hank.
I think the thing with Hank is (correct me if I'm wrong) that he's too big to fit on Sodor. Otherwise, other fans might like him better.
I think there's still potential with him, if not as a main character, than as a secondary or background character. The writing team we have now is utterly brilliant - I'm sure that they could do something with Mighty Mac.
Rule of thumb: If it's American or Canadian, the loading gauge is too big for Sodor. Really, the only exception to this is Rosie, because her basis was American-built but designed for export to Britain. If Hank goes due to loading gauge, there go Connor and Caitlin (to say nothing of Sam-apparently Lady's coal dust keeps Sodor from tipping over as well).
I'm pretty sure that Brenner, Moore, et al are aware of the loading gauge problem and have already dismissed it as confusing to younger viewers. You've already got track gauge worked into the plot, loading gauge would just induce migraines on kindergarteners, and we can't have that, now, can we?
TBH, I don't really care what the writers do. I even like the 'Dark Era' (outside of some really bad episodes, like "Wonky Whistle", and really bad characters, like Billy), so I personally would be fine if he did return.
I would like to see BoCo return the most.
JLT090 wrote: I would like to see BoCo return the most.
if so, voice him by Richard E. Grant pleez!
But I would like to see his personality done right, because I don't want a BoCo that is like James or Gordon.
Although, I expect the current team to do a good job with his personality though.
Out of all the characters I want to return, I want BoCo and Duke (in a tie) the most.
ThomasSirHandel wrote: Out of all the characters I want to return, I want BoCo and Duke (in a tie) the most.
I really want Duke to return, along with maybe several other Skarloey Railway engines.
Finn Tracy wrote: I really want Duke to return, along with maybe several other Skarloey Railway engines.
if Ivo Hugh does appear in the show, Freddie would feel a bit jealous.


text:
Blood, Iron, and Gold
How the Railroads Transformed the World
by Christian Wolmar
Public Affairs Logo
ON SALE: March 1st 2011
Genre: Nonfiction / Transportation / Railroads / History
The opening of the world's first railroad in Britain and America in 1830 marked the dawn of a new age. Within the course of a decade, tracks were being laid as far afield as Australia and Cuba, and by the outbreak of World War I, the United States alone boasted over a quarter of a million miles. With unrelenting determination, architectural innovation, and under gruesome labor conditions, a global railroad network was built that forever changed the way people lived. From Panama to Punjab, from Tasmania to Turin, Christian Wolmar shows how cultures were enriched, and destroyed, by one of the greatest global transport revolutions of our time, and celebrates the visionaries and laborers responsible for its creation.
CHOICE Magazine, January 2011
"The book is gracefully written, incorporates leading secondary sources, and includes intelligently selected illustrations….Highly recommended."


text:
Spanish Urban Rail Infrastructure Concessions Sold
SPAIN: Allianz Capital Partners and Bastion Infrastructure Group have bought construction firm Comsa Emte's stakes in three urban rail infrastructure concessions for an undisclosed price.
Two of the concessions are for the management of infrastructure on Barcelona metro Line 9. The third covers the operation and maintenance of light rail lines in western Madrid, where Comsa Emte held an 18·7% stake in concessionaire Metro Ligero Oeste.
ACP and Bastion said the fully-operational assets offer strong yield generation under long-term availability-based payment schemes, with a remaining weighted average life of 26 years.
Jorge Miarnau, President of Comsa Emte, said disinvestment of the assets was 'part of the deleveraging strategy of the group, in order to strengthen its development in the key activity areas of infrastructure and civil and railway engineering, in both the national and international markets.'
Rubicon Infrastructure Advisors acted as financial advisor to Comsa Emte, while BBVA Corporate Finance advised ACP and Bastion. Legal advice was provided to Comsa Emte by Cuatrecasas, Gonçalves Pereira and to ACP and Bastion by Uría Menéndez.
This article was published on June 5, 2015.


"I found myself wondering why a man of Edward Said's intelligence should feel compelled to encase his modest but perfectly acceptable insights in a fantastically structured armoring that bristles at every point with a fashionable authority . . ."
"There is a profoundly interesting concept in this book, and underneath the self-posturing verbiage there is an acute analytical mind at work, but the book, unfortunately, is almost impossible to read."
"On one level Mr. Said's book is one of the most interesting explanations of the Palestinian case since George Antonius's 'The Arab Awakening' was published in 1938. . . . But both the quality of the book and the strength of the author's case are marred by inconsistency."
"[A]s Edward Said demonstrates in 'Covering Islam,' resorting to poster colors is a temptation by no means solely confined to journalists. . . . A scholar like Mr. Said ought to have sifted and weighed the soil of what are now historical events with the meticulousness of an archeologist."
". . . an extraordinary book that yokes the text of Mr. Said . . . with the work of the Swiss photographer Jean Mohr. This is not a normal tandem of word and image, neither a coffeetable book with a long, glorified caption nor a work of prose propped up here and there by sheaves of shiny pictures. Mr. Said writes to the photos so assiduously and with such effect as to make one powerful essay."
"There are some wonderful personal thoughts on music and musicians in 'Musical Elaborations' . . . At other times the text does not flow easily."
"If it is not a conceptual breakthrough on the same order as 'Orientalism,' it nevertheless stands as an urgently written and urgently needed synthesis of the work in a field that, more than any other critic, Edward W. Said has himself defined."
"[R]eading Mr. Said is like being yelled at for hours on end, and it takes a good and willing ear to appreciate his calmer passages of insight . . . Mr. Said is a master of overstatement whose numbing invective often vitiates his arguments. But he does put his finger on a crucial truth about the way we see Arabs . . ."
"Mr. Said mounts his challenge from high moral ground, having long favored a political solution to the Arab-Israeli conflict. But the Oslo compromise he finds contemptible. . . . Their sorrow and their anger are good, scolding stuff, an articulate tirade against perceived folly and uncritical applause."
"Said draws rather grand political parallels and conclusions from his personal experiences of alienation and loneliness . . . This lends a pompous tone to an account that when it is kept truly personal is often touching . . ."
"Said's prose is elegant and muscular, his moral vision unwavering. On the other hand, it seems awfully easy to condemn so indiscriminately . . . His voice is deep, rich and courageous in what is often a scripted and dishonest international dispute."
This profile of Said discusses his double roles as both "a frequently cited writer about the more hermetic styles of contemporary criticism" and "one of the leading spokesmen in this country for the Palestinian movement."
Said was invited to discuss a Middle East peace plan with Secretary of State George P. Shultz, despite the complaints of Prime Minister Yitzhak Shamir of Israel, who said that the meeting violated a United States commitment not to meet with members of the Palestine Liberation Organization.
Calling the Israel-P.L.O. agreement an "instrument of Palestinian surrender," and saying that the P.L.O. leader will likely become "Israel's enforcer" once the accord is carried out, Said called on Arafat to resign.
Security agents acting in the name of Yasir Arafat's leadership banned the sale of Said's books as part of a crackdown against dissent.
The writing of Said's memoir had coincided exactly with his treatment for leukemia, which was diagnosed after a routine cholesterol test in 1991 and which is likely one day to end his life.
Said was accused in Commentary magazine by the Israeli scholar Justus Reid Weiner of misrepresenting his early childhood in order to lend poignancy and power to his political stance.
A photo taken of Said hurling a rock toward an Israeli guardhouse generated controversy at Columbia University, where Said is a professor.
"If critics were to be turned into parlor games, George Steiner would be Monopoly. I don't intend this to be an unkind comment, because I enjoy the game. . . . Steiner is a brilliant gamesman whose career and many rolls of the dice have finally won him control of the board, a position he calls the language revolution."
"His books, no matter what the subject, are really descriptions of himself in America . . . It is as if, with the growing dehumanization of life here, Goodman feels that he is all he has. This is both a very courageous and, I think, serious position, and it is a more universally held one than most people are willing to admit."
In an article written during the Yom Kippur War, Said writes "there is really no such thing as a divinely chosen race."
"Lebanon is but the latest and the most dramatically articulated instance of what has taken place in the once-romantic Near Orient since World War II. Crisscrossed with incredibly complex and amoral weapons deals, the whole region is miserable, the people poor, frightened and abused despite pockets of enormous wealth."
"Until the Shah's 'stable' regime collapsed, phrases like 'non-Arab' and 'Indo-European' were routinely used to express approval of Iran; now of course the adjective 'Islamic' recurs numbingly, and with it hints of a sinister 'Islamic resurgence,' trailing anti-Semitism, reactionary fundamentalism, totalitarianism."
"Having devastated southern Lebanon, waged openly declared war with American weapons on the Palestinian people, overtly threatened and intervened in the lives of millions of Arabs, Israel has become an outlaw state. Yet it continues to be America's major strategic regional asset . . ."
"Is this whole pattern characteristic of 20th-century exiles and emigres, or is it endemic to a national literature of chronic hopelessness to be found in the endured predicaments of peoples like the Poles, Jews, Irish, Armenians and, I would want to add, Palestinians?"
"[D]uring the years of his greatest ascendancy (1937-54), as conductor of the NBC orchestra (which was created for him), Toscanini was like nothing else in American musical life -- the subject of a cult whose uncontested rule, according to Mr. Horowitz, eliminated all rivals and made his every demand a law."
"On the very day that President Reagan admonished Israel for its harsh behavior in Gaza, this country handed Israel an additional $200 million in grants, even though Israel already accounts for a greater proportion of our total foreign aid budget than any other foreign country."
"[Foucault] was a prodigious researcher . . . Foucault resorts to maddening, unsupported assertions . . . But despite these flaws there is no doubt that at least half of 'Power' is well worth having and making the effort to understand."


text:
Jim Wilkins Gets His Diploma
[nivoslider id="1937"]
Veteran receives Leo diploma 7 decades after dropping out to fight in WWII
(This story is reprinted with permission of the Daily Southtown) Mike Nolan, Daily Southtown
One of the biggest regrets in Jim Wilkins' life was that he never graduated high school. The Orland Park man's formal education ended Jan. 7, 1943, when he turned 17 and enlisted in the Navy, never completing his junior year at Leo Catholic High School. Now 89, Wilkins returned to Leo on November 6 to receive his diploma and formally become an alumnus. "I really do feel like I'm back, the spirit of it all," he said after the presentation, which was part of Leo's annual ceremony to honor military veterans. Veterans of different wars and branches of the military, along with members of Wilkins' family and dozens of Leo students, gathered in the courtyard in front of the school. "I'm honored to have served our country," Wilkins told them. Afterward, he placed a wreath at the Leo War Memorial, which honors alumni who lost their lives while in the service of their country.
Wilkins, who turns 90 in January, has been involved for about 30 years with Veterans of Foreign Wars Bremen Post 2791 in Tinley Park, and his father, Harry, served in the Army during World War I, joining the fighting in Europe. While Wilkins' education was cut short, he constantly reads about subjects that interest him, including books about World War II, politics, business and nutrition, his daughter, Cathy Lipuma, said. She's one of his four children. "He is the biggest influence in our life and a wonderful example to all of us," the Orland Park woman said. "It's just wonderful to still have him." Wilkins' wife of 63 years, Florence, said it was a moving ceremony and related the early years of their courtship. "We met at a dance, then we started dating," she said. They wrote to each other while he was deployed with the Navy in the Pacific, "and when he was home on leave he got a ring" and proposed, she said. The couple are members of St. Stephen Deacon & Martyr in Tinley Park, whose pastor, James Finno, is also a Leo alumni.
While Wilkins was forced to wait until he turned 17 to enlist, it wasn't his first try at joining the armed forces. Just 15 and in his sophomore year at Leo, Wilkins doctored his birth certificate — altering the year of his birth, 1926, to make it appear he was born a year earlier. It was two days after the attack on Pearl Harbor and the country's sudden entry into a war, the scope of which would be broader than the Great War that Wilkins' father had fought. "That's all we were talking about," Wilkins said of the attack. He played hooky from school and joined the rush of other young men at the federal courthouse to enlist in the Navy. Wilkins said he really wasn't sure why he picked that branch, although a cousin was serving in the Navy at the time, and Wilkins had been part of the Boy Scouts of America's Sea Scouts program.
"I passed the physical and everything," he said, although one doctor, suspecting he was too young to serve, quizzed him about his age. The young seaman's plans were capsized, however, by a photographer for Chicago's Herald American newspaper. A front-page photo — Wilkins brought a copy of the paper to Friday's event — clearly shows him in the foreground with a headline "Chicagoans Rush to Join Navy."
His family lived at 74th and Peoria, within walking distance of Leo, and "everybody on the block knew," as well as some of his high school classmates and, most importantly, his family, about his courthouse visit. If a letter confirming his enlistment ever did come to the house, he didn't see it. When he did finally join the Navy, Wilkins trained as a radio operator and served on a landing ship, LST-278, which carried troops and tanks into battles on islands such as Saipan, Tinian and Peleliu. The ship was badly damaged as it was battered by hurricane-force winds in October 1944. He was discharged in December 1946, then went into the reserves in 1950, assigned as a radio operator on board the submarine USS Catfish, before being discharged in February 1952. He spent 35 years working for Illinois Bell.
The story of how he got the diploma involves a wonderful collision of circumstances. During Tinley Park High School's graduation ceremony this past May, Wilkins, the Bremen VFW post's official photographer, was taking pictures of the post's color guard at the event. Also shooting the graduation was professional photographer Chuck Furlong. Seeing Wilkins with a camera, Furlong started chatting with Wilkins and asked him whether this level of pomp and circumstance had been part of his own graduation, with Wilkins telling him he'd never completed high school and that it was one of his biggest regrets. It might have ended there, but sometime later, Furlong asked Wilkins where he had attended high school, learning he'd gone to Leo. The photographer Furlong, as it happens, is a brother of Rich Furlong, president emeritus of Leo's alumni association. Calls were made, and Dan McGrath, Leo's President, determined that Wilkins would get his diploma. Rich Furlong said the news was initially kept a secret from Wilkins and his family, but when the man was told of the diploma plans, "the first words out of his mouth were 'I don't deserve this.'"
At the ceremony, Furlong told the crowd "we're going to right something," noting the circumstances that resulted in Wilkins not finishing school, and that "72 years later, we're here to give Jim a long-overdue diploma."


text:
Spominski znak Limbuš je spominski znak Slovenske vojske, ki je podeljen veteranom TO RS za zasluge pri spopadu za Limbuš med slovensko osamosvojitveno vojno.

Opis

Nosilci
 seznam nosilcev spominskega znaka Limbuš

Glej tudi

Limbuš


In 1914, attorneys for world heavyweight boxing champion Jack Johnson, an African-American prizefighter, filed a brief for a new trial with the U.S. Court of Appeals, challenging Johnson's conviction under the Mann Act.
In 1998, Theodore Kaczynski, known as the "Unabomber," accused of sending bombs that killed and wounded people, pleaded guilty to all counts against him in California and New Jersey. He was sentenced to life in prison.
In 2008, Jose Padilla, a U.S. citizen accused of plotting to explode a radioactive "dirty bomb" in the United States, was sentenced to 17 years and 4 months in prison for aiding terrorists.
In 2008, Heath Ledger, star of Brokeback Mountain, A Knight's Tale and The Dark Knight, died of a drug overdose. He was 28.


text:
Tomáš Bábek (ur. 4 czerwca 1987 w Brnie) – czeski kolarz torowy, dwukrotny medalista mistrzostw świata i Europy.

Kariera
Pierwszy sukces w karierze osiągnął w 2008 roku, kiedy zdobył brązowy medal w wyścigu na 1 km podczas torowych mistrzostw świata młodzieżowców w Pruszkowie. W tej samej konkurencji zdobył też brązowy medal podczas mistrzostw Europy w Yvelines 2016 roku. Na tych mistrzostwach zwyciężył ponadto w keirinie. Na rozgrywanych rok później mistrzostw świata w Hongkongu zdobył brązowy medal w keirinie, przegrywając tylko z Azizulhasnim Awangiem z Malezji i Kolumbijczykiem Fabiánem Puertą. Trzy dni później zdobył srebrny medal w keirinie (ex aequo z Francuzem Quentinem Lafargue), w którym lepszy był jedynie Francuz François Pervis.

Linki zewnętrzne
 Profil na cyclingarchives.com

Przypisy

Czescy kolarze torowi
Ludzie urodzeni w Brnie
Urodzeni w 1987
Czescy olimpijczycy
Kolarze na Letnich Igrzyskach Olimpijskich 2020


University Medical Plaza | Dunn Associates, Inc.
This three-level medical office building with underground parking required special moment frames that use all field-bolted connections with extended plates. The mat foundation was chosen because the site's weak compressible soil and the water table is a short distance below the parking level, making most other foundation options costly.


text:
New 2023 ToyotaCamry SE Sedan
Sedan/5 seats
8 speed automatic
4T1G11AK7PU7728
Included Packages & Accessories
Premium Carpet Mat Set:
Charging and Connectivity Kit:
PDS - with Texas State Inspection
Vehicle Fueling (4 Gal.)
Blackout Package:
Premium Carpet Mat Set:$299
Charging and Connectivity Kit:$205
Mud Guards$169
Blackout Package:$299
Check out this 2023!
If you like to drive, you're going to love this car! Top features include front bucket seats, a tachometer, telescoping steering wheel, and cruise control. It features an automatic transmission, front-wheel drive, and a 2.5 liter 4 cylinder engine.
We pride ourselves on providing excellent customer service. Stop by our dealership or give us a call for more information.
Stay Home, Stay Safe – We'll Come to You
Experience this vehicle via video call and ask us any questions you have.
Test Drive At Home
We'll bring this vehicle to you for a no-obligation test drive.
We'll deliver the vehicle you want to your home and help you complete the paperwork.
Didn't expect car problems being new
By Michael | on Wednesday, September 30, 2020
This car has been a laughing joke matter. Battery problems. Electrical system codes. Transmission dose not shift correctly.…
Nice looking vehicle
By Great1 | on Tuesday, September 08, 2020
I finally got the 2020 Toyota Camry that I wanted. But after only six months the battery just went dead. This car is very nice looking and it's comfortable. After reading a lot of the other reviews on here with complaints about the battery, makes me realize, that this is a common issue. So, therefore it's not a reliable car. Especially if I don't know from one day to the next if my car is going to crank. That was my reason for getting a brand new car so that I could have reliable transportation. Seems like Toyota should address the issue. The service man at the dealer said that maybe something was left on or a door was left ajar.I didn't leave anything on or open. And that everything was fine. And that they charged up the battery instead of replacing it. After reading the comments on here I think what he said was a bunch of hogwash. I think it's just best for me to trade this in for something else. I thought that Toyota was supposed to be top of the line but from this experience I don't think so!…
On-going dead battery issue
By Brad T | on Friday, December 04, 2020
Bought the 2020 Camry SE for my wife. Beautiful engineering and styling BUT there is a big on-going and unresolved issue with the dead battery. We've had this car less than 6 months, very little mileage and the battery has gone dead twice. Each time it was taken to the dealer and both times they claim they do not know the cause. More than likely it is not the battery nor the charging system -- more than likely it's an electronic system that continues to draw substantial power after the vehicle is off. I have looked through the blogs and found many other people have complained about the same issue and all seem to be unresolved. Very frustrating.…
Toyota of Rockwall
Toyota Dealer
1250 East I 30
Rockwall, TX 75087
Directions To Dealership
Green Light Express Checkout
Green Light Price
Est. Finance
Est. Lease
Manufacturer (Conditional)
Qualified buyers get 4.99% APR for 60 months on a New 2023 Camry.
Military Personnel can get a $500 Rebate on a new Toyota model.
College Students and Recent Grads get $500 Rebate on select new untitled Toyota models.
Calculate MPG Savings
*Picture may not represent actual vehicle. Price varies based on Trim Levels and Options. See Dealer for in-stock inventory and actual selling price. All prices plus tax, title and license with approved credit. MSRP includes delivery, processing, and handling fees. Dealer doc fee of $150.00 not included in price. Prices may be different outside of each advertised period and do not necessarily reflect cash price at any other time. Pricing does not include dealer installed options. Dealer installed options vary depending on vehicle and may include items such as window tint, nitrogen, door edge guards, wheel locks etc. Please see dealer for details. While every reasonable effort is made to ensure the accuracy of this information, we are not responsible for any errors or omission contained in these pages. Please verify all information in question with Toyota of Rockwall.
2023 Toyota Tundra SR5 3.5L V6…
Truck CrewMax
2023 Toyota RAV4 XLE SUV
Toyota Motor Sales, U.S.A., Inc. (TMS) is pleased to provide dealers the opportunity to convey the above information. When reviewing a Toyota dealer's inventory, please note that all information, including but not limited to pricing and vehicle status, is provided by and is the sole responsibility of that dealer. As such, TMSis relying on the dealer to ensure the continued accuracy of the information provided. Any questions or concerns should be addressed with the applicable dealer. TMS disclaims all liability for any inaccuracies.


text:
Cal Am leaves Monterey Regional Desalination project
17 January 2012, source Desalination & Water Reuse
California American Water (Cal Am) announced on 17 January 2012 that it had withdrawn support of the agreements behind the Monterey Regional Desalination Project.
The company had proposed the project with Marina Coast Water District (MCWD) and Monterey County Water Resources Agency (MCWRA) in response to limits which will be put on its abstractions from the Carmel river by 2017.
"Desalination will be part of the Monterey Peninsula's future water supply, but the Regional Desalination Project will not be the vehicle to deliver it," said Cal Am president Rob MacLean. "Recognizing the severity of the state's cutback order, we must now move forward on an alternative water supply project as quickly as possible."
MCWRA, MCWD and Cal Am have been engaged in mediation since August 2011 and have been unable to reach agreement on how to address multiple challenges facing the regional project. However, MacLean stressed that a desalination project will still have to be developed.
Cal Am and Monterey County have agreed to continue discussions over resolving remaining project issues and finding a water supply solution, and have stated that they encouraged Marina Coast Water District to participate in these talks.
"Everyone is committed to finding a water supply solution for the Monterey Peninsula," said Monterey county supervisor Dave Potter. "With mediation ending and the environmental impact report stalled, we have an opportunity to more broadly engage the public and fix the Peninsula's water problem."
On 24 January 2012, the California Public Utilities Commission will hold a pre-hearing conference in San Francisco concerning California American Water's request to continue work toward the design and construction of a pipeline and water storage facilities, which were part of the Regional Desalination Project approved by the Commission and will be required for any of the 11 contemplated water projects.
The company prepared a study of water supply alternatives capable of meeting the area's water shortage late last year. The study identified 11 physical solutions, all of which require additional transmission and storage infrastructure. According to MacLean, obtaining Commission approval to proceed is necessary to ensure progress on a water supply project while the company determines its next steps.
"While we've elected to withdraw our support of the current Regional Desalination Project arrangement, we appreciate Marina Coast Water District and the Monterey County Water Resources Agency stepping up to the plate to be part of the water supply solution the Monterey Peninsula community so desperately needs," said MacLean. "A lot of valuable work has been accomplished that will still be applicable to a desalination project that needs to be developed."
MacLean added that any new water project will require permits or approvals from the California Public Utilities Commission, California Coastal Commission and the County of Monterey.
The Cease & Desist Order issued by the State Water Resources Control Board in 2009 set a schedule for pumping reductions on the Carmel River, which will cut the area's water supply by more than half in 2017 unless a new water project is developed. At less than 60 gallons (227 litres) per resident per day, California American Water customers on the Monterey Peninsula already have among the lowest per capita water consumption in the state.


text:
use crate::{account_address::AccountAddress, on_chain_config::ValidatorSet};
use diem_crypto::{
    ed25519::{Ed25519PublicKey, Ed25519Signature},
    hash::CryptoHash,
    Signature, VerifyingKey,
};
use serde::{Deserialize, Serialize};
use std::{collections::BTreeMap, fmt};
use thiserror::Error;

#[cfg(any(test, feature = "fuzzing"))]
use anyhow::{ensure, Result};
#[cfg(any(test, feature = "fuzzing"))]
use proptest_derive::Arbitrary;

/// Errors possible during signature verification.
#[derive(Debug, Error, PartialEq)]
pub enum VerifyError {
    #[error("Author is unknown")]
    /// The author for this signature is unknown by this validator.
    UnknownAuthor,
    #[error(
        "The voting power ({}) is less than quorum voting power ({})",
        voting_power,
        quorum_voting_power
    )]
    TooLittleVotingPower {
        voting_power: u64,
        quorum_voting_power: u64,
    },
    #[error(
        "The number of signatures ({}) is greater than total number of authors ({})",
        num_of_signatures,
        num_of_authors
    )]
    TooManySignatures {
        num_of_signatures: usize,
        num_of_authors: usize,
    },
    #[error("Signature is invalid")]
    /// The signature does not match the hash.
    InvalidSignature,
    #[error("Inconsistent Block Info")]
    InconsistentBlockInfo,
}

/// Helper struct to manage validator information for validation
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[cfg_attr(any(test, feature = "fuzzing"), derive(Arbitrary))]
pub struct ValidatorConsensusInfo {
    public_key: Ed25519PublicKey,
    voting_power: u64,
}

impl ValidatorConsensusInfo {
    pub fn new(public_key: Ed25519PublicKey, voting_power: u64) -> Self {
        ValidatorConsensusInfo {
            public_key,
            voting_power,
        }
    }
}

/// Supports validation of signatures for known authors with individual voting powers. This struct
/// can be used for all signature verification operations including block and network signature
/// verification, respectively.
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[cfg_attr(any(test, feature = "fuzzing"), derive(Arbitrary))]
pub struct ValidatorVerifier {
    /// An ordered map of each validator's on-chain account address to its pubkeys
    /// and voting power.
    address_to_validator_info: BTreeMap<AccountAddress, ValidatorConsensusInfo>,
    /// The minimum voting power required to achieve a quorum
    quorum_voting_power: u64,
    /// Total voting power of all validators (cached from address_to_validator_info)
    total_voting_power: u64,
}

impl ValidatorVerifier {
    /// Initialize with a map of account address to validator info and set quorum size to
    /// default (`2f + 1`) or zero if `address_to_validator_info` is empty.
    pub fn new(
        address_to_validator_info: BTreeMap<AccountAddress, ValidatorConsensusInfo>,
    ) -> Self {
        let total_voting_power = sum_voting_power(&address_to_validator_info);
        let quorum_voting_power = if address_to_validator_info.is_empty() {
            0
        } else {
            total_voting_power * 2 / 3 + 1
        };
        ValidatorVerifier {
            address_to_validator_info,
            quorum_voting_power,
            total_voting_power,
        }
    }

    /// Initializes a validator verifier with a specified quorum voting power.
    #[cfg(any(test, feature = "fuzzing"))]
    pub fn new_with_quorum_voting_power(
        address_to_validator_info: BTreeMap<AccountAddress, ValidatorConsensusInfo>,
        quorum_voting_power: u64,
    ) -> Result<Self> {
        let total_voting_power = sum_voting_power(&address_to_validator_info);
        ensure!(
            quorum_voting_power <= total_voting_power,
            "Quorum voting power is greater than the sum of all voting power of authors: {}, \
             quorum_size: {}.",
            quorum_voting_power,
            total_voting_power
        );
        Ok(ValidatorVerifier {
            address_to_validator_info,
            quorum_voting_power,
            total_voting_power,
        })
    }

    /// Initializes a validator verifier with a specified quorum voting power and total power.
    #[cfg(any(test, feature = "fuzzing"))]
    // This method should only used by tests and fuzzers to produce an arbitrary ValidatorVerifier.
    pub fn new_for_testing(
        address_to_validator_info: BTreeMap<AccountAddress, ValidatorConsensusInfo>,
        quorum_voting_power: u64,
        total_voting_power: u64,
    ) -> Self {
        ValidatorVerifier {
            address_to_validator_info,
            quorum_voting_power,
            total_voting_power,
        }
    }

    /// Helper method to initialize with a single author and public key with quorum voting power 1.
    pub fn new_single(author: AccountAddress, public_key: Ed25519PublicKey) -> Self {
        let mut author_to_validator_info = BTreeMap::new();
        author_to_validator_info.insert(author, ValidatorConsensusInfo::new(public_key, 1));
        Self::new(author_to_validator_info)
    }

    /// Verify the correctness of a signature of a message by a known author.
    pub fn verify<T: Serialize + CryptoHash>(
        &self,
        author: AccountAddress,
        message: &T,
        signature: &Ed25519Signature,
    ) -> std::result::Result<(), VerifyError> {
        match self.get_public_key(&author) {
            Some(public_key) => {
                if public_key
                    .verify_struct_signature(message, signature)
                    .is_err()
                {
                    Err(VerifyError::InvalidSignature)
                } else {
                    Ok(())
                }
            }
            None => Err(VerifyError::UnknownAuthor),
        }
    }

    /// This function will successfully return when at least quorum_size signatures of known authors
    /// are successfully verified. Also, an aggregated signature is considered invalid if any of the
    /// attached signatures is invalid or it does not correspond to a known author. The latter is to
    /// prevent malicious users from adding arbitrary content to the signature payload that would go
    /// unnoticed.
    pub fn verify_aggregated_struct_signature<T: CryptoHash + Serialize>(
        &self,
        message: &T,
        aggregated_signature: &BTreeMap<AccountAddress, Ed25519Signature>,
    ) -> std::result::Result<(), VerifyError> {
        self.check_num_of_signatures(aggregated_signature)?;
        self.check_voting_power(aggregated_signature.keys())?;
        for (author, signature) in aggregated_signature {
            self.verify(*author, message, &signature.clone())?;
        }
        Ok(())
    }

    /// This function will try batch signature verification and falls back to normal
    /// iterated verification if batching fails.
    pub fn batch_verify_aggregated_signatures<T: CryptoHash + Serialize>(
        &self,
        message: &T,
        aggregated_signature: &BTreeMap<AccountAddress, Ed25519Signature>,
    ) -> std::result::Result<(), VerifyError> {
        self.check_num_of_signatures(aggregated_signature)?;
        self.check_voting_power(aggregated_signature.keys())?;
        let keys_and_signatures: Vec<(Ed25519PublicKey, Ed25519Signature)> = aggregated_signature
            .iter()
            .flat_map(|(address, signature)| {
                let sig = signature.clone();
                self.get_public_key(address).map(|pub_key| (pub_key, sig))
            })
            .collect();
        // Fallback is required to identify the source of the problem if batching fails.
        if Ed25519Signature::batch_verify(message, keys_and_signatures).is_err() {
            self.verify_aggregated_struct_signature(message, aggregated_signature)?
        }
        Ok(())
    }

    /// Ensure there are not more than the maximum expected signatures (all possible signatures).
    fn check_num_of_signatures(
        &self,
        aggregated_signature: &BTreeMap<AccountAddress, Ed25519Signature>,
    ) -> std::result::Result<(), VerifyError> {
        let num_of_signatures = aggregated_signature.len();
        if num_of_signatures > self.len() {
            return Err(VerifyError::TooManySignatures {
                num_of_signatures,
                num_of_authors: self.len(),
            });
        }
        Ok(())
    }
    /// Ensure there is at least quorum_voting_power in the provided signatures and there
    /// are only known authors. According to the threshold verification policy,
    /// invalid public keys are not allowed.
    pub fn check_voting_power<'a>(
        &self,
        authors: impl Iterator<Item = &'a AccountAddress>,
    ) -> std::result::Result<(), VerifyError> {
        // Add voting power for valid accounts, exiting early for unknown authors
        let mut aggregated_voting_power = 0;
        for account_address in authors {
            match self.get_voting_power(account_address) {
                Some(voting_power) => aggregated_voting_power += voting_power,
                None => return Err(VerifyError::UnknownAuthor),
            }
        }

        if aggregated_voting_power < self.quorum_voting_power {
            return Err(VerifyError::TooLittleVotingPower {
                voting_power: aggregated_voting_power,
                quorum_voting_power: self.quorum_voting_power,
            });
        }
        Ok(())
    }

    /// Returns the public key for this address.
    pub fn get_public_key(&self, author: &AccountAddress) -> Option<Ed25519PublicKey> {
        self.address_to_validator_info
            .get(author)
            .map(|validator_info| validator_info.public_key.clone())
    }

    /// Returns the voting power for this address.
    pub fn get_voting_power(&self, author: &AccountAddress) -> Option<u64> {
        self.address_to_validator_info
            .get(author)
            .map(|validator_info| validator_info.voting_power)
    }

    /// Returns an ordered list of account addresses as an `Iterator`.
    pub fn get_ordered_account_addresses_iter(&self) -> impl Iterator<Item = AccountAddress> + '_ {
        // Since `address_to_validator_info` is a `BTreeMap`, the `.keys()` iterator
        // is guaranteed to be sorted.
        self.address_to_validator_info.keys().copied()
    }

    /// Returns the number of authors to be validated.
    pub fn len(&self) -> usize {
        self.address_to_validator_info.len()
    }

    /// Is there at least one author?
    pub fn is_empty(&self) -> bool {
        self.len() == 0
    }

    /// Returns quorum voting power.
    pub fn quorum_voting_power(&self) -> u64 {
        self.quorum_voting_power
    }
}

/// Returns sum of voting power from Map of validator account addresses, validator consensus info
fn sum_voting_power(
    address_to_validator_info: &BTreeMap<AccountAddress, ValidatorConsensusInfo>,
) -> u64 {
    address_to_validator_info.values().fold(0, |sum, x| {
        sum.checked_add(x.voting_power)
            .expect("sum of all voting power is greater than u64::max")
    })
}

impl fmt::Display for ValidatorVerifier {
    fn fmt(&self, f: &mut fmt::Formatter) -> std::fmt::Result {
        write!(f, "ValidatorSet: [")?;
        for (addr, info) in &self.address_to_validator_info {
            write!(f, "{}: {}, ", addr.short_str_lossless(), info.voting_power)?;
        }
        write!(f, "]")
    }
}

impl From<&ValidatorSet> for ValidatorVerifier {
    fn from(validator_set: &ValidatorSet) -> Self {
        ValidatorVerifier::new(validator_set.payload().iter().fold(
            BTreeMap::new(),
            |mut map, validator| {
                map.insert(
                    *validator.account_address(),
                    ValidatorConsensusInfo::new(
                        validator.consensus_public_key().clone(),
                        validator.consensus_voting_power(),
                    ),
                );
                map
            },
        ))
    }
}

#[cfg(any(test, feature = "fuzzing"))]
impl From<&ValidatorVerifier> for ValidatorSet {
    fn from(verifier: &ValidatorVerifier) -> Self {
        ValidatorSet::new(
            verifier
                .get_ordered_account_addresses_iter()
                .map(|addr| {
                    crate::validator_info::ValidatorInfo::new_with_test_network_keys(
                        addr,
                        verifier.get_public_key(&addr).unwrap(),
                        verifier.get_voting_power(&addr).unwrap(),
                    )
                })
                .collect(),
        )
    }
}

/// Helper function to get random validator signers and a corresponding validator verifier for
/// testing.  If custom_voting_power_quorum is not None, set a custom voting power quorum amount.
/// With pseudo_random_account_address enabled, logs show 0 -> [0000], 1 -> [1000]
#[cfg(any(test, feature = "fuzzing"))]
pub fn random_validator_verifier(
    count: usize,
    custom_voting_power_quorum: Option<u64>,
    pseudo_random_account_address: bool,
) -> (
    Vec<crate::validator_signer::ValidatorSigner>,
    ValidatorVerifier,
) {
    let mut signers = Vec::new();
    let mut account_address_to_validator_info = BTreeMap::new();
    for i in 0..count {
        let random_signer = if pseudo_random_account_address {
            crate::validator_signer::ValidatorSigner::from_int(i as u8)
        } else {
            crate::validator_signer::ValidatorSigner::random([i as u8; 32])
        };
        account_address_to_validator_info.insert(
            random_signer.author(),
            crate::validator_verifier::ValidatorConsensusInfo::new(random_signer.public_key(), 1),
        );
        signers.push(random_signer);
    }
    (
        signers,
        match custom_voting_power_quorum {
            Some(custom_voting_power_quorum) => ValidatorVerifier::new_with_quorum_voting_power(
                account_address_to_validator_info,
                custom_voting_power_quorum,
            )
            .expect("Unable to create testing validator verifier"),
            None => ValidatorVerifier::new(account_address_to_validator_info),
        },
    )
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::validator_signer::ValidatorSigner;
    use diem_crypto::test_utils::{TestDiemCrypto, TEST_SEED};
    use std::collections::BTreeMap;

    #[test]
    fn test_check_voting_power() {
        let (validator_signers, validator_verifier) = random_validator_verifier(2, None, false);
        let mut author_to_signature_map = BTreeMap::new();

        assert_eq!(
            validator_verifier
                .check_voting_power(author_to_signature_map.keys())
                .unwrap_err(),
            VerifyError::TooLittleVotingPower {
                voting_power: 0,
                quorum_voting_power: 2,
            }
        );

        let dummy_struct = TestDiemCrypto("Hello, World".to_string());
        for validator in validator_signers.iter() {
            author_to_signature_map.insert(validator.author(), validator.sign(&dummy_struct));
        }

        assert_eq!(
            validator_verifier.check_voting_power(author_to_signature_map.keys()),
            Ok(())
        );
    }

    #[test]
    fn test_validator() {
        let validator_signer = ValidatorSigner::random(TEST_SEED);
        let dummy_struct = TestDiemCrypto("Hello, World".to_string());
        let signature = validator_signer.sign(&dummy_struct);
        let validator =
            ValidatorVerifier::new_single(validator_signer.author(), validator_signer.public_key());
        assert_eq!(
            validator.verify(validator_signer.author(), &dummy_struct, &signature),
            Ok(())
        );
        let unknown_validator_signer = ValidatorSigner::random([1; 32]);
        let unknown_signature = unknown_validator_signer.sign(&dummy_struct);
        assert_eq!(
            validator.verify(
                unknown_validator_signer.author(),
                &dummy_struct,
                &unknown_signature
            ),
            Err(VerifyError::UnknownAuthor)
        );
        assert_eq!(
            validator.verify(validator_signer.author(), &dummy_struct, &unknown_signature),
            Err(VerifyError::InvalidSignature)
        );
    }

    #[test]
    fn test_equal_vote_quorum_validators() {
        const NUM_SIGNERS: u8 = 7;
        // Generate NUM_SIGNERS random signers.
        let validator_signers: Vec<ValidatorSigner> = (0..NUM_SIGNERS)
            .map(|i| ValidatorSigner::random([i; 32]))
            .collect();
        let dummy_struct = TestDiemCrypto("Hello, World".to_string());

        // Create a map from authors to public keys with equal voting power.
        let mut author_to_public_key_map = BTreeMap::new();
        for validator in validator_signers.iter() {
            author_to_public_key_map.insert(
                validator.author(),
                ValidatorConsensusInfo::new(validator.public_key(), 1),
            );
        }

        // Create a map from author to signatures.
        let mut author_to_signature_map = BTreeMap::new();
        for validator in validator_signers.iter() {
            author_to_signature_map.insert(validator.author(), validator.sign(&dummy_struct));
        }

        // Let's assume our verifier needs to satisfy at least 5 signatures from the original
        // NUM_SIGNERS.
        let validator_verifier =
            ValidatorVerifier::new_with_quorum_voting_power(author_to_public_key_map, 5)
                .expect("Incorrect quorum size.");

        // Check against signatures == N; this will pass.
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Ok(())
        );

        // Add an extra unknown signer, signatures > N; this will fail.
        let unknown_validator_signer = ValidatorSigner::random([NUM_SIGNERS + 1; 32]);
        let unknown_signature = unknown_validator_signer.sign(&dummy_struct);
        author_to_signature_map
            .insert(unknown_validator_signer.author(), unknown_signature.clone());
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Err(VerifyError::TooManySignatures {
                num_of_signatures: 8,
                num_of_authors: 7
            })
        );

        // Add 5 valid signers only (quorum threshold is met); this will pass.
        author_to_signature_map.clear();
        for validator in validator_signers.iter().take(5) {
            author_to_signature_map.insert(validator.author(), validator.sign(&dummy_struct));
        }
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Ok(())
        );

        // Add an unknown signer, but quorum is satisfied and signatures <= N; this will fail as we
        // don't tolerate invalid signatures.
        author_to_signature_map
            .insert(unknown_validator_signer.author(), unknown_signature.clone());
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Err(VerifyError::UnknownAuthor)
        );

        // Add 4 valid signers only (quorum threshold is NOT met); this will fail.
        author_to_signature_map.clear();
        for validator in validator_signers.iter().take(4) {
            author_to_signature_map.insert(validator.author(), validator.sign(&dummy_struct));
        }
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Err(VerifyError::TooLittleVotingPower {
                voting_power: 4,
                quorum_voting_power: 5
            })
        );

        // Add an unknown signer, we have 5 signers, but one of them is invalid; this will fail.
        author_to_signature_map.insert(unknown_validator_signer.author(), unknown_signature);
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Err(VerifyError::UnknownAuthor)
        );
    }

    #[test]
    #[should_panic]
    fn test_very_unequal_vote_quorum_validators() {
        const NUM_SIGNERS: u8 = 4;
        // Generate NUM_SIGNERS random signers.
        let validator_signers: Vec<ValidatorSigner> = (0..NUM_SIGNERS)
            .map(|i| ValidatorSigner::random([i; 32]))
            .collect();
        let dummy_struct = TestDiemCrypto("Hello, World".to_string());

        // Create a map from authors to public keys with increasing weights (0, 1, 2, 3) and
        // a map of author to signature.
        let mut author_to_public_key_map = BTreeMap::new();
        let mut author_to_signature_map = BTreeMap::new();
        for (i, validator_signer) in validator_signers.iter().enumerate() {
            let mut voting_power: u64 = i as u64;
            if i == 3 {
                voting_power = u64::max_value()
            }
            author_to_public_key_map.insert(
                validator_signer.author(),
                ValidatorConsensusInfo::new(validator_signer.public_key(), voting_power),
            );
            author_to_signature_map.insert(
                validator_signer.author(),
                validator_signer.sign(&dummy_struct),
            );
        }

        // expect this to panic
        let _validator_verifier = ValidatorVerifier::new(author_to_public_key_map);
    }

    #[test]
    fn test_unequal_vote_quorum_validators() {
        const NUM_SIGNERS: u8 = 4;
        // Generate NUM_SIGNERS random signers.
        let validator_signers: Vec<ValidatorSigner> = (0..NUM_SIGNERS)
            .map(|i| ValidatorSigner::random([i; 32]))
            .collect();
        let dummy_struct = TestDiemCrypto("Hello, World".to_string());

        // Create a map from authors to public keys with increasing weights (0, 1, 2, 3) and
        // a map of author to signature.
        let mut author_to_public_key_map = BTreeMap::new();
        let mut author_to_signature_map = BTreeMap::new();
        for (i, validator_signer) in validator_signers.iter().enumerate() {
            author_to_public_key_map.insert(
                validator_signer.author(),
                ValidatorConsensusInfo::new(validator_signer.public_key(), i as u64),
            );
            author_to_signature_map.insert(
                validator_signer.author(),
                validator_signer.sign(&dummy_struct),
            );
        }

        // Let's assume our verifier needs to satisfy at least 5 quorum voting power
        let validator_verifier =
            ValidatorVerifier::new_with_quorum_voting_power(author_to_public_key_map, 5)
                .expect("Incorrect quorum size.");

        // Check against all signatures (6 voting power); this will pass.
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Ok(())
        );

        // Add an extra unknown signer, signatures > N; this will fail.
        let unknown_validator_signer = ValidatorSigner::random([NUM_SIGNERS + 1; 32]);
        let unknown_signature = unknown_validator_signer.sign(&dummy_struct);
        author_to_signature_map
            .insert(unknown_validator_signer.author(), unknown_signature.clone());
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Err(VerifyError::TooManySignatures {
                num_of_signatures: 5,
                num_of_authors: 4
            })
        );

        // Add 5 voting power signers only (quorum threshold is met) with (2, 3) ; this will pass.
        author_to_signature_map.clear();
        for validator in validator_signers.iter().skip(2) {
            author_to_signature_map.insert(validator.author(), validator.sign(&dummy_struct));
        }
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Ok(())
        );

        // Add an unknown signer, but quorum is satisfied and signatures <= N; this will fail as we
        // don't tolerate invalid signatures.
        author_to_signature_map
            .insert(unknown_validator_signer.author(), unknown_signature.clone());
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Err(VerifyError::UnknownAuthor)
        );

        // Add first 3 valid signers only (quorum threshold is NOT met); this will fail.
        author_to_signature_map.clear();
        for validator in validator_signers.iter().take(3) {
            author_to_signature_map.insert(validator.author(), validator.sign(&dummy_struct));
        }
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Err(VerifyError::TooLittleVotingPower {
                voting_power: 3,
                quorum_voting_power: 5
            })
        );

        // Add an unknown signer, we have 5 signers, but one of them is invalid; this will fail.
        author_to_signature_map.insert(unknown_validator_signer.author(), unknown_signature);
        assert_eq!(
            validator_verifier
                .batch_verify_aggregated_signatures(&dummy_struct, &author_to_signature_map),
            Err(VerifyError::UnknownAuthor)
        );
    }
}


text:
/**
 *
 */
package org.minnal.core;

import org.minnal.core.config.ApplicationConfiguration;

/**
 * @author ganeshs
 *
 */
public interface Plugin {

	void init(Application<? extends ApplicationConfiguration> application);

	void destroy();
}


Jesus tells us that he is the true vine and we are the branches. Like a good gardener, the Father prunes the vine to make it yield more by cutting away the weak or diseased parts and disposing of them in fire. The good parts, the fruitful parts are nurtured with care so that they yield much fruit.
Those of us who believe in Jesus Christ will be looked after but those who ignore him will wither and be gathered up for burning as rubbish. Only if we believe in him can we achieve eternal happiness and bear much fruit and thereby give glory to God.
But the image of the Shepherd and the flock is one that comes up again and again in the Bible. The Prophet Ezekiel uses it, comparing the poor leadership of the rulers of Israel with the care that God gives for his people – and the promise that the time will come when God himself will care for his people!
Jesus takes the image for himself of course in our gospel for this week. The passage carries on from one of my favourite verses – "I have come that they may have life – life in all its fullness!" – and Jesus uses the image to show how he will fulfil God's promise at Easter, by laying down his life for the people that are so loved. And this is not the only place Jesus uses the analogy – what about the parable of the lost sheep – and the shepherd that risks everything in order to retrieve that sheep from the dangers it faces?
In our age we are not so familiar with shepherds, by and large (that doesn't apply to our entire congregation of course!) However each of us can see that the story still holds power – a people of the world that are straying from right paths, and a world that seems increasingly full of dangers. But for those who wish to know, the Good shepherd is still at hand, searching for the lost sheep. Let's play our part in helping them home.
Does it matter? More than 30 years ago the then Bishop of Durham was at the centre of controversy when he was accused of denying the resurrection, using the expression "more than a conjuring trick with bones!" But beneath all the hype the Bishop was probably right in saying that the important thing is that we experience the resurrection ourselves as Christians. It's no "pie in the sky when we die" matter – it's finding that our Faith is the mainspring for life and living every day of our lives. When things get darkest, God in Christ Jesus is always with us. There is no place where Jesus is not there already!
Good news for today and good news for tomorrow. He is risen – and we are risen too!


Technology my backside! They said this new screen was going to put us way ahead of CTV…. now I have to sit here at the laptop and try to figure out how to get it back on !
I suppose if I keep staring intently at this blank screen, Fagstein will stop waving that camera in my face.
I really was hoping getting bought out by Shaw would make a difference. They throw around words like "redundancy", "efficiency", and "lean" and I'm stuck here playing with the Chromakey. I'm a news reader dammit, I don't know the first thing about this technology.
Why does that darn Fagstein keep emailing me????
Swear to God…if I get one more Mafia Wars request Imma unfriend EVERYBODY!
What? The Morning Show won't be coming to Global??
I heard the new morning show at global has been "put on hold". is this true? what a joke!!!
Unless something has changed in the past week and a half, it's still set to debut this fall.
What's your source for that? The morning shows were put on hold last summer, but Global tells me the show is still being planned for launch this year.
Ohhhh! CBC Montreal just posted a weekend anchor job. I better apply!
Are these numbers the BBM's or my number of Facebook friends?
"Master get me a new gig" – It always worked for Barbara Eden on I Dream of Jeannie. Just move my lips, blink the eyes and swoosh a different color screen. All I get is green every time. Oh well I guess that only happens on those big budget newscasts !!
I wonder what he looks like naked?
Green! Greenish! Greenie! Dark Green! Light Green! Spring Green! Crap!!!
Oh nice, somebody watered my crops on farmville.