The live-action film Casshern (directed by Kazuaki Kiriya, 2004) is based on the 1973 anime of the same name. This fact is a sore spot for fans of the original, who generally seem to be unanimous in their dislike of the filmic remake. On the other hand, fans of the movie may not enjoy the anime upon viewing.
I have to admit that I've only seen a few fragments of that original 1970s animation, but I think I've seen enough to say that I actually enjoy both, for their own reasons.
Needless to say, the 70s anime is generally bright and campy. The film is, however, dark and extravagant (perhaps to excess). This already forces a wedge between the two, which is driven deeper by some drastic changes to the plot.
Admittedly, I can see why fans of the old series don't like the remake, but I think, if taken on its own terms, it can still be quite the enjoyable experience.
Visually, the film Casshern is quite the spectacle. The computer graphics already look a bit dated, but unlike many special effects-driven movies, the focus is not on creating a sense of "realism" but rather to create an extremely stylized look. The film is full of highly manipulated color and contrast, resulting in a veritable feast for the eyes.
The kind of stylization I'm talking about is quite reminiscent of other "artistic" action-based films, such as Zack Snyder's 300 (2007) and Kerry Conran's Sky Captain and the World of Tomorrow (2004).
These films are visually stunning, and quite a pleasure to watch, although some may argue that the visuals are overdone and overbearing and in this way it amounts to personal taste.
I mentioned Sky Captain and the World of Tomorrow, which seems to work oddly well as a companion to Casshern. Both came out in the same year and feature a dieselpunk-based setting, though they differ greatly in plot and represent different sides of the genre. Sky Captain is certainly of the optimistic "Ottensian" realm while Casshern nestles itself nicely into the world of the dystopian "Piecraftian" dieselpunk.
Of course, Casshern branches out from dieselpunk with its more biopunk genetic experimentation, particularly the creation of "Neo-Humans" through the use of "Neo-Cells".
The general visual aesthetic is chiefly diesel in nature, however, drawing from film noir in its shadowy atmosphere and focusing on an alternate history in which Asia defeated Europa in a great world war and subsequently became involved in a battle with terrorists from the ambiguous geographic region "Zone 7". These terrorists steal Europe's now abandoned robot armies to wreak havoc on their enemies, robots that the Neo-Human Casshern must defeat in kung fu-esque fight sequences.
Personally, I enjoy the film. It's incredibly entertaining, although I think I would enjoy it just as much without subtitles as I do with. Really, the plot and dialogue is chiefly inconsequential for me. The entire point seems to be the lavish visuals, which overwhelm and dazzle in their extravagance.
The style reminds me a lot of Dave McKean's artwork, well known for his collaborations with Neil Gaiman, their cinematic work being Mirrormask (2005), which likewise dazzles with its beautiful visuals. It's just a joy to see such painterly use of color and form on the big screen.
That said, while quite different from the campiness found in the 70s original, there is a certain element of kitsch to the whole thing. I think it's important to realize that the creators of this film knew the campy status of the source material and while there are more "serious moments" in the film, even these seem to be handled with a bit of irreverent humor.
Though very different in mood, this film's handling of its original source reminds me of another 2004 live-action reboot of a classic 70s anime, Hideaki Anno's Cutie Honey. The overproduction of the dramatic action scenes and visuals harkens back to the melodramatic nature of those old classics.
I think of it more of a graphical overhaul and modernization of the spirit of the source material rather than a literal translation of it to the silver screen. The sense of fun and extravagance remains in tact, even if the poor animation quality and strong retro vibes are removed and replaced with over-the-top production and a contemporary feel.
For fans of the 'punks, I think this film could easily be considered a "must watch", although some may not like the overproduced visuals. Fans of the original series beware, though. It's going to be different, but I think it still works in its own weird way and captures an essential part of those old classics: spectacle and ridiculous melodrama.
This story first appeared in Gatehouse Gazette #9 (November 2009), p. 18-19, with the headline "Mutation of Anime & Dieselpunk; Casshern".


fluid. Potassium ions (K+) are the most abundant ions in intracellular fluid.
chloride ions (Cl-), and potassium ions (K+).
trical current for action potentials.
cofactors (nonprotein substances) for enzymes.
helps to balance the level of anions in each compartment.


text:
__БЕЗКН__

NGC 2810B је спирална галаксија у сазвежђу Велики медвед која се налази на NGC листи објеката дубоког неба.

Деклинација објекта је + 71° 52' 0" а ректасцензија 9-{h}- 21-{m}- 58,2-{s}-. Привидна величина (магнитуда) објекта -{NGC}- 2810 износи 16,2 а фотографска магнитуда 17,0.

Референце

Литература
Revised New General Catalogue and Index Catalogue, Wolfgang Steinicke, 2012. Доступно у овом фајлу са објашњењем на овој страници
SIMBAD база података, Стразбуршки центар астрономских података (CDS), Стразбур

Види још
Нови општи каталог

Спољашње везе

Интерактивни каталог NGC, IC и Месјеових објеката
-{SIMBAD}- база података

Нови општи каталог сазвежђе Велики медвед

redpajama_set_name: RedPajamaWikipedia


Conveyor Guard End Caps are a flexible rectangular cap that can be used to protect the employees from the sharp edges at the end of a rail on the conveyor line.
Size: 2.5" x 1.063" x 1.0"
Size: 3.5" x 1.5" x 1.0"
Size: 4" x 1.5" x 1.0"
Made from a flexible PVC these caps can be easily molded around irregular rectangular shapes.
Adding protection & offering a neater finish.


Rayman Legends is a pretty great platformer, and it's coming to the Xbox One and PS4 this week. To help alleviate some of the questions fans have about the PS4 game specifically, Sony has provided a fan Q&A piece on the PlayStation Blog.
Arguably the biggest question is from a fan in the Netherlands, who asks whether or not the Vita can be used like the GamePad was on the Wii U. The short answer is "no" - it can only used for Remote Play purposes.
Well, it would have been neat to control Murfy, but it's not really an essential part of the game anyways.


text:
Posted in | News | Materials Research | Biomaterials
New Method Helps Develop a New Generation of Protein-Based Synthetic Biomaterials
At the University of Leeds, researchers have devised a new method that could aid in the development of a new generation of protein-based synthetic biomaterials.
A schematic of a protein hydrogel showing regions of folded protein (in red) connected by regions of unfolded protein (in white). Image Credit: Lorna Dougan/Phospho Animations.
The biomaterials could find use in joint repair, wound healing and other areas of healthcare and food production in the future.
Controlling and fine-tuning the way protein building blocks combine into complex protein networks, which constitute the basis of biomaterials, is one of the most difficult issues.
Leeds researchers are looking at how changes in the structure and mechanics of individual protein building blocks — changes at the nanoscale — might modify the structure and mechanics of the biomaterial at a macro level while preserving the protein network's biological function.
Sharp Develop Technology to Blend Plant-Based Plastic and Waste Plastic from Scrapped Consumer Electronics
Classification and Discrimination of Food Protein Powders
How Generators in Power Stations Work
The researchers state that they were able to change the structure of a protein network by deleting a specific chemical link in the protein building blocks. These bonds were named "protein mainstays" by the researchers. The findings have been described in a paper published in the scientific journal ACS Nano.
When the protein staples were removed, the individual protein molecules were able to interact and organize into a network more easily. This created a network of folded protein regions joined by unfolded protein regions, making the biomaterial exhibit widely diverse mechanical properties.
Proteins display amazing functional properties. We want to understand how we can exploit this diverse biological functionality in materials which use proteins as building blocks. But to do that we need to understand how changes at a nano scale, at the level of individual molecules, alters the structure and behavior of the protein at a macro level.
Lorna Dougan, Professor, School of Physics and Astronomy, University of Leeds
"Controlling the protein building block's ability to unfold by removing the 'protein staples' resulted in significantly different network architectures with markedly different mechanical behavior and this demonstrates that unfolding of the protein building block plays a defining role in the architecture of protein networks and the subsequent mechanics," said Dr. Matt Hughes, lead author of the study, also from the School of Physics and Astronomy.
The researchers employed facilities at Leeds' Astbury Centre for Structural Molecular Biology and School of Physics and Astronomy, as well as the STFC Rutherford Appleton Laboratory's ISIS Neutron Muon Source. They were able to spot key changes in the structure of the protein network using neutron beams when the nano-staples were removed.
Dr. Ben Hanson, a Research Associate in the School of Physics and Astronomy at Leeds, modeled the structural changes that were taking place in tandem with the experimental study. He discovered that the act of protein unfolding during network formation was critical in determining the network topology of protein hydrogels.
The ability to change the nanoscale properties of protein building blocks, from a rigid, folded state to a flexible, unfolded state, provides a powerful route to creating functional biomaterials with controllable architecture and mechanics.
Hughes, M. D. G., et al. (2021) Control of Nanoscale In Situ Protein Unfolding Defines Network Architecture and Mechanics of Protein Hydrogels. ACS Nano. doi.org/10.1021/acsnano.1c00353.
Source: https://www.leeds.ac.uk/
Advanced Alloys
Food & Beverage Analysis

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: :before psuedo element is not working in IE 11 This is the code is not working in IE11, It's working fine in chrome and Mozilla.
I am trying to add a background color on hover a div.border-green, It's failing in IE 11
.border-green{
    border-bottom: 5px solid #50BE87 !important;
    display: block;
}

.border-green::before{
    content: " ";
    display: block;
    background: linear-gradient(to top, #50BE87 59%, #6a7b886b 20%);
    visibility: hidden;
    transition: all 450ms ease-out;
    position: absolute;
    opacity: 0;
    left: 15px;
    top: 0%;
    height: 96%;
    width: 91%;
    z-index: 1;
 }

 .border-green:hover::before {
    opacity: 1;
    visibility: visible;
}

A: Internet Explorer does not understand RGBA hexadecimal color codes (4 bytes)..
If you drop the transparency, it works fine:
background: linear-gradient(to top, #50BE87 59%, #6a7b88 20%);
Or you can create a kind of mixin by including both lines. This seems to work as well:
background: linear-gradient(to top, #50BE87 59%, #6a7b88 20%);
background: linear-gradient(to top, #50BE87 59%, #6a7b886b 20%);

Chrome and Mozilla will eventually take the second line. But because the second line fails in IE, IE seems to fall back to the first line. I'm not sure if this is a safe strategy, however.
Or you could just use the rgba function. That works fine in IE as well:
background: linear-gradient(to top, #50BE87 59%, rgba(106, 123, 136, 0.42) 20%);

redpajama_set_name: RedPajamaStackExchange


text:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.group</groupId>
    <artifactId>cms</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>cms-web-client</artifactId>
  <packaging>war</packaging>
  <name>cms-web-client Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
  	<dependency>
  		<groupId>com.group</groupId>
  		<artifactId>cms-core</artifactId>
  		<version>0.0.1-SNAPSHOT</version>
  	</dependency>
  </dependencies>
  <build>
    <finalName>cms-web-client</finalName>
  </build>
</project>

redpajama_set_name: RedPajamaGithub


text:
Q: Clicking like icons increases the like count of other components Upon the click of a single like, it is increasing the number of likes for both separate components. What is causing both like numbers to increase, and how can I code it to where only one like number increases upon clicking a like?
I have also include the console in the picture below where I have console logged the logic in my reducer. You can find the code for the reducer further below the picture.

Reducer code
import { GET_GOALS, GOAL_ERROR, UPDATE_LIKES } from "../actions/types";

const initialState = {
  goals: [],
  goal: null,
  loading: true,
  error: {}
};

export default function(state = initialState, action) {
  const { type, payload } = action;

  switch (type) {
    case GET_GOALS:
      return {
        ...state,
        goals: payload,
        loading: false
      };
    case GOAL_ERROR:
      return {
        ...state,
        error: payload,
        loading: false
      };
    case UPDATE_LIKES:
      return {
        ...state,
        goals: state.goals.map(goal =>
          console.log("goal id", goal._id) === console.log("payload id", payload.goalId) ? { ...goal, likes: payload.likes } : goal
        ),
        loading: false
      };
    default:
      return state;
  }
}

Action code
import axios from "axios";
import { GET_GOALS, GOAL_ERROR, UPDATE_LIKES } from "./types";

// Get goals

export const getGoals = () => async dispatch => {
  try {
    const res = await axios.get("/api/goal/goalfeed");

    dispatch({
      type: GET_GOALS,
      payload: res.data
    });
  } catch (error) {
    dispatch({
      type: GOAL_ERROR,
      payload: { msg: error.response }
    });
  }
};

// Add like

export const addLike = goalId => async dispatch => {
  try {
    const res = await axios.put(`/api/goal/like/${goalId}`);

    dispatch({
      type: UPDATE_LIKES,
      payload: { goalId, likes: res.data }
    });
  } catch (error) {
    dispatch({
      type: GOAL_ERROR,
      payload: { msg: error.response }
    });
  }
};

// Remove like

export const removeLike = goalId => async dispatch => {
  try {

    const res = await axios.put(`/api/goal/unlike/${goalId}`);

    dispatch({
      type: UPDATE_LIKES,
      payload: { goalId, likes: res.data }
    });
  } catch (error) {
    dispatch({
      type: GOAL_ERROR,
      payload: { msg: error.response }
    });
  }
};

Goals component code
import React, { useEffect } from "react";
import Moment from "react-moment";
import PropTypes from "prop-types";
import { Link } from "react-router-dom";
import { connect } from "react-redux";
import { addLike, removeLike } from "../../actions/goal";
import { getGoals } from "../../actions/goal";
import Spinner from "../layout/Spinner";
import Navbar from "../dashboard/Navbar";
import ThumbUpAltIcon from "@material-ui/icons/ThumbUpAlt";
import ThumbDownAltIcon from "@material-ui/icons/ThumbDownAlt";
import ChatIcon from "@material-ui/icons/Chat";
import DeleteIcon from "@material-ui/icons/Delete";
import DoneIcon from "@material-ui/icons/Done";
import {
  Typography,
  Container,
  CssBaseline,
  makeStyles,
  Grid,
  Avatar,
  Paper,
  Button
} from "@material-ui/core";

const useStyles = makeStyles(theme => ({
  paper: {
    height: "auto",
    marginBottom: theme.spacing(3)
  },
  actionButtons: {
    marginTop: "3vh"
  },
  profileHeader: {
    textAlign: "center",
    marginBottom: 20
  },
  avatar: {
    width: theme.spacing(7),
    height: theme.spacing(7)
  }
}));

const Goals = ({
  getGoals,
  auth,
  addLike,
  removeLike,
  goal: { goals, user, loading }
}) => {
  useEffect(() => {
    getGoals();
  }, [getGoals]);

  const classes = useStyles();

  return loading ? (
    <>
      <Navbar />
      <Container component="main" maxWidth="xs">
        <CssBaseline />
        <div className={classes.paper}>
          <Spinner />
        </div>
      </Container>
    </>
  ) : (
    <>
      <CssBaseline />
      <Navbar />
      <main>
        <Container>
          <Typography variant="h2" className={classes.profileHeader}>
            Goals
          </Typography>
          {/* parent grid */}
          <Grid container spacing={4}>
            {goals.map(singleGoal => (
              <Grid
                className={classes.paper}
                key={singleGoal._id}
                spacing={1}
                container
                item
                direction="row"
                alignItems="center"
                component={Paper}
              >
                <Grid
                  item
                  container
                  direction="column"
                  justify="center"
                  alignItems="center"
                  xs={3}
                >
                  <Avatar className={classes.avatar} src={singleGoal.avatar} />
                  <Typography variant="caption">
                    {singleGoal.first_name} {singleGoal.last_name}
                  </Typography>
                  <Typography variant="caption" className={classes.postedOn}>
                    Posted on{" "}
                    <Moment format="MM/DD/YYYY">{singleGoal.date}</Moment>
                  </Typography>
                </Grid>
                <Grid container item direction="column" xs={9}>
                  <Typography variant="body1">{singleGoal.text}</Typography>
                  <Grid item className={classes.actionButtons}>

                    <Button size="small" onClick={e => addLike(singleGoal._id)}>
                      <ThumbUpAltIcon />
                    </Button>

                    <Typography variant="caption">
                      {singleGoal.likes.length}
                    </Typography>
                    <Button
                      size="small"
                      onClick={e => removeLike(singleGoal._id)}
                    >
                      <ThumbDownAltIcon />
                    </Button>

                      <Button href={`/goal/${singleGoal._id}`} size="small">
                        <ChatIcon />
                      </Button>

                    {!auth.loading && singleGoal.user === auth.user._id && (
                      <Button size="small">
                        <DoneIcon />
                      </Button>
                    )}
                    {!auth.loading && singleGoal.user === auth.user._id && (
                      <Button size="small">
                        <DeleteIcon />
                      </Button>
                    )}
                  </Grid>
                </Grid>
              </Grid>
            ))}
          </Grid>
        </Container>
      </main>
    </>
  );
};

Goals.propTypes = {
  getGoals: PropTypes.func.isRequired,
  goal: PropTypes.object.isRequired
};

const mapStateToProps = state => ({
  goal: state.goal,
  auth: state.auth
});

export default connect(mapStateToProps, { getGoals, addLike, removeLike })(
  Goals
);

A: There exists a flaw in your conditional test.
state.goals.map(goal =>
  console.log("goal id", goal._id) === console.log("payload id", payload.goalId) // What is this? it will always evaluate to true
    ? { ...goal, likes: payload.likes }
    : goal
)

console.log('EQUAL?', console.log() === console.log()); // true
console.log('EQUAL?', console.log(3) === console.log(3)); // true
console.log('EQUAL?', console.log(3) === console.log('three')); // true
console.log('EQUAL?', console.log('apple') === console.log({})); // true
console.log('EQUAL?', console.log(42) === console.log(-42)); // true

The function console.log is a void return, i.e. undefined, so you are comparing undefined === undefined, which is always true.

console.log(undefined === undefined); // true

You are spreading in the new 'likes' value to every goal object.
Try instead:
state.goals.map(
  goal => goal._id === payload.goalId
    ? { ...goal, likes: payload.likes }
    : goal
)


Each year the Municipal Budget Office performs an analysis of the estimated annual amounts paid by the median residential Tempe household for direct services provided by the City of Tempe as well as the estimated total annual amount paid in City of Tempe property and transaction privilege (sales) taxes. These amounts are then compared to the estimated annual amounts paid by the same median residential household in seven comparison cities in the Phoenix metropolitan area.
The analysis assumed the same household consumption amounts for all cities for both water and wastewater services. However, for property tax purposes, we utilized the median single family home value in each respective city in the analysis. The sales tax amounts are based on the Phoenix metropolitan area median household income. As such, this analysis is intended to reflect what the median residential household would pay for each of the services or pay in taxes in their respective city.


text:
What is BA | BA full form
There are many such moments in the life of every student in which they have to take very tough steps. And one of those moments is study. After completing 12th, every student does appropriate courses according to their interest or convenience. What is B.A.
And BA is one of them, BA attracts many students towards it, BA colleges are available almost everywhere. So that students do not have to go far to do BA.
Other people's talk is far away, even about 50 – 60% of the students doing BA do not know the full name of BA. So today we are going to give you information about this.
BA is not the only sector that most of the students doing it have no idea about it. Rather, it happens in all the courses that most of the students doing it do not know about its full form. And in this condition apsole will help you, full forms of all the words you need will be found on apsole.com.
What is BA
How much is the fee of BA
How many years is BA course
BA first year
BA Second year
BA Third year (Finally year)
What are the subjects in BA
What is the fee for BA
what to do after ba
What is the advantage of doing BA
The full form of BA is bachelor of art i.e. Bachelor of Arts, basically BA is called graduation. But not only BA in graduation courses but many other courses also come.
BA is a graduation course which any student who has completed 12th can do. Then whether he has completed 12th from arts or science, it does not matter.
But if you want to do any other graduation course other than BA. Like bsc, bca etc. the subjects of 12th matter a lot. Because like if you want to do bca then it is necessary to be from 12th math, if you want to do bsc then you must have completed 12th from math, science.
Whatever subject you choose in the first year of BA. With the same subjects, you have to complete the first year and second year.
In BA you have to study with three subjects. And in the final (Third) year you have to leave one subject out of them. And one has to complete BA final year with only two subjects.
We told you above that even if you have completed 12th with any subject, you can do BA, so it does not mean that BA is of no use.
BA may seem like a very short course to you, but BA is also a very important graduation course. You can also consider making your career after doing BA.
If you want to do BA then feel free to do it, it will be very helpful for you in government jobs, but if your interest is in science, technology, engineering. So I will not recommend BA for you, for them you can do engineering diploma, or other graduation courses like bsc, bca etc.
But if you have made up your mind to do a government job, then I would also recommend BA to you. Because you can open the way for government jobs by completing graduation from BA.
By the way, you can apply for government jobs only after completing 12th. And after cracking them, you can also get that government job. But there are many such jobs for which you can apply only after doing BA.
And if you do MA after BA then you can open the way for more government jobs. You can sit in UPSC exams through BA, after doing BA, many government sectors open up for you. You can also do post graduation for more opportunities.
Graduation is necessary for higher posts in banking, many times it happens that promotion is not possible due to lack of graduation. So even if you have got the job, I would recommend that you do BA.
Although the cost of BA in local areas is very less, but the cost of BA in cities is more than the BA cost of villages. So if you are from village then you can do your BA in half the price of scholarship, that means study as well as earn.
To do BA in the village it will cost you around 3000 – 4000 for 1 year. And you will get scholarship around 7400 INR. So you can calculate how much your total cost can be in doing BA complete (First, second, final year).
But if we talk about cities, then there is a lot of difference in it. You may have to spend around 10,000 – 15,000 per year for doing BA in cities.
But don't worry BA charges are less at most places. So from where are you and how much is the BA fees here, do tell in the comment.
BA is an undergraduate degree in India awarded for a study program in the social sciences or liberal arts or both. BA is an undergraduate study program whose duration is generally three years. And its courses can generally be classified into BA Pass and BA Honors courses.
BA has already been the most preferred undergraduate degree course among those students in India. Those who like to study arts at higher level. And BA degree is also considered as one of the oldest and most popular degree in the world.
If you are in BA first year now, then you will get to see many subjects in it. Out of which you will have to choose any three subjects, because in BA first year three subjects are studied.
You have to select three subjects from the subject from which you want to do BA. When you go to enroll in BA, only then you will have to choose your subject. And after this your admission will be done in BA first year.
When you pass in BA first year then your admission will be in BA second year. However, in this you will not have to take admission again. Through collage automatically your admission will be done in BA second year. In this too, like BA first year, 3 subjects have to be studied. The subject which you had chosen for first year while taking admission in BA first year, you will have to study the same in second year also.
When you pass BA second year then you reach BA final year. In this, you will have to leave any one of your three subjects, because in the final year you have to study from two subjects.
Leave the subject which you like a little less than that. If you pass BA final year also then you will be considered as graduate. And you will get the graduation degree of BA.
Friends, as you may already know that there are many subjects in BA, their number is more than 20. Because of which a doubt remains at the time of enrolling in BA as to which subject to study so that it will be beneficial later on.
Hindi General
English general
Elementary Computer
Defence and strategic studies
Fine Arts and Painting Journalism & Mass Communication
Mathematics statistics Jeevan Vigyan & Jain Vidhya
Around 3000 to 4000 lives in rural areas. While in urban areas its fees can range from 5 to 10000.
After doing Ba, you have many ways, like if you want, you can prepare for MA or any other post graduation course or government job, because graduation is sought in most of the government jobs.
The biggest advantage of doing Delhi is that for you government jobs increase more than life. Because in this case you have completed graduation, after that you can do post graduation. And you will be able to apply for all level government jobs. And it is often seen that students have to go out to do most of the courses, but you may not have to go far to do BA. Because you can almost find ba colleges in your nearby area only.
In this article you learned what is BA and BA full form. We hope that this information BA meaning in hindi will prove useful for you.
What is username | Username meaning
What is Television | Full form of TV
What is Firefox
How to login on Facebook
What is sitemap
How to post status on Facebook
How to change gmail account date of birth
What is IPL, IPL full form
How to turn off facebook friend request
What is KYC, KYC full form
How to turn on data saver mode, Data saver meaning
What is ACP | ACP full form
How to change Gmail password
What is I love you | I Love you meaning
What is Flipkart, Flipkart meaning
How to change laptop wallpaper
How to make resume
How to save number in WhatsApp
How to turn on location
What is gardener | Gardener meaning
What is surgery | Surgery meaning
How to create fake facebook account
What is VFX | VFX full form
How to book train ticket by mobile
Which business is best to do in the village
How to create Facebook account without mobile number
What is saving | Saving meaning


text:
Preço ap replica watch Royal Oak Offshore Chronograph
Louis Victor and Iosif-Saterine focused on the Pomos Museum, which was created fake patek philippe 183 years ago. The biggest flow of white and yellow body is https://patekphilippe.to/ usually 100,000, usually from 50,000 to 60,000. The patek philippe replica main name of the film (window and kidneys) as a gif. You can see shiny blue snails and measles. patek philippe calatrava replica The Jingji series is designed for various sports developed by hardware, which is the time you patek philippe replica swiss movement want to win. Therefore, the "rich shape" appear effectively. This describes the type of power product.
The center of the center was decorated with Gucci Cat. After a few years, he is a legitimate heir replica patek philip in Abraham Bridge Lewis. At that time, the first United Airlines played ap replica watch in Hamilton. Obviously beauty may be uncomfortable. Cartier II 7100016 Born Products. Ouubes this year Royal Oak Gaiy is elsewhere. Theme) Guido Panerai U0026 Son GT). Today I participate information to check fans. The public is a "short" city in the city. But beautiful flowers are bright, but the fans are greed. National access will be the 60th anniversary of the establishment of US friendship and Switzerland.
Jones is a traditional concept of Switzerland. Watch the week, minute, minute, business dates and patek replica a wee. Female girl is always there. You can continue. Solar panels, solar panels in the vicinity, more metal. Since 2010, the company has established a special timing as a complicated external turbine. Wedding car. However, mathematical operators have water and impact. In addition to black grief, the whole body is made on luxury and ap replica watch circular golden surfaces. Monitor is a stable, stable and stable roof system. Since July 28, 2016, Wangfujing Margami Crown Wangfujing, East New York 25 hours, International Festival.
The romantic name is very common in women who are sad.
2014 important partner, businessman and international football story. Platinum and platinum products are offered 8.8 Happiness and high quality products replica patek philipe by these extraordinary hours. The most famous apartment in Uta. If you are ready to choose a blue phone in the market.
Replica Diamond Patek Philippe Men
Because his father did not hesitate at that time. On July 26, 2013, Cigarette Recommendations and GMMF have established commercial cooperation.
Description" after seven different patche. There are more than 280,000 people today. Because of the increase in Rolex, the seller can use replica patek philippe watch patek philippe watches replicas more competitive prices. 150 years ago, each time the code is her story. We are proud of our designers to look at death. Obviously the knowledge and private content of long-term invoices should not be ap replica watch interviewed. The new design this year is inspired from 60 to 70 years. You can switch between two frequencies between frequencies and expansion 4 to 65 days. After returning to the United States, many countries and areas finally completed the most successful journey in the air.
Feel safe because the heat has been fixed with four screws. Housing, housing, sweat, stairs and group – this is 10000 golden box and type, 42 m.
Bright keys for many players without using a good answer to the new logo. Driver seat energy is increasing. This is an important role in all brands. You can not get the best results for all branches. This movement patek philippe fake is very strong for young people who best patek philippe replica can not transfer youth. Stainless steel stainless steel stainless steel, satin shade, aluminum block ring, crazy aluminum and blue sid. In September 2006, the Lebanese Gulf established IWC President Taiwan two years ago, arrived at two floors, arrived. In 2018, SEC was launched on January patek phillippe replica watch 15.
This is a new source for three years. Patek Philip Genevski Museum is the most important timber group. Do not assembl. Each gem was decorated patek philippe iced out replica with diamond eyelashes, scanning breaches such as roses.
Special thanks to this universe "Education" on the first day of the market. Especially the fake patek philippe watches for sale following staff received "royal famil. In 2013, Rolex revealed the first son of the world and a black blue circle. A well-known trip" was ap replica watch celebrated in 1911, Mondo Chronography Monza will be published in 1911. In addition to titanium alloys, sapphire materials are the most difficult. More than 82% last year, more than 90 companies have suggested this news. The design time takes into account the original taste of test and the largest number of numbers and ornaments. Franz Emperor Joseph made a special gift for his handsome and daughter. Christmas and Hamas, everyone decorated with Christmas trees, creating beautiful people. Glassler has an art over 160 years.
Electrical appliances are distributed in steps and equipment in the 1930s. The new suite of three floors is 731 square meters, which can lead to the global class. Tertol is the concept of years, especially people. Many people must predict 42%, 77% per month. Diana Bercel is included on the surface.
The initial tag design can be piano. Common expressions because images can be faster. My father and my son are very love, but I love the shadow like the mountain. BAUME MERCIER was built in 1830, often heard beauty logo, saving the best ap replica watch concept of patek watch replica watching, and creates a luxury image. In 1937, the fuse was 7 hours, 28 minutes and 25 seconds, offering the best H1B trips. Today, Hangzhou Park Group Ali Alibaba (Alibaba Group, Stain State Center Park) launched Chinese brand tmall tmlald 11'worl.
In Europe, famous engraving designers and proofs are used enemies pro. This new device provides time.
Do Stores In The Mall Sell buy fake tissot watches Seamaster Ploprof
Self Winding muhle replica watches Braclets


ANCLAS senor associate Sean Burges has an op-ed in today's The Australian setting out one of the possible reasons behind Ecuador's decision to grant Julian Assange asylum.
Burges argues that Ecuadorian president Rafael Correa is engaging in a diversionary political tactic. Upsetting the UK and the US carries remarkably little cost for Ecuador, but the noise it makes helps burnish Correa's credentials as a latter-day David standing up to the imperial Goliaths of the UK and the US. This helps Correa keep his domestic political base happy so that he can continue pursuing the transformative political and economic policies that are being resisted by Ecuador's media-owning traditional power elite.


The purchase is very good quality and easy to put together.
Bought as a gift.. looks cute!
Website really easy to use, found exactly what I was looking for and lots of choices. Love wooden toys. Delivery was quick and packaged well. My daughter loves her new toy as does her friend who we bought one for too. Toy is excellent quality.


this thread serves as an area to answer questions that could not be answered during the webcast and for follow-up questions.
When will ELM be Launched for users? What's the cost?
IBM ELM is the abbreviation for IBM Engineering Lifecycle Management (formerly IBM CE - Continuous Engineering). IBM ELM is the new name for IBM's established product portfolio for Systems Engineering and Application Lifecycle Management.


text:
package org.artifactory.build;

import org.jfrog.build.api.Build;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import java.util.Date;

import static java.lang.String.valueOf;
import static org.jfrog.build.api.Build.formatBuildStarted;

/**
 * @author jbaruch
 * @since 04/05/12
 */
public class DetailedBuildRunTests {

    private DetailedBuildRunImpl original;

    @BeforeTest
    public void setup() {
        Build build = new Build();
        build.setNumber(valueOf(42));
        build.setName("test-build");
        build.setStarted(formatBuildStarted(new Date().getTime()));
        original = new DetailedBuildRunImpl(build);
    }

    @Test
    public void testCopy() throws Exception {
        DetailedBuildRun copy = original.copy();
        Assert.assertNotEquals(copy, original);//started should be different
        Assert.assertEquals(copy.getName(), original.getName());
        Assert.assertEquals(copy.getNumber(), original.getNumber());
        Assert.assertNotEquals(copy.getStarted(), original.getStarted());
    }

    @Test
    public void testCopyWithNewNumber() throws Exception {
        String newNumber = "42-r";
        DetailedBuildRun copy = original.copy(newNumber);
        Assert.assertNotEquals(copy, original);//started should be different
        Assert.assertEquals(copy.getName(), original.getName());
        Assert.assertNotEquals(copy.getNumber(), original.getNumber());
        Assert.assertEquals(copy.getNumber(), newNumber);
        Assert.assertNotEquals(copy.getStarted(), original.getStarted());
    }
}


13th March 2015, Chester, UK: Dr Liane Smith, founder and MD of global well integrity management specialists Wood Group Intetech (WGI), was last night named winner of the Inspiring Leader category at the SPE Offshore Achievement Awards. The prestigious ceremony held at the Aberdeen Exhibition and Conference Centre recognised outstanding successes within the UK's offshore energy industry, for categories including emerging technology, industry innovation and individual achievement.
In a competitive category alongside finalists Murray Kerr, director of SengS Subsea Engineering Solutions and Mal Lowe, director of Petrofac; Dr Smith was announced winner of the Inspiring Leader award in recognition of her contribution to the UK's oil and gas sector and her pioneering work in the fields of well integrity management and corrosion engineering.
Through her work at WGI, Dr Smith has led the development of industry-leading well integrity and corrosion software that has helped to shape the industry's approach to asset integrity management, shifting the focus to proactive identification of emerging integrity issues to safeguard wells, pipelines and production facilities worldwide.
In addition to her professional achievements, Dr Smith strongly believes that industry professionals should pass on their valuable experience to the next generation of talent, and is an active proponent of graduate training programmes and mentoring schemes.


text:
Pulmonary tuberculosis case detection in South Sudan
Author(s): David L. Lukudu, MBChB, DTM&H, MSc (TMIH) [a]
[a] Primary Health Care Advisor, Management Sciences for Health, on the USAID-funded Sudan Health Transformation Project, Phase II, Juba, South Sudan
Background: The National Tuberculosis (TB) Control Programme in South Sudan was created in 2006, and non-governmental organizations (NGOs) are its main implementers. Pulmonary tuberculosis (PTB) is a major public health threat. Available literature describes case finding as very low, but treatment success as high. This study was conducted to establish the true picture of case detection and to suggest ways to improve on case finding.
Methods: Recent trends in routine TB case notification as well as case detection and treatment outcome rates were analysed. Approaches and methods utilized in PTB case finding by the involved NGOs were examined. Opinions on how best to improve on case detection were generated.
Results: There was an increase in the trend of notification from 2002 to 2009, but the sputum smear-positive proportion was stable for the same period. The case detection rates were very low, all below 50% of expected for the given years; treatment success rates were high and stable, at an average of 80%; the defaulter rate was on the increase, especially after 2006. The NGOs seemed to be using the recommended approaches and methods to find and diagnose PTB. There was variation in opinions on how to improve on case detection in the region, with overlap in some instances.
Conclusions: PTB case detection has been very low in South Sudan over the last decade; however, the DOTS treatment success rate is high. The high treatment success rate could mean that if more PTB cases could be found in the communities, more are likely to be treated successfully.
Tuberculosis (TB) is a chronic inflammatory lung disease caused by Mycobacterium tuberculosis. Sick people with the TB germs (or bacilli) transmit the germs into the air during coughing, sneezing, talking, or spitting. Inhaling a small number of the bacilli leads to infection [1]. When a person with active pulmonary TB disease does not receive treatment, that person will infect on average between 10 and 15 people in a year.
TB is a major cause of morbidity and mortality in South Sudan. An estimated 18,500 people develop TB and 5,300 die annually [2]. In 2007, the National TB/Leprosy/Buruli Ulcer Control Programme (NTLBCP) reported 4,738 cases of TB, with 2513 of these being new sputum smear positive TB [2]. With an estimated population of 8 million in the same year, the burden of smear positive cases is estimated to be 13,130 cases annually, whereas for all forms of TB (including sputum smear negative and pulmonary cases) it is roughly 29,640 [3].
While increase in incidence of TB in sub-Saharan Africa is associated with HIV infection, in South Sudan factors that play a big role in the spread of TB include low income, meager resources, civil unrest, and displacement of populations [4].
The study was conducted to establish the true picture of case detection and suggest ways to improve case finding.
Using data from the national tuberculosis control programme, I analysed recent trends in routine TB case notification as well as case detection and treatment outcome rates. Using a questionnaire[1], I examined approaches and methods used in PTB case detection by the NGOs, the main implementers, and I asked the NGOs how to improve case detection.
Case notification
I found an increase in the trend of notification from 2002 to 2009 (Table 1 and Figure 1) but the proportion of new sputum smear-positive was stable for the same time period, fluctuating between 40% and 55% from 2002 to 2009 (Table 2). The case detection rates were very low, all below 50% of expected for the given years (Figure 2); treatment success rates were high and stable, at an average of 80% (Figure 2). The defaulter rate was increasing, especially after 2006.
Table 1. TB case notification from 2002 to 2009
New SM+
New SM-
P (ND or NA)
SM+= smear positive; SM-= smear negative; P (ND or NA) = smear microscopy not done or not available; EP= extra pulmonary TB; TAF= treatment after failure; TAD= treatment after default Data source: NTLBCP
Figure 1. TB case notification in South Sudan from 2002 to 2009. Source: NTLBCP.
Table 2. Proportions of new sputum smear positive cases from 2002 to 2009
Total cases
New SM+ proportion
SM+=sputum smear positive
Figure 2. Trends of treatment success rate and case detection rate in South Sudan from 2002 to 2009
Table 3. Trends of TB treatment outcomes from 2002 to 2008
DFR
SR=success rate; FR=failure rate; DFR=defaulter rate; DR=death rate; TOR=transfer out rate. Source: NTLBCP.
PTB diagnosis and case finding by organization
Out of 12 organizations that are involved in TB control in South Sudan, only 7 participated in the study. These were: Arkangelo Ali Association, Malteser International, Diocese of Wau/Don Bosco Missionary Sisters, Medair, Merlin, Norwegian Peoples' Aid and Ministry of Health (Government of South Sudan) – TB Control Programme, Juba Teaching Hospital. I found that PTB diagnosis and case finding by the organizations were generally as recommended by the TB control programme.
Interview data synthesis
These 7 organizations had experiences that ranged from 5 to over 25 years, and their representatives were all senior staff members (i.e. coordinators, team leaders, project managers), who were well-versed with their respective programmes, including activities and difficulties related to TB control in South Sudan.
Although the practical realities and challenges on the ground vary from area to area, to improve PTB case detection the general collective recommendations of the implementing NGOs were:
Increase laboratory outreach
Increase human resources
Strengthen community participation
Ensure that all primary health care centres and units are fully operational and well supported through logistics and capacity building
Standardize reporting format between government structures and NGOs
Create information sharing between implementing partners
Carry out regular stakeholders meetings
Increase health education/ awareness
Improve referrals from the communities
Integrate TB programmes into all primary health care facilities
Improve supplies (laboratory and other logistics).
Between 2002 and 2009 there was a general increase in the trend of TB case notification, especially for the categories new sputum smear-positive, new sputum smear-negative, and new extra-pulmonary TB. The notifications for the remaining categories were generally low and far below 500 and stable, except for 'pulmonary with sputum smear microscopy not done or unavailable'. This could mean that suddenly from 2006 to 2009 there was a gradual increase in the number of pulmonary cases being started on TB treatment without the recommended sputum smear microscopy being done.
Therefore, although there was a rise in the trend, still far less than expected TB cases were reported to the WHO in the referred time period, reflecting far fewer cases detected in the communities.
Looking at the proportions of new sputum smear-positive cases (Table 2); these have been stable between 2002 and 2009 in the range 40% to 55%. Thus, although there is a general increase observed in the trend of the notification from 2002 to 2009, the proportions of sputum smear-positive cases compared to other categories have been fluctuating between 40 and 55% for the same time period. Thus the increase in trend of notification could only be related to change in notification behaviour, meaning: more and more sputum smear-positive cases are being reported to the WHO and not that there is an upsurge of sputum smear-positive cases.
As the exact burden of TB in South Sudan remains unknown, based on WHO estimates (with an estimated population of 13 million in 2007):
the incidence of PTB (new smear positive/100, 000 population per year) is 101
the incidence of all new TB cases (all new TB cases/100, 000 population/year) is 228
the prevalence of TB (all TB cases/100, 000 population per year) is 456 and
the mortality (deaths/100, 000 population/year) is 56 [5].
It follows from the above estimates (particularly the total population) as well as the definition of notification rate, if we look at Table 1 and carry out some calculations, the notification rates of PTB per 100,000 population are:
11 for 2002 (i.e. 1371 x 100, 000/13, 000, 000)
39 for 2009.
The figures range from 11 to 39 per 100,000 population per year and none is even 50% of expected incidence of 101 per 100, 000 population per year.
Therefore, although there was a rise in the trend of TB case notification in the country between 2002 and 2008, still far less than expected TB cases were reported to the WHO in the referred time period, reflecting far fewer cases detected.
However, the figure of 101 per 100,000 and the population of 13 million are just estimates; so, maybe the incidence of PTB in the country is exaggerated. The latest census conducted in the Sudan was in 2008. Although rejected by the then Government of Southern Sudan (when it was still part of the Sudan) for political reasons, the population figure for the region was found to be about 8,260 490. From this "more accurate'' population figure, we can compute a new and "better'' PTB incidence, which is roughly 64 cases per 100, 000 population per year.
It follows then that, if we do some calculations as previously, the notification rates of PTB per 100,000 population for South Sudan change to the following figures:
9 for 2002
Again, the assumption is that the total population is constant at 8, 260, 490, from 2002 to 2009. Even so the new figures are still below 50% of the expected incidence of 64 per 100,000 population per year.
Males dominate the list of smear-positive cases for almost all age groups, with the exception of the 5 to 14 year age group. On the one hand, this could mean that males have more access to health facilities and therefore diagnosis, which could be related to occupation (e.g. the army) in the context of a post-conflict region. On the other hand, social stigma associated with diagnosis of PTB and dedication to household responsibilities could explain why fewer smear positive cases are detected in females.
As South Sudan is largely rural, perhaps more health education and more outreach activities will enable more women of different ages to be reached in their communities and therefore more cases of TB could be detected amongst females.
New sputum smear-positive cases reported for Central Equatoria and Northern Bahr-el-Ghazel states were more than double those for each of the other eight states. Also, there were many more sputum smear-negative cases notified for Central Equatoria. We could attribute these higher figures to the fact that these are states with major towns or cities; not only do we expect larger populations in these urban settings, but also we expect more healthcare facilities, easier access to these facilities, and better diagnosis in terms of personnel and laboratories. Also a higher HIV prevalence could explain the figures, including higher sputum smear-negative for Central Equatoria; since this is the state that borders Uganda, a country with a higher HIV prevalence than South Sudan.
Trend of treatment success rate
The high DOTS treatment success rate (Figure 2) is consistent with the earlier findings cited from the USAID website. This could mean that if more TB cases in the communities could be found, more are likely to be treated successfully.
A rising defaulter rate should be a cause for concern (Table 3) as non-drug compliance is one factor that contributes to drug resistant TB; two cases were already reported in Kajo Keji in Central Equatoria in 2005 [3]. Reasons for a rising defaulter rate should therefore be addressed.
Implementing organizations and TB case detection
Each of the 7 participating organizations had been represented by a senior staff member and all these organizations have experiences in South Sudan ranging from 5 to more than 25 years.
Doctors, clinical officers, nurses and community health workers are involved in the diagnosis of PTB in these organizations, with doctors dominating, implying that the likelihood of cases being missed is low.
Overall, the methods used by the 7 organizations to diagnose PTB include clinical findings (signs and symptoms) and sputum smear microscopy, with X-ray as an addition in some cases where the facility is available. This is in line with the recommendation from the policy and guideline document for TB control in the region [3].
Five of the 7 organizations find cases both passively and actively, which is a positive finding; with two limited to passive detection. Passive case finding involves detecting cases from symptomatic clients attending facilities, whereas active case finding involves looking for, diagnosing, treating and following-up cases in the community.
In summary, the organizations in the study are well-experienced and are utilizing the recommended approach to detect TB cases.
As mentioned already, there was a general increase in the trend of TB case notification in South Sudan between 2002 and 2009, but PTB case detection has been very low over the same time period. The increase in case notification could be related to development of better recording and reporting systems. As far as TB treatment outcome is concerned, the DOTS treatment success rate is high, with the implementing partners all treating and following up TB cases in the facility. The high treatment success rate could mean that if more PTB cases could be found in the communities, more are likely to be treated successfully. The prevalence of PTB would thus reduce and so would related mortality, and TB as a public health threat would be contained. However, defaulting is an issue that should be taken into consideration, because of the risk of drug resistant tuberculosis.
1. Only 7 out of 12 organizations involved in TB control in South Sudan participated in the study.
2. It would have been more inclusive to involve all the 46 TB treatment centres in the region, no matter how many may be under one organization, as the realities and the challenges vary from one location to the other.
3. Communication was difficult with some of the intended respondents as they were based in remote locations.
4. Time was a limiting factor, as the study time frame was roughly 6 weeks with actual data collection done in just under two weeks.
5. Focus was on adult PTB patients only, as it is easier to diagnose PTB in this age group than in children.
6. Data were not collected directly from the organizations but from the National TB/Leprosy/Buruli Ulcer Control Programme, the recipient of quarterly reports from all organizations involved in TB control in the region.
Author's note
This qualitative and quantitative study was carried out in 2010 and submitted in part fulfillment of the requirements for the degree of Master of Science in Tropical Medicine and International Health, at the London School of Hygiene and Tropical Medicine (LSHTM); University of London. Approvals for the study were granted by the LSHTM Ethics Committee and the Department of Research and Planning at the Ministry of Health, South Sudan. Special thanks to Drs Joseph Lasu and Joseph Lou of the National TB Control Programme, the NGO representatives in the study, as well as my supervisor, Professor Peter Godfrey-Faussett.
1. WHO. Tuberculosis. 2010 [cited 2010 18th September 2010]; Factsheet. http://www.who.int/mediacentre/factsheets/fs104/en/index.html.
2. USAID. 2009. Infectious Diseases, Southern Sudan. 22nd September 2009 April 25th 2010.; http://www.usaid.gov/our_work/global_health/id/tuberculosis/countries/africa/ssudan_pro file.html.
3. MoH G. Policy and Guidelines for Tuberculosis Control Programme in Southern Sudan. 2009, MoH, (GoSS): Juba, Southern Sudan.
4. EDCTP. 2009.The burden of tuberculosis in eastern Sudan: Epidemiology and drug resistance patterns of mycobacterium tuberculosis isolates. 31st January 2009 [cited 19th August 2010]; http://www.edctp.org/Our_Work.180.0.html?&no_cache=1&tx_viprojects_pi1%5Baction%5 D=show_project&tx_viprojects_pi1%5Bid%5D=14.
5. NTBLCP, M.G. 2008. Summary of TB Programme in Southern Sudan. NTLBCP, MoH (GoSS). 6. NTBLCP, M.G., TB Treatment Centres. 2010, MoH (GoSS). p.1.
7. El‐Sony AI, B.O., Enarson DA, Bjune G. 2000. Tuberculosis control in Sudan against seemingly insurmountable odds. International Journal of Tuberculosis and Lung Disease. 4(7): 657‐64.
8. El‐Sony AI, K.A., Enarson DA, Baraka O, Mustafa SA, Bjune G. 2002. Treatment results of DOTS in 1797 Sudanese tuberculosis patients with ot without HIV co‐infection. International Journal of Tuberculosis and Lung Cancer. 6(12): 105‐66.
9. Bohler M, M.S., Morkve O. 2005. Tuberculosis treatment outcome and health services: a comparison of displaced groups in Khartoum, Sudan. International Journal of Tuberculosis and Lung Cancer. 9(1): 32‐6.
10. Ahmed Suleiman MM, A.A., Sodermann M 2009. Evaluation of tuberculosis control programme in Khartoum State for the year 2006. Scandinavian Journal of Public Health. 37(1): 101‐ 8.
11. WHO. 2010.Tuberculosis detection rate under DOTS (percentage. [cited 2010 18th August]; http://www.who.int/whosis/indicators/2007TBCasesDetectedDOTS/en/print.html.
12. Uganda MEMS. 2009. Performance Indicator Reference Sheet:TB Case Notification Rate. 9th April 2009 [cited 2010 30th August]; http://ugandamems.com/templates/pirs/S08/2.%20PIRS%208.1/9.%20TB%20Case%20Notifi cation%20Rate.pdf.
13. WHO. 2008.Tuberculosis treatment success under DOTS (percentage). [cited 2010 24th August]; http://www.who.int/whosis/indicators/compendium/2008/4tsr/en/index.html.
14. Gurtong. 2009. South Sudan Census Results Officially Released
15. Eglisesoudan. 2010. Diocese of Wau. [cited 2010 23rd August]; http://www.eglisesoudan.org/english/Wau.htm.
16. International, M. 2010. Rumbek, Yei, Maridi/ Sudan; Tuberculosis and HIV control programme. [cited 2010 23rd August]; http://www.malteser.de/61.Malteser_International/en/61.05.Projects/61.05.02.Africa/ald_ projekt_detailansicht.asp.
17. Medair. 2009. Medair, Emergency Relief and Rehabilitation, Southern Sudan. [cited 2010 21st August]; http://www.medair.org/en/where‐we‐work/southern‐sudan/
18. Medair. 2009. First steps; Sudan (Southern Sudan). 19th June 2009 [cited 2010 23rd August]; http://www.medair.org/en/infochanel/news/detail/article/first_steps/?no_cache=1&tx_ttn ews%5BbackPid%5D=0&cHash=6e9364e918.
19. Merlin. 2010.Merlin, Sudan. [cited 2010 22nd August]; http://www.medair.org/en/where‐we‐work/southern‐sudan.
20. NPA. 2003. Norwegian People's Aid, Southern Sudan. [cited 2010 22nd August]; http://www.npaid.org/www_‐ _English/Organization/External_offices_online/Africa/Southern_Sudan/.
21. WHO. 2009. Global Tuberculosis Control, WHO Report 2009, Uganda., WHO: Geneva. p153‐ 6.
22. USAID. 2009. Infectious Diseases; Kenya. September 22nd 2009 [cited 2010 28th August]; http://www.usaid.gov/our_work/global_health/id/tuberculosis/countries/africa/kenya_prof ile.html.
23. CDC. 2008. TB and HIV/ AIDS. [Website] 28th January 2008 [cited 2010 24th August] http://www.cdc.gov/hiv/resources/factsheets/hivtb.htm.
24. WHO. 2007. Improving the diagnosis and treatment of smear‐negative pulmonary and extrapulmonary tuberculosis among adults and adolescents. [cited 2010 24th August ]; http://www.who.int/hiv/pub/tb/pulmonary/en/
[1] Details can be obtained from the author.


Abbi and Aaron's wedding in November was so filled with personal, creative details that I'm just BURSTING to show you.
Sometimes when there are so many creative details I don't know where to start. But this one was obvious: the flowers. They look awesome even if you don't know where they came from, but the story makes them utterly irresistible. Are you ready to fall in love? Because you WILL.
These delicate, rustic bouquets are made from palm fronds.
Bouquets and boutonnieres for wedding party and family are made entirely of palm fronds, while Abbi and Aaron's are supplemented with real flowers by Honeysuckle Florist in Jasper, GA.
Abbi and Aaron now live in Savannah, and the palm fronds are harvested from palm trees in the area. Homeless people in Savannah can often be seen making and selling these little flowers and selling them for a few dollars on the street.
Before the wedding they found a man in Savannah who took special care to make 65 of these flowers perfect and special for the wedding.
When they first started dating, Aaron took Abbi to Savannah to visit is home town. That weekend he bought her one of those flowers from a man on the street. Abbi still has it in a memory box. Now, by bringing that part of their history into the wedding they have souvenirs of their relationship and wedding day that last forever.
These are great Janet! I loved the flowers too. Sentimental and cheap!


Just imagine waking up one morning, turning on your computer, type in your blog URL and boom, nothing comes up. You constantly hit the refresh button hoping that it's just a glitch and that your website will quickly load without fault.
But then yet again, nothing happens.
So you decide to give your website hosting service a call to see if there's any disruption on your servers. And what do you know, it's all good on their part.
Then you finally come to a sad and unfortunate conclusion – your blog (or website) crashed. And the worst part about it is that you didn't back up a single thing.
All that hard work and effort and branding and backlink building and SEO have all gone to waste.
You have to start from scratch. And worse of all, you probably would feel like throwing in the towel.
Now as horrible as this seems, it CAN be avoided with just a single click of a button. That's right, by backing up your blog every month, or better, every week, you can prevent this horrible disruption in your business. And best of all, it can all be done for free!
You see as a blogger or online business owner, your blog (or website) is quite possibly the most important part of your business.
It generates leads, brings in revenue, provides value, gives your readers a place to learn and communicate with others, and so much more.
If it were to something be wiped away, your business could essentially be non-existent.
That's why it's SO important to ensure that your blog content and reputation stays in tack. And that's the very reason why backing up your blog or website has never been more important.
Below, I'll give you an in-depth rundown on how to back up your website, WordPress blog, Tumblr, and Blogger blog.
Plus, I'll even throw in some killer tips to help you safeguard your online business and blog. So let's jump right into it!
Here's an in-depth guide on how to back up your blog. Whether if you prefer to do it all manually or prefer to use plugins and services that automatically backs up your website automatically, we'll show you exactly how to do it.
So with that being said, let's jump straight into the guide.
I recommend that you back up your blog at least once a week. But if you happen to publish multiple posts a day, I recommend you back up your site every single day.
Doing it every day ensures that you have the latest, greatest, and most up to date version of your website.
It may seem tedious but trust me, it will pay off if something does happen to your blog.
But don't worry, there are plenty of plugins and services that will take care of the process for you daily. You'll learn more about those in the next sections.
WordPress is the most popular blogging platform out there and it's the most versatile. Unlike Blogger, you have greater control over the design and back-end of your blog, which can essentially turn your website into a powerhouse.
But with great power, comes great responsibility. Although there are a number of services and plugins out there that will back up your blog's content and database, there may be times when you want to do it manually. And that's where these steps come along.
2. On the left, click on "Tools" then click on "Export" from the drop-down menu that appears.
Now, this process only covers you the content on your blog.
If you're looking to also back up your plugins, themes, settings, and database, see below.
1. In order to access phpMyAdmin, log in to your web hosts control panel like cPanel.
2. Once you log in, you'll be taken to a page like this.
3. Click "Export" then save the SQL file.
Then you're done. But this is a pretty tricky process and one microscopic change or issue can be disastrous to your database, so tread carefully.
For a truly in-depth article on how to back up WordPress, you must read this.
Now if you really want to streamline this backup process, the best option is to go with a plugin or service, which you will learn more about below.
Truly the best free plugin out there to help you back up your WordPress site automatically is WordPress Backup to Dropbox.
If you have a Dropbox account and a WordPress blog, this free plugin will automatically save your blog (and all its content) to your Dropbox folder.
Plus, you can even schedule when you want your site to be backed up automatically as well a select the files that you want to store safely in your Dropbox account.
It's so simple yet so effective.
If you're looking for a free way to back up your WordPress blog, WordPress Backup to Dropbox is your best choice.
For a complete listing of our the best free WordPress backup plugins, check out this post.
If you're looking for a killer paid service to help you back up WordPress, then you absolutely must get Vaultpress.
Vaultpress is a super simple and cheap way to automatically back up your site's content, themes, plugins, uploads, and databases.
And the best part about it all is that you have the option to have your site backed up by any little change that you make. So literally, your site will be backed up in real time.
Also, you have the option for Vaultpress to do daily security scans on your blog, which is an added bonus, especially if you're worried about hackers.
Plus, the best part about Vaultpress is that it's actually created and run by the same folks who own Wordpress, Automattic.
So they perfectly integrate with each other. It's a match made in Heaven.
For a complete listing of our the best-paid Wordpress backup plugins and services, check out this post.
Although Blogger is not as popular as WordPress, it's still a blogging platform that quite a few people use.
And the best part about backing up Blogger is the fact that it's so easy and simple. This is mainly because blogger blogs use HTML while WordPress uses PHP and CSS, making it a lot easier to back up (I know, I was pretty nerdy for a second).
1. Log in to your Blogger dashboard and choose the blog that you want to back up.
5. Download and you're done!
I must say Blogger makes it so simple and easy.
As popular as Tumblr is, there is one issue that revolves around the platform – the inability to export your posts, videos, and pictures.
Since there is no built-in method or tool within Tumblr that you can use to export your blog, you will have to manually back up each portion of your Tumblr blog, piece by piece.
Thankfully, there's an in-depth guide that will walk you through this process step by step.
Check out this Tumblr back up guide by clicking here.
For more surefire tips and information on how to protect and safeguard your online business, be sure to check out our podcast, Safeguarding Your Business.


text:
package com.rollsoftware.br.lfms.db.impl.entity;

import com.rollsoftware.br.common.db.entity.ObjectEmbedded;
import java.io.Serializable;
import java.util.Objects;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

/**
 *
 * @author Rogério
 * @date September, 2017
 *
 * Logistics and Finances Management System
 */
@Embeddable
@XmlRootElement(name = "price")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "price", propOrder = {
    "coin", "value"
})
public class Price extends ObjectEmbedded implements Serializable {

    private static final long serialVersionUID = 1L;

    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 256)
    @Column(name = "COIN", nullable = false, length = 256)
    protected String coin;

    @Basic(optional = false)
    @NotNull
    @Column(name = "'VALUE'", nullable = false)
    protected Double value;

    public Price() {
        this("", 0.0);
    }

    public Price(String coin, double value) {
        super();
        this.coin = coin;
        this.value = value;
    }

    public String getCoin() {
        return coin;
    }

    public void setCoin(String coin) {
        this.coin = coin;
    }

    public Double getValue() {
        return value;
    }

    public void setValue(Double value) {
        this.value = value;
    }

    @Override
    public int hashCode() {
        int _uuid = super.hashCode();
        _uuid += Objects.hashCode(getCoin());
        _uuid += Objects.hashCode(getValue());
        return _uuid;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work
        // in the case the id fields are not set
        if (object == null) {
            return false;
        }
        if (!super.equals(object)) {
            return false;
        }
        if (!(object instanceof Price)) {
            return false;
        }
        final Price other = (Price) object;
        if (!Objects.equals(this.getCoin(), other.getCoin())) {
            return false;
        }
        if (!Objects.equals(this.getValue(), other.getValue())) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "CoinAndValue[\n\t" + "id=" + getId()
                + ", uuid=" + getUUID()
                + ",\n\tcoin=" + getCoin()
                + ",\n\tvalue=" + getValue()
                + "\n]";
    }
}


text:
Мухаммад VIII аль-Амин,  (4 сентября 1881 — 30 сентября 1962) — последний бей Туниса с 15 мая 1943 до 20 марта 1956, затем был единственным королём независимого Туниса до смещения 25 июля 1957. Мушир (фельдмаршал) (15 мая 1943).

Биография
Мухаммад был сыном Мухаммада аль-Хабиба, бея Туниса в 1922—1929 годах. Стал беем после смещения его двоюродного брата, сотрудничавшего с вишистским режимом, войсками Сражающейся Франции. После провозглашения Мухаммадом в 1956 году независимости страны от Франции, он стал беем с королевским титулом Его Величество. Премьер-министр Хабиб Бургиба, бывший противником монархии, смог заменить Королевскую Гвардию, охранявшую дворец, на верные себе войска, и 15 июля 1957 года посадил короля под домашний арест, а 25 июля Конституционная Ассамблея Туниса провозгласила республику, избрав Бургибу первым президентом. Мухаммад не отрёкся от престола и был отправлен в охраняемую резиденцию в Манубе, но после смерти жены получил разрешение вернуться в столицу, Тунис, где и умер.

Был эксцентричен и мало интересовался государственными делами. Собрал во дворце большую коллекцию часов и содержал частную труппу карликов. Интересовался астрономией и алхимией, которым посвящал большую часть своего времени.

Личная жизнь
В 1902 году он женился на Лалле Дженейне Бейе (1887–1960), дочери Башира Аяри, триполитанского купца из района Рас-Дарб в Тунисе. У него было двенадцать детей, в том числе три принца и девять принцесс:

 Принцесса Лалла Аиша (1906–1994): старшая дочь короля, она несколько раз представляла своего отца. Она встречала Хабиба Бургиба в порту Хальк-эль-Уэд (в прошлом Ла-Гулет) 1 июня 1955 года по случаю обретения страной внутренней независимости. Она вышла замуж за Слахеддина Мехерзи. У них было трое сыновей;
 Принцесса Лалла Хадиджа (1909–199?): В 1939 вышла замуж за Хареддина Аззуза;
 Принц Чедли Бей (1910–2004): бывший директор Королевского кабинета (1950–1957) и глава королевской семьи с 2001 по 2004 год. Он женился на принцессе Хосн Эль Уджуд Заккария (? –1991);
 Принцесса Лалла Суфия (1912–1994): сначала она вышла замуж за принца Мохамеда Хеди Бея (1907–1965), позже они развелись, в 1943 году она вышла замуж за генерал-майора Хеди Бен Мустафа, позже начальника протокола республики, (разведена) она вышла замуж за генерал-лейтенанта Ахмеда Кассара;
 Принц Мхамед-бей (1914–1999): он женился на черкесской одалиске по имени Сафия (1910–2000), воспитанной Лаллой Камар (последовательно женой Мухаммеда III ас-Садика, Али III ибн аль-Хуссейна и Мухаммад V ан-Насира. У них было четыре сына и одна дочь;
 Принц Салах Эддин Бей (1919–2003): основатель футбольного клуба Хаммам-Лиф CS Hammam-Lif. Он был арестован в августе 1957 года после отмены монархии. Он женился на Хабибе Мехерзи (1916–199?), Затем на Лилиан Зид (1932–1998). У него было два сына и две дочери от первой жены и три сына и одна дочь от второй;
 Принцесса Лалла Зенеиха Зануха (1923–2007): в 1944 году она вышла замуж за полковника Насреддина Закария. У них было два сына и три дочери;
 Принцесса Лалла Фатма (1924–1957): супруга Мустафы бен Абдаллаха, заместителя губернатора штата Маттер. У них было два сына и одна дочь;
 Принцесса Лалла Кабира Каббура (1926–2007): супруга начальника протокола Мохамеда Азиза Бахри. У них было четыре сына и две дочери;
 Принцесса Лалла Закия Закуа (1927–1998): в 1944 году она вышла замуж за Мохамеда Бен Салема, бывшего министра здравоохранения. У них было три сына и три дочери;
 Принцесса Лалла Лилия (1929–2021): первоначально она вышла замуж за доктора Менчари (ветеринара), снова вышла замуж в 1948 году за Хамади Челли. Она отправилась в добровольное изгнание в Марокко после отмены монархии в 1957 году. Она вернулась в Тунис после того, как Зин эль-Абидин Бен Али стал президентом и дал разрешение вернуться из изгнания. У нее было два сына и одна дочь;
 Принцесса Лалла Хедиа (1931–2010): вышла замуж за инженера Османа Бахри. У них было два сына и три дочери.

Награды
 Nishan al-Ahad al-Murassa (Тунис) 25.06.1942
 Орден Крови (Тунис) (Nishan ud-Dam) (Тунис)
 Большая лента Ордена Славы (Nishan al-Iftikhar) (Тунис)
 Большая цепь ордена Идриса I (Ливия)
 Цепь ордена Мухаммедийя (Марокко) 1956
 Большой крест Ордена Почётного легиона с бриллиантами 15.05.1943
 Орден Чёрной звезды (Бенин)
 Орден Звезды Анжуана (Ordre de l'Étoile d'Anjouan) (Фр. Коморские о-ва)
 Крест Лотарингии (Франция)
 Большой крест Ордена Гражданских Заслуг (Испания)
 Шарифский орден Алави (Марокко)
 Орден Мухаммеда Али (Египет)
 Орден Возрождения (Иордания)
 Командор Ордена Святого Сильвестра со звездой (Ватикан) 30.11.1931

Примечания

Беи Туниса
Фельдмаршалы
Последние монархи государств


Seven years ago, Wall Street's high-risk bets brought our economy to its knees.
We've made progress since then. The Dodd-Frank Act was the strongest financial reform law in three generations, and it gave regulators a number of common-sense tools to prevent future crises.
But let's get real: Dodd-Frank did not end the "too big to fail" problem – the problem posed by financial institutions that are so large that their failure would threaten the whole economy. Last summer, both the Fed and FDIC reported publicly that eleven of the big banks were still so risky that if any one of them started to fail, they would need a government bailout or they would risk taking down the American economy – again.
That's not a statistic that should make anyone sleep well tonight.
That's why I've partnered with Senators John McCain, Maria Cantwell, and Angus King to reintroduce the 21st Century Glass-Steagall Act, a bill to reduce taxpayers' risk in the financial system and decrease the likelihood of future financial crises. Sign up now to show your support.
Four years after the 1929 Wall Street crash, Congress passed the original Glass-Steagall Act to build a wall between boring, commercial banking – savings and checking accounts – and riskier investment banking.
The idea was simple: If banks want access to government-provided deposit insurance, they should be limited to boring banking. If the banks want to engage in high-risk trading, they can go for it – but they can't get access to insured deposits and put the taxpayer on the hook for some of the risk.
The Glass-Steagall Act laid the groundwork for a half century of financial stability that helped create a robust and thriving middle class. But the commercial banks wanted higher profits and the investment banks wanted access to all that cash in checking accounts, so they starting lobbying Washington to end Glass-Steagall. Finally, in the 1980s, regulators began buckling under pressure from the banks and began poking holes in the wall between investment and commercial banking. In 1999, after 12 separate attempts, Congress repealed most of Glass-Steagall. And in 2008, "too big to fail" was born.
The bill we're reintroducing this week will rebuild the wall between commercial banks and investment banks – with new protections to fill some of the holes punched in the original bill and to cover products that didn't exist in 1933. It won't end "too big to fail" all by itself, but it will reduce risk in the system and make financial institutions smaller and safer.
Sign up now to show your support for the bipartisan 21st Century Glass-Steagall Act. Let's make banks choose: Take big risks using investors' money or be very careful using depositors' money – but no more mixing the two.
The big banks and their executives have recovered handsomely from the crisis they helped create, while too many other Americans are still scraping to get by.
We weren't sent to Washington to work for the big banks. It's time for a banking system that serves the best interests of the American people.


text:
package OpenXPKI::Server::Workflow::NICE::Local;

use Data::Dumper;

use English;
use OpenXPKI::Debug;
use OpenXPKI::Exception;
use OpenXPKI::Crypto::Profile::Certificate;
use OpenXPKI::Crypto::Profile::CRL;
use OpenXPKI::Crypto::X509;
use OpenXPKI::Crypto::CRL;
use OpenXPKI::Serialization::Simple;
use OpenXPKI::Server::Context qw( CTX );
use OpenXPKI::Server::Workflow::WFObject::WFArray;

use Moose;
#use namespace::autoclean; # Conflicts with Debugger
extends 'OpenXPKI::Server::Workflow::NICE';

sub issueCertificate {

    my $self = shift;
    my $csr = shift;
    my $issuing_ca = shift || '';

    ##! 1: 'Starting '
    my $serializer = OpenXPKI::Serialization::Simple->new();
    my $realm = CTX('session')->data->pki_realm;
    my $config = CTX('config');

    my $csr_serial = $csr->{CSR_SERIAL};

    ##! 8: 'csr serial  ' . $csr_serial

    my $cert_profile = $csr->{PROFILE};
    ##! 64: 'certificate profile: ' . $cert_profile

    # Determine the expected validity of the certificate to find the right ca
    # Requries that we load the CSR attributes
    my ($notbefore, $notafter);
    my @subject_alt_names;
    my @extension;

    my $cert_attr = CTX('dbi')->select(
        columns => [ qw(
            attribute_contentkey
            attribute_value
        ) ],
        from => 'csr_attributes',
        where => { req_key => $csr_serial },
    );

    while (my $attr = $cert_attr->fetchrow_hashref) {
        my $key = $attr->{attribute_contentkey};
        my $val = $attr->{attribute_value};

        if ($key eq 'subject_alt_name') {
            push @subject_alt_names,  $serializer->deserialize($val);
        } elsif ($key eq 'x509v3_extension') {
            push @extension, $serializer->deserialize($val);
        } elsif ($key eq 'notbefore') {
            $notbefore = OpenXPKI::DateTime::get_validity({
                VALIDITYFORMAT => 'detect',
                VALIDITY        => $val,
            });
        } elsif ($key eq 'notafter') {
            $notafter = OpenXPKI::DateTime::get_validity({
                VALIDITYFORMAT => 'detect',
                VALIDITY        => $val,
            });
        }

    }

    # Set notbefore/notafter according to profile settings if it was not set in csr

    my $validity_path = "profile.$cert_profile.validity";
    if (!$config->exists($validity_path)) {
        $validity_path = "profile.default.validity";
    }

    if (not $notbefore) {
        my $profile_notbefore = $config->get("$validity_path.notbefore");
        if ($profile_notbefore) {
            $notbefore = OpenXPKI::DateTime::get_validity({
                VALIDITY => $profile_notbefore,
                VALIDITYFORMAT => 'detect',
            });
        } else {
            # assign default (current timestamp) if notbefore is not specified
            $notbefore = DateTime->now( time_zone => 'UTC' );
        }
    }
    if (not $notafter) {
        my $profile_notafter = $config->get("$validity_path.notafter");
        ##! 32: 'Notafter ' . Dumper $profile_notafter
        if (not $profile_notafter) {
           OpenXPKI::Exception->throw(
            message => "I18N_OPENXPKI_SERVER_NICE_LOCAL_ISSUE_NOT_AFTER_NOT_SET",
            params  => {
                PROFILE => $cert_profile,
                CSR => $csr_serial
            });
        }
        $notafter = OpenXPKI::DateTime::get_validity({
            REFERENCEDATE => $notbefore,
            VALIDITY => $profile_notafter,
            VALIDITYFORMAT => 'detect',
        });
    }

    # $issuing_ca set by user, check if the validity is ok
    if ($issuing_ca) {

        CTX('log')->application()->debug("Use ca set by user $issuing_ca to issue $csr_serial");

        # check if this is a certsign alias
        my $group = $config->get([ 'crypto', 'type', 'certsign']);
        $issuing_ca =~ / \A (.+)-(\d+) \z/x;
        if ($1 ne $group) {
            OpenXPKI::Exception->throw(
                message => "I18N_OPENXPKI_SERVER_NICE_LOCAL_ISSUER_NOT_IN_CERTSIGN_GROUP",
                params  => {
                    CA_ALIAS => $issuing_ca,
                    GROUP => $group,
            });
        }

        my $cert = CTX('api')->get_certificate_for_alias({ ALIAS => $issuing_ca });

        if ($notafter->epoch() > $cert->{NOTAFTER}) {
            $notafter = DateTime->from_epoch( epoch => $cert->{NOTAFTER} );
            CTX('log')->application()->warn("Validity exceeds selected issuing ca - truncating notafter");

        } elsif ($notafter->epoch() < $cert->{NOTBEFORE}) {
            CTX('log')->application()->error("Expected notafter is before CA lifetime!");
            OpenXPKI::Exception->throw(
                message => 'I18N_OPENXPKI_SERVER_NICE_LOCAL_CA_NOTAFTER_BEFORE_CA_LIFETIME',
            );
        }

        if ($notbefore->epoch() < $cert->{NOTBEFORE}) {
            $notbefore = DateTime->from_epoch( epoch => $cert->{NOTBEFORE} );
            CTX('log')->application()->warn("Validity exceeds selected issuing ca - truncating notbefore");

        } elsif ($notbefore->epoch() > $cert->{NOTAFTER}) {
            CTX('log')->application()->error("Expected notbefore is after CA lifetime!");
            OpenXPKI::Exception->throw(
                message => 'I18N_OPENXPKI_SERVER_NICE_LOCAL_CA_NOTBEFORE_AFTER_CA_LIFETIME',
            );
        }

    } else {
        # Determine issuing ca
        $issuing_ca = CTX('api')->get_token_alias_by_type( {
            TYPE => 'certsign',
            VALIDITY => {
                NOTBEFORE => $notbefore,
                NOTAFTER => $notafter,
            },
        });

        CTX('log')->application()->debug("Found $issuing_ca to issue $csr_serial");

    }

    ##! 32: 'issuing ca: ' . $issuing_ca

    my $default_token = CTX('api')->get_default_token();
    my $ca_token = CTX('crypto_layer')->get_token({
        TYPE => 'certsign',
        NAME => $issuing_ca
    });

    if (!defined $ca_token) {
        OpenXPKI::Exception->throw(
           message => 'I18N_OPENXPKI_SERVER_NICE_LOCAL_CA_TOKEN_UNAVAILABLE',
        );
    }

    my $profile = OpenXPKI::Crypto::Profile::Certificate->new (
        CA        => $issuing_ca,
        ID        => $cert_profile,
        TYPE      => 'ENDENTITY', # FIXME - should be useless
    );

    ##! 64: 'propagating cert subject: ' . $csr->{SUBJECT}
    $profile->set_subject( $csr->{SUBJECT} );

    ##! 51: 'SAN List ' . Dumper ( @subject_alt_names )
    if (scalar @subject_alt_names) {
        ##! 64: 'propagating subject alternative names: ' . Dumper @subject_alt_names
       $profile->set_subject_alt_name(\@subject_alt_names);
    }

    ## 64: 'Extensions ' . Dumper \@extension
    if (scalar @extension) {
        foreach my $ext (@extension) {
            # we only support oids for the moment
            my $oid = $ext->{oid};
            if (!$oid || $oid !~ /\A(\d+\.)+\d+\z/) {
                OpenXPKI::Exception->throw(
                    message => 'I18N_OPENXPKI_SERVER_NICE_LOCAL_UNSUPPORTED_EXTENSION',
                    param => { NAME => $oid }
                );
            }

            # We dont want those to be set from external
            # (might be used to overwrite essential settings like CA:true )
            if ($oid =~ /^0?2\.0?5\.0?29\./) {
                OpenXPKI::Exception->throw (
                    message => "I18N_OPENXPKI_SERVER_NICE_LOCAL_EXTENSION_NOT_ALLOWED",
                    params => { NAME => $oid }
                );
            }

            # scalar case
            if ($ext->{value}) {
                $profile->set_extension(
                    NAME     => $oid,
                    CRITICAL => $ext->{critical} ? 'true' : 'false',
                    VALUES   => $ext->{value},
                );
            } elsif ($ext->{section}) {
                $profile->set_oid_extension_sequence(
                    NAME     => $oid,
                    CRITICAL => $ext->{critical} ? 'true' : 'false',
                    VALUES   => $ext->{section},
                );
            }
        }
    }

    my $rand_length = $profile->get_randomized_serial_bytes();
    my $increasing  = $profile->get_increasing_serials();

    # determine serial number (atomically)
    my $serial = $profile->create_random_serial(
        $increasing
            ? (PREFIX => CTX('dbi')->next_id('certificate'))
            : (),
        RANDOM_LENGTH => $profile->get_randomized_serial_bytes(),
    );
    ##! 32: 'propagating serial number: ' . $serial
    $profile->set_serial($serial);

    if (defined $notbefore) {
        ##! 64: 'propagating notbefore date: ' . $notbefore
        $profile->set_notbefore($notbefore);
    }

    if (defined $notafter) {
        ##! 32: 'propagating notafter date: ' . $notafter
        $profile->set_notafter($notafter);
    }

    ##! 16: 'performing key online test'
    if (! $ca_token->key_usable()) {
        CTX('log')->application()->warn("Token for $issuing_ca not usable");
        $self->_get_activity()->pause('I18N_OPENXPKI_UI_PAUSED_CERTSIGN_TOKEN_NOT_USABLE');
    }

    ##! 32: 'issuing certificate'
    ##! 64: 'certificate profile '. Dumper( $profile )
    my $certificate = $ca_token->command({
        COMMAND => "issue_cert",
        PROFILE => $profile,
        CSR     => $csr->{DATA},
    });

    # SPKAC Requests return binary format - so we need to convert that
    if ($certificate !~ m{\A -----BEGIN }xms) {
        ##! 32: 'Certificate seems to be binary - conveting it'
        $certificate = $default_token->command({
            COMMAND => "convert_cert",
            DATA    => $certificate,
            OUT     => "PEM",
            IN      => "DER",
        });
    }
    ##! 64: 'cert: ' . $certificate

    my $msg = sprintf("Certificate %s (%s) issued by %s", $profile->get_subject(), $serial, $issuing_ca);
    CTX('log')->application()->info($msg);

    my $cert_identifier = $self->__persistCertificateInformation(
        {
            certificate => $certificate,
            ca_identifier => $ca_token->get_instance()->get_cert_identifier(),
            csr_serial  => $csr_serial
        },
        {}
    );

    ##! 16: 'cert_identifier: ' . $cert_identifier

    return { 'cert_identifier' => $cert_identifier };
}

sub renewCertificate {
    return issueCertificate( @_ );
}

sub revokeCertificate {

    my $self       = shift;
    # nothing to do here
    return;

}

sub checkForRevocation {
    my $self = shift;

    # As the local crl issuance process will set the state in the certificate
    # table directly, we get the certificate status from the local table

    ##! 16: 'Checking revocation status'
    my $id = $self->_get_context_param('cert_identifier');
    my $cert = CTX('dbi')->select_one(
        from => 'certificate',
        columns => ['status'],
        where => { identifier => $id },
    );

    CTX('log')->application()->debug("Check for revocation of $id, result: " . $cert->{status});

    if ($cert->{status} eq 'REVOKED') {
       ##! 32: 'certificate revoked'
       return 1;
    }

    # If the certificate is not revoked, trigger pause
    ##! 32: 'Revocation is pending - going to pause'
    $self->_get_activity()->pause('I18N_OPENXPKI_UI_PAUSED_LOCAL_REVOCATION_PENDING');

    return;
}

sub issueCRL {

    my $self = shift;
    my $ca_alias = shift;

    my $pki_realm = CTX('session')->data->pki_realm;
    my $dbi = CTX('dbi');

    # FIXME - we want to have a context free api....
    my $crl_validity = $self->_get_context_param('crl_validity');
    my $delta_crl = $self->_get_context_param('delta_crl');

    OpenXPKI::Exception->throw(
        message => "I18N_OPENXPKI_SERVER_NICE_LOCAL_CRL_NO_DELTA_CRL_SUPPORT",
    ) if $delta_crl;

    my $serializer = OpenXPKI::Serialization::Simple->new();

    # Load meta data of CA from the database
    my $ca_info = CTX('api')->get_certificate_for_alias( { ALIAS => $ca_alias } );

    # Get the certificate identifier to filter in the database
    my $ca_identifier = $ca_info->{IDENTIFIER};

    # Build Profile (from ..Workflow::Activity::CRLIssuance::GetCRLProfile)
    my $crl_profile = OpenXPKI::Crypto::Profile::CRL->new(
        CA  => $ca_alias,
        $crl_validity
         ? (VALIDITY => { VALIDITYFORMAT => 'relativedate', VALIDITY => $crl_validity }) : (),
        # We need the validity to check for the necessity of a "End of Life" CRL
        CA_VALIDITY => { VALIDITYFORMAT => 'epoch', VALIDITY => $ca_info->{NOTAFTER} }
    );
    ##! 16: 'profile: ' . Dumper( $crl_profile )

    my $ca_token = CTX('crypto_layer')->get_token({
        TYPE => 'certsign',
        NAME => $ca_alias
    });

    OpenXPKI::Exception->throw(
       message => 'I18N_OPENXPKI_SERVER_NICE_LOCAL_CA_TOKEN_UNAVAILABLE',
    ) unless defined $ca_token;

    # we want all identifiers and data for certificates that are
    # already in the certificate database with status 'REVOKED'

    # We need to select three different classes of certificates
    # for the CRL:
    # - those that are in the certificate DB with status 'REVOKED'
    #   and have a corresponding CRR entry, for those we also need
    #   the smallest approval date (works optimal using SQL MIN(), tbd)
    # - those that are in the certificate DB with status 'REVOKED'
    #   and for some reason DON't have a CRR entry. For those, the
    #   date is set to epoch 0
    # - those that are in the certificate DB with status
    #   'CRL_ISSUANCE_PENDING' and their smallest CRR approval date

    my @cert_timestamps; # array with certificate data and timestamp

    my $certs = $dbi->select(
        from => 'certificate',
        columns => [ 'cert_key', 'identifier',
            'revocation_time', 'reason_code', 'invalidity_time',
            'status' ],
        where => {
            'certificate.pki_realm' => $pki_realm,
            issuer_identifier => $ca_identifier,
            status => [ 'REVOKED', 'CRL_ISSUANCE_PENDING' ],
        },
        order_by => [ 'cert_key' ]
    );

    push @cert_timestamps, $self->__prepare_crl_data($certs);

    ##! 32: 'cert_timestamps: ' . join(", ", map { join "/", @$_ } @cert_timestamps)

    my $serial = $dbi->next_id('crl');

    ##! 2: "id: $serial"

    $crl_profile->set_serial($serial);
    #
    ##! 16: 'performing key online test'
    if (! $ca_token->key_usable()) {
        CTX('log')->application()->warn("Token for $ca_identifier not usable");
        $self->_get_activity()->pause('I18N_OPENXPKI_UI_PAUSED_CRL_TOKEN_NOT_USABLE');
    }
    #
    my $crl = $ca_token->command({
        COMMAND => 'issue_crl',
        REVOKED => \@cert_timestamps,
        PROFILE => $crl_profile,
    });
    #
    my $crl_obj = OpenXPKI::Crypto::CRL->new(
            TOKEN => CTX('api')->get_default_token(),
            DATA  => $crl,
    );
    ##! 128: 'crl: ' . Dumper($crl)
    #
    CTX('log')->application()->info('CRL issued for CA ' . $ca_alias . ' in realm ' . $pki_realm);

    #
    # publish_crl can then publish all those with a PUBLICATION_DATE of 0
    # and set it accordingly
    my $data = { $crl_obj->to_db_hash() };

    CTX('log')->audit('cakey')->info('crl issued', {
        cakey     => $data->{authority_key_identifier},
        token     => $ca_alias,
        pki_realm => $pki_realm,
    });

    $data = {
        # FIXME #legacydb Change upper to lower case in OpenXPKI::Crypto::CRL->to_db_hash(), not here
        ( map { lc($_) => $data->{$_} } keys %$data ),
        pki_realm         => $pki_realm,
        issuer_identifier => $ca_identifier,
        crl_key           => $serial,
        crl_number        => $serial,
        items             => scalar @cert_timestamps,
        publication_date  => 0,
    };
    $dbi->insert( into => 'crl', values => $data );

    return { crl_serial => $serial };
}

sub __prepare_crl_data {
    my $self = shift;
    my $sth_certs = shift;

    my @cert_timestamps = ();
    my $dbi       = CTX('dbi');
    my $pki_realm = CTX('session')->data->pki_realm;

    while (my $cert = $sth_certs->fetchrow_hashref) {
        ##! 32: 'cert to be revoked: ' . Data::Dumper->new([$cert])->Indent(0)->Terse(1)->Sortkeys(1)->Dump
        my $serial      = $cert->{cert_key};

        my $identifier  = $cert->{identifier};
        my $reason_code = $cert->{reason_code}  || '';
        my $revocation_time = $cert->{revocation_time};
        my $invalidity_time = $cert->{invalidity_time};

        # there might be certificates set to revoked that do not have a CRR item
        if ($reason_code) {
            ##! 32: 'approved crr present: ' . Dumper $cert
            push @cert_timestamps, [ $serial, $revocation_time, $reason_code, $invalidity_time ];
        } else {
            push @cert_timestamps, [ $serial ];
        }

        # update certificate database:
        my $status = 'REVOKED';
        $status = 'HOLD'   if $reason_code eq 'certificateHold';
        $status = 'ISSUED' if $reason_code eq 'removeFromCRL';

        $dbi->update(
            table => 'certificate',
            set   => { status => $status },
            where => { identifier => $identifier },
        ) if ($status ne $cert->{status});
    }
    return @cert_timestamps;
}

1;
__END__

=head1 Name

OpenXPKI::Server::Workflow::NICE::Local

=head1 Description

This module implements the OpenXPKI NICE Interface using the local crypto backend

=head1 Configuration

The module does not require nor accept any configuration options.

=head1 API Functions

=head2 issueCertificate

Issues a certitficate, will autodetect the most current ca for the requested
profile. Issuer can be enforced by passing the issuer alias as second
parameter, the certificates validity will be tailored to fit into the CA
validity window.

Takes only the key information from the pkcs10 and requires subject, SAN and
validity to be given as context parameters. Also supports SPKAC request format.

=head2 renewCertificate

Currently only an alias for issueCertificate

=head2 revokeCertificate

This sub will just put cert_identifier and reason_code from the CRR to the
context, so it is quickly available in the checkForRevocation step.

=head2 checkForRevocation

Queries the certifictes status from the local certificate datasbase.

=head2 issueCRL

Creates a crl for the given ca and pushes it into the database for publication.
Incremental CRLs are not supported.


text:
GITOGITO HUSTLER
Four lovely ladies hailing from Tokyo Japan joined forces back in 1995, and instantly took the Japanese punk rock club scene by storm. Dressing in hand made matching outfits ranging from schoolgirl skirts to spangled flapper dresses, they would take the stage looking innocent and sexy, but then all hell would break loose-these girls could rock!!! Inspired by Joan Jett, Girlschool, Blondie, The Shangri-Las and The Supremes, the girls mixed pop-punk melodies sung all in Japanese with ferocious no-holds barred musicianship. Coming to the attention of Gearhead Records owner Michelle in 2004, a contract was quickly negotiated (with the help of Japanese speaking Hajime from The Spunks and Kenny from The Dragons). A 7" single Wonderful b/w Romantic was released followed quickly by a 6 track EP Gito Gito Galore and their first American full-length Love and Roll.
The girls toured the US 4 times promoting their records and winning over American crowds across the country with their charm, engaging banter, and total focus to putting on the best show they could. The rigors of touring were starting to take a toll on the girls' personal lives, and in 2006, singer Yago moved to the US to reunite with her new American husband. Shortly after, the band decided to call it quits, much to the disappointment of eager fans both in America and Japan.
Today, the girls continue to play in various bands and solo projects.
Wonderful 7" Single
BUY 7"
Gito Galore
Love & Roll
LP Out of Print
Love and Roll
11" x 17" Poster
BUY POSTER